{"id":"78d63211c8a0aa6fb1804c8710a2c36d","_format":"hh-sol-build-info-1","solcVersion":"0.8.15","solcLongVersion":"0.8.15+commit.e14f2714","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Strings.sol\";\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n    struct RoleData {\n        mapping(address => bool) members;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with a standardized message including the required role.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     *\n     * _Available since v4.1._\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n        return _roles[role].members[account];\n    }\n\n    /**\n     * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n     * Overriding this function changes the behavior of the {onlyRole} modifier.\n     *\n     * Format of the revert message is described in {_checkRole}.\n     *\n     * _Available since v4.6._\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Revert with a standard message if `account` is missing `role`.\n     *\n     * The format of the revert reason is given by the following regular expression:\n     *\n     *  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert(\n                string(\n                    abi.encodePacked(\n                        \"AccessControl: account \",\n                        Strings.toHexString(account),\n                        \" is missing role \",\n                        Strings.toHexString(uint256(role), 32)\n                    )\n                )\n            );\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address account) public virtual override {\n        require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event. Note that unlike {grantRole}, this function doesn't perform any\n     * checks on the calling account.\n     *\n     * May emit a {RoleGranted} event.\n     *\n     * [WARNING]\n     * ====\n     * This function should only be called from the constructor when setting\n     * up the initial roles for the system.\n     *\n     * Using this function in any other way is effectively circumventing the admin\n     * system imposed by {AccessControl}.\n     * ====\n     *\n     * NOTE: This function is deprecated in favor of {_grantRole}.\n     */\n    function _setupRole(bytes32 role, address account) internal virtual {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual {\n        if (!hasRole(role, account)) {\n            _roles[role].members[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n        }\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual {\n        if (hasRole(role, account)) {\n            _roles[role].members[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n        }\n    }\n}\n"},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControlEnumerable.sol\";\nimport \"./AccessControl.sol\";\nimport \"../utils/structs/EnumerableSet.sol\";\n\n/**\n * @dev Extension of {AccessControl} that allows enumerating the members of each role.\n */\nabstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns one of the accounts that have `role`. `index` must be a\n     * value between 0 and {getRoleMemberCount}, non-inclusive.\n     *\n     * Role bearers are not sorted in any particular way, and their ordering may\n     * change at any point.\n     *\n     * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n     * you perform all queries on the same block. See the following\n     * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n     * for more information.\n     */\n    function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {\n        return _roleMembers[role].at(index);\n    }\n\n    /**\n     * @dev Returns the number of accounts that have `role`. Can be used\n     * together with {getRoleMember} to enumerate all bearers of a role.\n     */\n    function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {\n        return _roleMembers[role].length();\n    }\n\n    /**\n     * @dev Overload {_grantRole} to track enumerable memberships\n     */\n    function _grantRole(bytes32 role, address account) internal virtual override {\n        super._grantRole(role, account);\n        _roleMembers[role].add(account);\n    }\n\n    /**\n     * @dev Overload {_revokeRole} to track enumerable memberships\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual override {\n        super._revokeRole(role, account);\n        _roleMembers[role].remove(account);\n    }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\n\n/**\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\n */\ninterface IAccessControlEnumerable is IAccessControl {\n    /**\n     * @dev Returns one of the accounts that have `role`. `index` must be a\n     * value between 0 and {getRoleMemberCount}, non-inclusive.\n     *\n     * Role bearers are not sorted in any particular way, and their ordering may\n     * change at any point.\n     *\n     * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n     * you perform all queries on the same block. See the following\n     * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n     * for more information.\n     */\n    function getRoleMember(bytes32 role, uint256 index) external view returns (address);\n\n    /**\n     * @dev Returns the number of accounts that have `role`. Can be used\n     * together with {getRoleMember} to enumerate all bearers of a role.\n     */\n    function getRoleMemberCount(bytes32 role) external view returns (uint256);\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor() {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby removing any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts/governance/utils/IVotes.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (governance/utils/IVotes.sol)\npragma solidity ^0.8.0;\n\n/**\n * @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.\n *\n * _Available since v4.5._\n */\ninterface IVotes {\n    /**\n     * @dev Emitted when an account changes their delegate.\n     */\n    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);\n\n    /**\n     * @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\n     */\n    event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);\n\n    /**\n     * @dev Returns the current amount of votes that `account` has.\n     */\n    function getVotes(address account) external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\n     */\n    function getPastVotes(address account, uint256 blockNumber) external view returns (uint256);\n\n    /**\n     * @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n     *\n     * NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n     * Votes that have not been delegated are still part of total supply, even though they would not participate in a\n     * vote.\n     */\n    function getPastTotalSupply(uint256 blockNumber) external view returns (uint256);\n\n    /**\n     * @dev Returns the delegate that `account` has chosen.\n     */\n    function delegates(address account) external view returns (address);\n\n    /**\n     * @dev Delegates votes from the sender to `delegatee`.\n     */\n    function delegate(address delegatee) external;\n\n    /**\n     * @dev Delegates votes from signer to `delegatee`.\n     */\n    function delegateBySig(\n        address delegatee,\n        uint256 nonce,\n        uint256 expiry,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n}\n"},"@openzeppelin/contracts/security/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    bool private _paused;\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    constructor() {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        require(!paused(), \"Pausable: paused\");\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        require(paused(), \"Pausable: not paused\");\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n    mapping(address => uint256) private _balances;\n\n    mapping(address => mapping(address => uint256)) private _allowances;\n\n    uint256 private _totalSupply;\n\n    string private _name;\n    string private _symbol;\n\n    /**\n     * @dev Sets the values for {name} and {symbol}.\n     *\n     * The default value of {decimals} is 18. To select a different value for\n     * {decimals} you should overload it.\n     *\n     * All two of these values are immutable: they can only be set once during\n     * construction.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei. This is the value {ERC20} uses, unless this function is\n     * overridden;\n     *\n     * NOTE: This information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * {IERC20-balanceOf} and {IERC20-transfer}.\n     */\n    function decimals() public view virtual override returns (uint8) {\n        return 18;\n    }\n\n    /**\n     * @dev See {IERC20-totalSupply}.\n     */\n    function totalSupply() public view virtual override returns (uint256) {\n        return _totalSupply;\n    }\n\n    /**\n     * @dev See {IERC20-balanceOf}.\n     */\n    function balanceOf(address account) public view virtual override returns (uint256) {\n        return _balances[account];\n    }\n\n    /**\n     * @dev See {IERC20-transfer}.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - the caller must have a balance of at least `amount`.\n     */\n    function transfer(address to, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _transfer(owner, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-allowance}.\n     */\n    function allowance(address owner, address spender) public view virtual override returns (uint256) {\n        return _allowances[owner][spender];\n    }\n\n    /**\n     * @dev See {IERC20-approve}.\n     *\n     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n     * `transferFrom`. This is semantically equivalent to an infinite approval.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function approve(address spender, uint256 amount) public virtual override returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, amount);\n        return true;\n    }\n\n    /**\n     * @dev See {IERC20-transferFrom}.\n     *\n     * Emits an {Approval} event indicating the updated allowance. This is not\n     * required by the EIP. See the note at the beginning of {ERC20}.\n     *\n     * NOTE: Does not update the allowance if the current allowance\n     * is the maximum `uint256`.\n     *\n     * Requirements:\n     *\n     * - `from` and `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     * - the caller must have allowance for ``from``'s tokens of at least\n     * `amount`.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 amount\n    ) public virtual override returns (bool) {\n        address spender = _msgSender();\n        _spendAllowance(from, spender, amount);\n        _transfer(from, to, amount);\n        return true;\n    }\n\n    /**\n     * @dev Atomically increases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     */\n    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        _approve(owner, spender, allowance(owner, spender) + addedValue);\n        return true;\n    }\n\n    /**\n     * @dev Atomically decreases the allowance granted to `spender` by the caller.\n     *\n     * This is an alternative to {approve} that can be used as a mitigation for\n     * problems described in {IERC20-approve}.\n     *\n     * Emits an {Approval} event indicating the updated allowance.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `spender` must have allowance for the caller of at least\n     * `subtractedValue`.\n     */\n    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n        address owner = _msgSender();\n        uint256 currentAllowance = allowance(owner, spender);\n        require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n        unchecked {\n            _approve(owner, spender, currentAllowance - subtractedValue);\n        }\n\n        return true;\n    }\n\n    /**\n     * @dev Moves `amount` of tokens from `from` to `to`.\n     *\n     * This internal function is equivalent to {transfer}, and can be used to\n     * e.g. implement automatic token fees, slashing mechanisms, etc.\n     *\n     * Emits a {Transfer} event.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `from` must have a balance of at least `amount`.\n     */\n    function _transfer(\n        address from,\n        address to,\n        uint256 amount\n    ) internal virtual {\n        require(from != address(0), \"ERC20: transfer from the zero address\");\n        require(to != address(0), \"ERC20: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, amount);\n\n        uint256 fromBalance = _balances[from];\n        require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n        unchecked {\n            _balances[from] = fromBalance - amount;\n            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by\n            // decrementing then incrementing.\n            _balances[to] += amount;\n        }\n\n        emit Transfer(from, to, amount);\n\n        _afterTokenTransfer(from, to, amount);\n    }\n\n    /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n     * the total supply.\n     *\n     * Emits a {Transfer} event with `from` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     */\n    function _mint(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: mint to the zero address\");\n\n        _beforeTokenTransfer(address(0), account, amount);\n\n        _totalSupply += amount;\n        unchecked {\n            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.\n            _balances[account] += amount;\n        }\n        emit Transfer(address(0), account, amount);\n\n        _afterTokenTransfer(address(0), account, amount);\n    }\n\n    /**\n     * @dev Destroys `amount` tokens from `account`, reducing the\n     * total supply.\n     *\n     * Emits a {Transfer} event with `to` set to the zero address.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     * - `account` must have at least `amount` tokens.\n     */\n    function _burn(address account, uint256 amount) internal virtual {\n        require(account != address(0), \"ERC20: burn from the zero address\");\n\n        _beforeTokenTransfer(account, address(0), amount);\n\n        uint256 accountBalance = _balances[account];\n        require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n        unchecked {\n            _balances[account] = accountBalance - amount;\n            // Overflow not possible: amount <= accountBalance <= totalSupply.\n            _totalSupply -= amount;\n        }\n\n        emit Transfer(account, address(0), amount);\n\n        _afterTokenTransfer(account, address(0), amount);\n    }\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n     *\n     * This internal function is equivalent to `approve`, and can be used to\n     * e.g. set automatic allowances for certain subsystems, etc.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `owner` cannot be the zero address.\n     * - `spender` cannot be the zero address.\n     */\n    function _approve(\n        address owner,\n        address spender,\n        uint256 amount\n    ) internal virtual {\n        require(owner != address(0), \"ERC20: approve from the zero address\");\n        require(spender != address(0), \"ERC20: approve to the zero address\");\n\n        _allowances[owner][spender] = amount;\n        emit Approval(owner, spender, amount);\n    }\n\n    /**\n     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n     *\n     * Does not update the allowance amount in case of infinite allowance.\n     * Revert if not enough allowance is available.\n     *\n     * Might emit an {Approval} event.\n     */\n    function _spendAllowance(\n        address owner,\n        address spender,\n        uint256 amount\n    ) internal virtual {\n        uint256 currentAllowance = allowance(owner, spender);\n        if (currentAllowance != type(uint256).max) {\n            require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n            unchecked {\n                _approve(owner, spender, currentAllowance - amount);\n            }\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * will be transferred to `to`.\n     * - when `from` is zero, `amount` tokens will be minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(\n        address from,\n        address to,\n        uint256 amount\n    ) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any transfer of tokens. This includes\n     * minting and burning.\n     *\n     * Calling conditions:\n     *\n     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n     * has been transferred to `to`.\n     * - when `from` is zero, `amount` tokens have been minted for `to`.\n     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n     * - `from` and `to` are never both zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(\n        address from,\n        address to,\n        uint256 amount\n    ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/extensions/draft-ERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./draft-IERC20Permit.sol\";\nimport \"../ERC20.sol\";\nimport \"../../../utils/cryptography/ECDSA.sol\";\nimport \"../../../utils/cryptography/EIP712.sol\";\nimport \"../../../utils/Counters.sol\";\n\n/**\n * @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n *\n * _Available since v3.4._\n */\nabstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 {\n    using Counters for Counters.Counter;\n\n    mapping(address => Counters.Counter) private _nonces;\n\n    // solhint-disable-next-line var-name-mixedcase\n    bytes32 private constant _PERMIT_TYPEHASH =\n        keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n    /**\n     * @dev In previous versions `_PERMIT_TYPEHASH` was declared as `immutable`.\n     * However, to ensure consistency with the upgradeable transpiler, we will continue\n     * to reserve a slot.\n     * @custom:oz-renamed-from _PERMIT_TYPEHASH\n     */\n    // solhint-disable-next-line var-name-mixedcase\n    bytes32 private _PERMIT_TYPEHASH_DEPRECATED_SLOT;\n\n    /**\n     * @dev Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `\"1\"`.\n     *\n     * It's a good idea to use the same `name` that is defined as the ERC20 token name.\n     */\n    constructor(string memory name) EIP712(name, \"1\") {}\n\n    /**\n     * @dev See {IERC20Permit-permit}.\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override {\n        require(block.timestamp <= deadline, \"ERC20Permit: expired deadline\");\n\n        bytes32 structHash = keccak256(abi.encode(_PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline));\n\n        bytes32 hash = _hashTypedDataV4(structHash);\n\n        address signer = ECDSA.recover(hash, v, r, s);\n        require(signer == owner, \"ERC20Permit: invalid signature\");\n\n        _approve(owner, spender, value);\n    }\n\n    /**\n     * @dev See {IERC20Permit-nonces}.\n     */\n    function nonces(address owner) public view virtual override returns (uint256) {\n        return _nonces[owner].current();\n    }\n\n    /**\n     * @dev See {IERC20Permit-DOMAIN_SEPARATOR}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view override returns (bytes32) {\n        return _domainSeparatorV4();\n    }\n\n    /**\n     * @dev \"Consume a nonce\": return the current value and increment.\n     *\n     * _Available since v4.1._\n     */\n    function _useNonce(address owner) internal virtual returns (uint256 current) {\n        Counters.Counter storage nonce = _nonces[owner];\n        current = nonce.current();\n        nonce.increment();\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC20.sol\";\nimport \"../../../utils/Context.sol\";\n\n/**\n * @dev Extension of {ERC20} that allows token holders to destroy both their own\n * tokens and those that they have an allowance for, in a way that can be\n * recognized off-chain (via event analysis).\n */\nabstract contract ERC20Burnable is Context, ERC20 {\n    /**\n     * @dev Destroys `amount` tokens from the caller.\n     *\n     * See {ERC20-_burn}.\n     */\n    function burn(uint256 amount) public virtual {\n        _burn(_msgSender(), amount);\n    }\n\n    /**\n     * @dev Destroys `amount` tokens from `account`, deducting from the caller's\n     * allowance.\n     *\n     * See {ERC20-_burn} and {ERC20-allowance}.\n     *\n     * Requirements:\n     *\n     * - the caller must have allowance for ``accounts``'s tokens of at least\n     * `amount`.\n     */\n    function burnFrom(address account, uint256 amount) public virtual {\n        _spendAllowance(account, _msgSender(), amount);\n        _burn(account, amount);\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.1) (token/ERC20/extensions/ERC20Votes.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./draft-ERC20Permit.sol\";\nimport \"../../../utils/math/Math.sol\";\nimport \"../../../governance/utils/IVotes.sol\";\nimport \"../../../utils/math/SafeCast.sol\";\nimport \"../../../utils/cryptography/ECDSA.sol\";\n\n/**\n * @dev Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's,\n * and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1.\n *\n * NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module.\n *\n * This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either\n * by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting\n * power can be queried through the public accessors {getVotes} and {getPastVotes}.\n *\n * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it\n * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.\n *\n * _Available since v4.2._\n */\nabstract contract ERC20Votes is IVotes, ERC20Permit {\n    struct Checkpoint {\n        uint32 fromBlock;\n        uint224 votes;\n    }\n\n    bytes32 private constant _DELEGATION_TYPEHASH =\n        keccak256(\"Delegation(address delegatee,uint256 nonce,uint256 expiry)\");\n\n    mapping(address => address) private _delegates;\n    mapping(address => Checkpoint[]) private _checkpoints;\n    Checkpoint[] private _totalSupplyCheckpoints;\n\n    /**\n     * @dev Get the `pos`-th checkpoint for `account`.\n     */\n    function checkpoints(address account, uint32 pos) public view virtual returns (Checkpoint memory) {\n        return _checkpoints[account][pos];\n    }\n\n    /**\n     * @dev Get number of checkpoints for `account`.\n     */\n    function numCheckpoints(address account) public view virtual returns (uint32) {\n        return SafeCast.toUint32(_checkpoints[account].length);\n    }\n\n    /**\n     * @dev Get the address `account` is currently delegating to.\n     */\n    function delegates(address account) public view virtual override returns (address) {\n        return _delegates[account];\n    }\n\n    /**\n     * @dev Gets the current votes balance for `account`\n     */\n    function getVotes(address account) public view virtual override returns (uint256) {\n        uint256 pos = _checkpoints[account].length;\n        return pos == 0 ? 0 : _checkpoints[account][pos - 1].votes;\n    }\n\n    /**\n     * @dev Retrieve the number of votes for `account` at the end of `blockNumber`.\n     *\n     * Requirements:\n     *\n     * - `blockNumber` must have been already mined\n     */\n    function getPastVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) {\n        require(blockNumber < block.number, \"ERC20Votes: block not yet mined\");\n        return _checkpointsLookup(_checkpoints[account], blockNumber);\n    }\n\n    /**\n     * @dev Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances.\n     * It is but NOT the sum of all the delegated votes!\n     *\n     * Requirements:\n     *\n     * - `blockNumber` must have been already mined\n     */\n    function getPastTotalSupply(uint256 blockNumber) public view virtual override returns (uint256) {\n        require(blockNumber < block.number, \"ERC20Votes: block not yet mined\");\n        return _checkpointsLookup(_totalSupplyCheckpoints, blockNumber);\n    }\n\n    /**\n     * @dev Lookup a value in a list of (sorted) checkpoints.\n     */\n    function _checkpointsLookup(Checkpoint[] storage ckpts, uint256 blockNumber) private view returns (uint256) {\n        // We run a binary search to look for the earliest checkpoint taken after `blockNumber`.\n        //\n        // Initially we check if the block is recent to narrow the search range.\n        // During the loop, the index of the wanted checkpoint remains in the range [low-1, high).\n        // With each iteration, either `low` or `high` is moved towards the middle of the range to maintain the invariant.\n        // - If the middle checkpoint is after `blockNumber`, we look in [low, mid)\n        // - If the middle checkpoint is before or equal to `blockNumber`, we look in [mid+1, high)\n        // Once we reach a single value (when low == high), we've found the right checkpoint at the index high-1, if not\n        // out of bounds (in which case we're looking too far in the past and the result is 0).\n        // Note that if the latest checkpoint available is exactly for `blockNumber`, we end up with an index that is\n        // past the end of the array, so we technically don't find a checkpoint after `blockNumber`, but it works out\n        // the same.\n        uint256 length = ckpts.length;\n\n        uint256 low = 0;\n        uint256 high = length;\n\n        if (length > 5) {\n            uint256 mid = length - Math.sqrt(length);\n            if (_unsafeAccess(ckpts, mid).fromBlock > blockNumber) {\n                high = mid;\n            } else {\n                low = mid + 1;\n            }\n        }\n\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (_unsafeAccess(ckpts, mid).fromBlock > blockNumber) {\n                high = mid;\n            } else {\n                low = mid + 1;\n            }\n        }\n\n        return high == 0 ? 0 : _unsafeAccess(ckpts, high - 1).votes;\n    }\n\n    /**\n     * @dev Delegate votes from the sender to `delegatee`.\n     */\n    function delegate(address delegatee) public virtual override {\n        _delegate(_msgSender(), delegatee);\n    }\n\n    /**\n     * @dev Delegates votes from signer to `delegatee`\n     */\n    function delegateBySig(\n        address delegatee,\n        uint256 nonce,\n        uint256 expiry,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override {\n        require(block.timestamp <= expiry, \"ERC20Votes: signature expired\");\n        address signer = ECDSA.recover(\n            _hashTypedDataV4(keccak256(abi.encode(_DELEGATION_TYPEHASH, delegatee, nonce, expiry))),\n            v,\n            r,\n            s\n        );\n        require(nonce == _useNonce(signer), \"ERC20Votes: invalid nonce\");\n        _delegate(signer, delegatee);\n    }\n\n    /**\n     * @dev Maximum token supply. Defaults to `type(uint224).max` (2^224^ - 1).\n     */\n    function _maxSupply() internal view virtual returns (uint224) {\n        return type(uint224).max;\n    }\n\n    /**\n     * @dev Snapshots the totalSupply after it has been increased.\n     */\n    function _mint(address account, uint256 amount) internal virtual override {\n        super._mint(account, amount);\n        require(totalSupply() <= _maxSupply(), \"ERC20Votes: total supply risks overflowing votes\");\n\n        _writeCheckpoint(_totalSupplyCheckpoints, _add, amount);\n    }\n\n    /**\n     * @dev Snapshots the totalSupply after it has been decreased.\n     */\n    function _burn(address account, uint256 amount) internal virtual override {\n        super._burn(account, amount);\n\n        _writeCheckpoint(_totalSupplyCheckpoints, _subtract, amount);\n    }\n\n    /**\n     * @dev Move voting power when tokens are transferred.\n     *\n     * Emits a {IVotes-DelegateVotesChanged} event.\n     */\n    function _afterTokenTransfer(\n        address from,\n        address to,\n        uint256 amount\n    ) internal virtual override {\n        super._afterTokenTransfer(from, to, amount);\n\n        _moveVotingPower(delegates(from), delegates(to), amount);\n    }\n\n    /**\n     * @dev Change delegation for `delegator` to `delegatee`.\n     *\n     * Emits events {IVotes-DelegateChanged} and {IVotes-DelegateVotesChanged}.\n     */\n    function _delegate(address delegator, address delegatee) internal virtual {\n        address currentDelegate = delegates(delegator);\n        uint256 delegatorBalance = balanceOf(delegator);\n        _delegates[delegator] = delegatee;\n\n        emit DelegateChanged(delegator, currentDelegate, delegatee);\n\n        _moveVotingPower(currentDelegate, delegatee, delegatorBalance);\n    }\n\n    function _moveVotingPower(\n        address src,\n        address dst,\n        uint256 amount\n    ) private {\n        if (src != dst && amount > 0) {\n            if (src != address(0)) {\n                (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[src], _subtract, amount);\n                emit DelegateVotesChanged(src, oldWeight, newWeight);\n            }\n\n            if (dst != address(0)) {\n                (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[dst], _add, amount);\n                emit DelegateVotesChanged(dst, oldWeight, newWeight);\n            }\n        }\n    }\n\n    function _writeCheckpoint(\n        Checkpoint[] storage ckpts,\n        function(uint256, uint256) view returns (uint256) op,\n        uint256 delta\n    ) private returns (uint256 oldWeight, uint256 newWeight) {\n        uint256 pos = ckpts.length;\n\n        Checkpoint memory oldCkpt = pos == 0 ? Checkpoint(0, 0) : _unsafeAccess(ckpts, pos - 1);\n\n        oldWeight = oldCkpt.votes;\n        newWeight = op(oldWeight, delta);\n\n        if (pos > 0 && oldCkpt.fromBlock == block.number) {\n            _unsafeAccess(ckpts, pos - 1).votes = SafeCast.toUint224(newWeight);\n        } else {\n            ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)}));\n        }\n    }\n\n    function _add(uint256 a, uint256 b) private pure returns (uint256) {\n        return a + b;\n    }\n\n    function _subtract(uint256 a, uint256 b) private pure returns (uint256) {\n        return a - b;\n    }\n\n    /**\n     * @dev Access an element of the array without performing bounds check. The position is assumed to be within bounds.\n     */\n    function _unsafeAccess(Checkpoint[] storage ckpts, uint256 pos) private pure returns (Checkpoint storage result) {\n        assembly {\n            mstore(0, ckpts.slot)\n            result.slot := add(keccak256(0, 0x20), pos)\n        }\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20VotesComp.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./ERC20Votes.sol\";\n\n/**\n * @dev Extension of ERC20 to support Compound's voting and delegation. This version exactly matches Compound's\n * interface, with the drawback of only supporting supply up to (2^96^ - 1).\n *\n * NOTE: You should use this contract if you need exact compatibility with COMP (for example in order to use your token\n * with Governor Alpha or Bravo) and if you are sure the supply cap of 2^96^ is enough for you. Otherwise, use the\n * {ERC20Votes} variant of this module.\n *\n * This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either\n * by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting\n * power can be queried through the public accessors {getCurrentVotes} and {getPriorVotes}.\n *\n * By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it\n * requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.\n *\n * _Available since v4.2._\n */\nabstract contract ERC20VotesComp is ERC20Votes {\n    /**\n     * @dev Comp version of the {getVotes} accessor, with `uint96` return type.\n     */\n    function getCurrentVotes(address account) external view virtual returns (uint96) {\n        return SafeCast.toUint96(getVotes(account));\n    }\n\n    /**\n     * @dev Comp version of the {getPastVotes} accessor, with `uint96` return type.\n     */\n    function getPriorVotes(address account, uint256 blockNumber) external view virtual returns (uint96) {\n        return SafeCast.toUint96(getPastVotes(account, blockNumber));\n    }\n\n    /**\n     * @dev Maximum token supply. Reduced to `type(uint96).max` (2^96^ - 1) to fit COMP interface.\n     */\n    function _maxSupply() internal view virtual override returns (uint224) {\n        return type(uint96).max;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n    /**\n     * @dev Returns the name of the token.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the symbol of the token.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the decimals places of the token.\n     */\n    function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 amount\n    ) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    function safeTransfer(\n        IERC20 token,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    function safeTransferFrom(\n        IERC20 token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    function safeIncreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        uint256 newAllowance = token.allowance(address(this), spender) + value;\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n    }\n\n    function safeDecreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            uint256 newAllowance = oldAllowance - value;\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n        }\n    }\n\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        if (returndata.length > 0) {\n            // Return data is optional\n            require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n        }\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.2) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n    using Address for address;\n    using Strings for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    // Mapping from token ID to owner address\n    mapping(uint256 => address) private _owners;\n\n    // Mapping owner address to token count\n    mapping(address => uint256) private _balances;\n\n    // Mapping from token ID to approved address\n    mapping(uint256 => address) private _tokenApprovals;\n\n    // Mapping from owner to operator approvals\n    mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n        return\n            interfaceId == type(IERC721).interfaceId ||\n            interfaceId == type(IERC721Metadata).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual override returns (uint256) {\n        require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n        address owner = _ownerOf(tokenId);\n        require(owner != address(0), \"ERC721: invalid token ID\");\n        return owner;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n        _requireMinted(tokenId);\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overridden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual override {\n        address owner = ERC721.ownerOf(tokenId);\n        require(to != owner, \"ERC721: approval to current owner\");\n\n        require(\n            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n            \"ERC721: approve caller is not token owner or approved for all\"\n        );\n\n        _approve(to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual override returns (address) {\n        _requireMinted(tokenId);\n\n        return _tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual override {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n        return _operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) public virtual override {\n        //solhint-disable-next-line max-line-length\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n\n        _transfer(from, to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) public virtual override {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) public virtual override {\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n        _safeTransfer(from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * `data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) internal virtual {\n        _transfer(from, to, tokenId);\n        require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n    }\n\n    /**\n     * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n     */\n    function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n        return _owners[tokenId];\n    }\n\n    /**\n     * @dev Returns whether `tokenId` exists.\n     *\n     * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n     *\n     * Tokens start existing when they are minted (`_mint`),\n     * and stop existing when they are burned (`_burn`).\n     */\n    function _exists(uint256 tokenId) internal view virtual returns (bool) {\n        return _ownerOf(tokenId) != address(0);\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `tokenId`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n        address owner = ERC721.ownerOf(tokenId);\n        return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n    }\n\n    /**\n     * @dev Safely mints `tokenId` and transfers it to `to`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal virtual {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) internal virtual {\n        _mint(to, tokenId);\n        require(\n            _checkOnERC721Received(address(0), to, tokenId, data),\n            \"ERC721: transfer to non ERC721Receiver implementer\"\n        );\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal virtual {\n        require(to != address(0), \"ERC721: mint to the zero address\");\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        _beforeTokenTransfer(address(0), to, tokenId, 1);\n\n        // Check that tokenId was not minted by `_beforeTokenTransfer` hook\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        unchecked {\n            // Will not overflow unless all 2**256 token ids are minted to the same owner.\n            // Given that tokens are minted one by one, it is impossible in practice that\n            // this ever happens. Might change if we allow batch minting.\n            // The ERC fails to describe this case.\n            _balances[to] += 1;\n        }\n\n        _owners[tokenId] = to;\n\n        emit Transfer(address(0), to, tokenId);\n\n        _afterTokenTransfer(address(0), to, tokenId, 1);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     * This is an internal function that does not check if the sender is authorized to operate on the token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal virtual {\n        address owner = ERC721.ownerOf(tokenId);\n\n        _beforeTokenTransfer(owner, address(0), tokenId, 1);\n\n        // Update ownership in case tokenId was transferred by `_beforeTokenTransfer` hook\n        owner = ERC721.ownerOf(tokenId);\n\n        // Clear approvals\n        delete _tokenApprovals[tokenId];\n\n        unchecked {\n            // Cannot overflow, as that would require more tokens to be burned/transferred\n            // out than the owner initially received through minting and transferring in.\n            _balances[owner] -= 1;\n        }\n        delete _owners[tokenId];\n\n        emit Transfer(owner, address(0), tokenId);\n\n        _afterTokenTransfer(owner, address(0), tokenId, 1);\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(\n        address from,\n        address to,\n        uint256 tokenId\n    ) internal virtual {\n        require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n        require(to != address(0), \"ERC721: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, tokenId, 1);\n\n        // Check that tokenId was not transferred by `_beforeTokenTransfer` hook\n        require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n\n        // Clear approvals from the previous owner\n        delete _tokenApprovals[tokenId];\n\n        unchecked {\n            // `_balances[from]` cannot overflow for the same reason as described in `_burn`:\n            // `from`'s balance is the number of token held, which is at least one before the current\n            // transfer.\n            // `_balances[to]` could overflow in the conditions described in `_mint`. That would require\n            // all 2**256 token ids to be minted, which in practice is impossible.\n            _balances[from] -= 1;\n            _balances[to] += 1;\n        }\n        _owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        _afterTokenTransfer(from, to, tokenId, 1);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * Emits an {Approval} event.\n     */\n    function _approve(address to, uint256 tokenId) internal virtual {\n        _tokenApprovals[tokenId] = to;\n        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(\n        address owner,\n        address operator,\n        bool approved\n    ) internal virtual {\n        require(owner != operator, \"ERC721: approve to caller\");\n        _operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Reverts if the `tokenId` has not been minted yet.\n     */\n    function _requireMinted(uint256 tokenId) internal view virtual {\n        require(_exists(tokenId), \"ERC721: invalid token ID\");\n    }\n\n    /**\n     * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n     * The call is not executed if the target address is not a contract.\n     *\n     * @param from address representing the previous owner of the given token ID\n     * @param to target address that will receive the tokens\n     * @param tokenId uint256 ID of the token to be transferred\n     * @param data bytes optional data to send along with the call\n     * @return bool whether the call correctly returned the expected magic value\n     */\n    function _checkOnERC721Received(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) private returns (bool) {\n        if (to.isContract()) {\n            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n                return retval == IERC721Receiver.onERC721Received.selector;\n            } catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n                } else {\n                    /// @solidity memory-safe-assembly\n                    assembly {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        } else {\n            return true;\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n     * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n     * - When `from` is zero, the tokens will be minted for `to`.\n     * - When `to` is zero, ``from``'s tokens will be burned.\n     * - `from` and `to` are never both zero.\n     * - `batchSize` is non-zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(\n        address from,\n        address to,\n        uint256 firstTokenId,\n        uint256 batchSize\n    ) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n     * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n     * - When `from` is zero, the tokens were minted for `to`.\n     * - When `to` is zero, ``from``'s tokens were burned.\n     * - `from` and `to` are never both zero.\n     * - `batchSize` is non-zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(\n        address from,\n        address to,\n        uint256 firstTokenId,\n        uint256 batchSize\n    ) internal virtual {}\n\n    /**\n     * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n     *\n     * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n     * being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n     * that `ownerOf(tokenId)` is `a`.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function __unsafe_increaseBalance(address account, uint256 amount) internal {\n        _balances[account] += amount;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/extensions/ERC721Enumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC721.sol\";\nimport \"./IERC721Enumerable.sol\";\n\n/**\n * @dev This implements an optional extension of {ERC721} defined in the EIP that adds\n * enumerability of all the token ids in the contract as well as all token ids owned by each\n * account.\n */\nabstract contract ERC721Enumerable is ERC721, IERC721Enumerable {\n    // Mapping from owner to list of owned token IDs\n    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;\n\n    // Mapping from token ID to index of the owner tokens list\n    mapping(uint256 => uint256) private _ownedTokensIndex;\n\n    // Array with all token ids, used for enumeration\n    uint256[] private _allTokens;\n\n    // Mapping from token id to position in the allTokens array\n    mapping(uint256 => uint256) private _allTokensIndex;\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {\n        return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n     */\n    function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n        require(index < ERC721.balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n        return _ownedTokens[owner][index];\n    }\n\n    /**\n     * @dev See {IERC721Enumerable-totalSupply}.\n     */\n    function totalSupply() public view virtual override returns (uint256) {\n        return _allTokens.length;\n    }\n\n    /**\n     * @dev See {IERC721Enumerable-tokenByIndex}.\n     */\n    function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n        require(index < ERC721Enumerable.totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n        return _allTokens[index];\n    }\n\n    /**\n     * @dev See {ERC721-_beforeTokenTransfer}.\n     */\n    function _beforeTokenTransfer(\n        address from,\n        address to,\n        uint256 firstTokenId,\n        uint256 batchSize\n    ) internal virtual override {\n        super._beforeTokenTransfer(from, to, firstTokenId, batchSize);\n\n        if (batchSize > 1) {\n            // Will only trigger during construction. Batch transferring (minting) is not available afterwards.\n            revert(\"ERC721Enumerable: consecutive transfers not supported\");\n        }\n\n        uint256 tokenId = firstTokenId;\n\n        if (from == address(0)) {\n            _addTokenToAllTokensEnumeration(tokenId);\n        } else if (from != to) {\n            _removeTokenFromOwnerEnumeration(from, tokenId);\n        }\n        if (to == address(0)) {\n            _removeTokenFromAllTokensEnumeration(tokenId);\n        } else if (to != from) {\n            _addTokenToOwnerEnumeration(to, tokenId);\n        }\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's ownership-tracking data structures.\n     * @param to address representing the new owner of the given token ID\n     * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n     */\n    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n        uint256 length = ERC721.balanceOf(to);\n        _ownedTokens[to][length] = tokenId;\n        _ownedTokensIndex[tokenId] = length;\n    }\n\n    /**\n     * @dev Private function to add a token to this extension's token tracking data structures.\n     * @param tokenId uint256 ID of the token to be added to the tokens list\n     */\n    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n        _allTokensIndex[tokenId] = _allTokens.length;\n        _allTokens.push(tokenId);\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n     * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n     * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n     * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n     * @param from address representing the previous owner of the given token ID\n     * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n     */\n    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n        // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;\n        uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary\n        if (tokenIndex != lastTokenIndex) {\n            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n        }\n\n        // This also deletes the contents at the last position of the array\n        delete _ownedTokensIndex[tokenId];\n        delete _ownedTokens[from][lastTokenIndex];\n    }\n\n    /**\n     * @dev Private function to remove a token from this extension's token tracking data structures.\n     * This has O(1) time complexity, but alters the order of the _allTokens array.\n     * @param tokenId uint256 ID of the token to be removed from the tokens list\n     */\n    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n        // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n        // then delete the last slot (swap and pop).\n\n        uint256 lastTokenIndex = _allTokens.length - 1;\n        uint256 tokenIndex = _allTokensIndex[tokenId];\n\n        // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n        // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n        // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n        uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n        // This also deletes the contents at the last position of the array\n        delete _allTokensIndex[tokenId];\n        _allTokens.pop();\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n    /**\n     * @dev Returns the total amount of tokens stored by the contract.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n     * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n     */\n    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);\n\n    /**\n     * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n     * Use along with {totalSupply} to enumerate all tokens.\n     */\n    function tokenByIndex(uint256 index) external view returns (uint256);\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n    /**\n     * @dev Returns the token collection name.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the token collection symbol.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n     */\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n    /**\n     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n     */\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n     */\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n    /**\n     * @dev Returns the number of tokens in ``owner``'s account.\n     */\n    function balanceOf(address owner) external view returns (uint256 balance);\n\n    /**\n     * @dev Returns the owner of the `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function ownerOf(uint256 tokenId) external view returns (address owner);\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes calldata data\n    ) external;\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) external;\n\n    /**\n     * @dev Transfers `tokenId` token from `from` to `to`.\n     *\n     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n     * understand this adds an external call which potentially creates a reentrancy vulnerability.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 tokenId\n    ) external;\n\n    /**\n     * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n     * The approval is cleared when the token is transferred.\n     *\n     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n     *\n     * Requirements:\n     *\n     * - The caller must own the token or be an approved operator.\n     * - `tokenId` must exist.\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address to, uint256 tokenId) external;\n\n    /**\n     * @dev Approve or remove `operator` as an operator for the caller.\n     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n     *\n     * Requirements:\n     *\n     * - The `operator` cannot be the caller.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function setApprovalForAll(address operator, bool _approved) external;\n\n    /**\n     * @dev Returns the account approved for `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function getApproved(uint256 tokenId) external view returns (address operator);\n\n    /**\n     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n     *\n     * See {setApprovalForAll}\n     */\n    function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n    /**\n     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n     * by `operator` from `from`, this function is called.\n     *\n     * It must return its Solidity selector to confirm the token transfer.\n     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n     *\n     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n     */\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Base64.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides a set of functions to operate with Base64 strings.\n *\n * _Available since v4.5._\n */\nlibrary Base64 {\n    /**\n     * @dev Base64 Encoding/Decoding Table\n     */\n    string internal constant _TABLE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n    /**\n     * @dev Converts a `bytes` to its Bytes64 `string` representation.\n     */\n    function encode(bytes memory data) internal pure returns (string memory) {\n        /**\n         * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n         * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol\n         */\n        if (data.length == 0) return \"\";\n\n        // Loads the table into memory\n        string memory table = _TABLE;\n\n        // Encoding takes 3 bytes chunks of binary data from `bytes` data parameter\n        // and split into 4 numbers of 6 bits.\n        // The final Base64 length should be `bytes` data length multiplied by 4/3 rounded up\n        // - `data.length + 2`  -> Round up\n        // - `/ 3`              -> Number of 3-bytes chunks\n        // - `4 *`              -> 4 characters for each chunk\n        string memory result = new string(4 * ((data.length + 2) / 3));\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            // Prepare the lookup table (skip the first \"length\" byte)\n            let tablePtr := add(table, 1)\n\n            // Prepare result pointer, jump over length\n            let resultPtr := add(result, 32)\n\n            // Run over the input, 3 bytes at a time\n            for {\n                let dataPtr := data\n                let endPtr := add(data, mload(data))\n            } lt(dataPtr, endPtr) {\n\n            } {\n                // Advance 3 bytes\n                dataPtr := add(dataPtr, 3)\n                let input := mload(dataPtr)\n\n                // To write each character, shift the 3 bytes (18 bits) chunk\n                // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)\n                // and apply logical AND with 0x3F which is the number of\n                // the previous character in the ASCII table prior to the Base64 Table\n                // The result is then added to the table to get the character to write,\n                // and finally write it in the result pointer but with a left shift\n                // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits\n\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n\n                mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\n                resultPtr := add(resultPtr, 1) // Advance\n            }\n\n            // When data `bytes` is not exactly 3 bytes long\n            // it is padded with `=` characters at the end\n            switch mod(mload(data), 3)\n            case 1 {\n                mstore8(sub(resultPtr, 1), 0x3d)\n                mstore8(sub(resultPtr, 2), 0x3d)\n            }\n            case 2 {\n                mstore8(sub(resultPtr, 1), 0x3d)\n            }\n        }\n\n        return result;\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"@openzeppelin/contracts/utils/Counters.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n    struct Counter {\n        // This variable should never be directly accessed by users of the library: interactions must be restricted to\n        // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n        // this feature: see https://github.com/ethereum/solidity/issues/4637\n        uint256 _value; // default: 0\n    }\n\n    function current(Counter storage counter) internal view returns (uint256) {\n        return counter._value;\n    }\n\n    function increment(Counter storage counter) internal {\n        unchecked {\n            counter._value += 1;\n        }\n    }\n\n    function decrement(Counter storage counter) internal {\n        uint256 value = counter._value;\n        require(value > 0, \"Counter: decrement overflow\");\n        unchecked {\n            counter._value = value - 1;\n        }\n    }\n\n    function reset(Counter storage counter) internal {\n        counter._value = 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Strings.sol\";\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n    enum RecoverError {\n        NoError,\n        InvalidSignature,\n        InvalidSignatureLength,\n        InvalidSignatureS,\n        InvalidSignatureV // Deprecated in v4.8\n    }\n\n    function _throwError(RecoverError error) private pure {\n        if (error == RecoverError.NoError) {\n            return; // no error: do nothing\n        } else if (error == RecoverError.InvalidSignature) {\n            revert(\"ECDSA: invalid signature\");\n        } else if (error == RecoverError.InvalidSignatureLength) {\n            revert(\"ECDSA: invalid signature length\");\n        } else if (error == RecoverError.InvalidSignatureS) {\n            revert(\"ECDSA: invalid signature 's' value\");\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature` or error string. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     *\n     * Documentation for signature generation:\n     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {\n        if (signature.length == 65) {\n            bytes32 r;\n            bytes32 s;\n            uint8 v;\n            // ecrecover takes the signature parameters, and the only way to get them\n            // currently is to use assembly.\n            /// @solidity memory-safe-assembly\n            assembly {\n                r := mload(add(signature, 0x20))\n                s := mload(add(signature, 0x40))\n                v := byte(0, mload(add(signature, 0x60)))\n            }\n            return tryRecover(hash, v, r, s);\n        } else {\n            return (address(0), RecoverError.InvalidSignatureLength);\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature`. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     */\n    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, signature);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n     *\n     * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(\n        bytes32 hash,\n        bytes32 r,\n        bytes32 vs\n    ) internal pure returns (address, RecoverError) {\n        bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n        uint8 v = uint8((uint256(vs) >> 255) + 27);\n        return tryRecover(hash, v, r, s);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n     *\n     * _Available since v4.2._\n     */\n    function recover(\n        bytes32 hash,\n        bytes32 r,\n        bytes32 vs\n    ) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, r, vs);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(\n        bytes32 hash,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal pure returns (address, RecoverError) {\n        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n        // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n        //\n        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n        // these malleable signatures as well.\n        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n            return (address(0), RecoverError.InvalidSignatureS);\n        }\n\n        // If the signature is valid (and not malleable), return the signer address\n        address signer = ecrecover(hash, v, r, s);\n        if (signer == address(0)) {\n            return (address(0), RecoverError.InvalidSignature);\n        }\n\n        return (signer, RecoverError.NoError);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     */\n    function recover(\n        bytes32 hash,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, v, r, s);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from a `hash`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {\n        // 32 is the length in bytes of hash,\n        // enforced by the type signature above\n        return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", hash));\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from `s`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n\", Strings.toString(s.length), s));\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Typed Data, created from a\n     * `domainSeparator` and a `structHash`. This produces hash corresponding\n     * to the one signed with the\n     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n     * JSON-RPC method as part of EIP-712.\n     *\n     * See {recover}.\n     */\n    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/EIP712.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./ECDSA.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n * they need in their contracts using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * _Available since v3.4._\n */\nabstract contract EIP712 {\n    /* solhint-disable var-name-mixedcase */\n    // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to\n    // invalidate the cached domain separator if the chain id changes.\n    bytes32 private immutable _CACHED_DOMAIN_SEPARATOR;\n    uint256 private immutable _CACHED_CHAIN_ID;\n    address private immutable _CACHED_THIS;\n\n    bytes32 private immutable _HASHED_NAME;\n    bytes32 private immutable _HASHED_VERSION;\n    bytes32 private immutable _TYPE_HASH;\n\n    /* solhint-enable var-name-mixedcase */\n\n    /**\n     * @dev Initializes the domain separator and parameter caches.\n     *\n     * The meaning of `name` and `version` is specified in\n     * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n     *\n     * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n     * - `version`: the current major version of the signing domain.\n     *\n     * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n     * contract upgrade].\n     */\n    constructor(string memory name, string memory version) {\n        bytes32 hashedName = keccak256(bytes(name));\n        bytes32 hashedVersion = keccak256(bytes(version));\n        bytes32 typeHash = keccak256(\n            \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"\n        );\n        _HASHED_NAME = hashedName;\n        _HASHED_VERSION = hashedVersion;\n        _CACHED_CHAIN_ID = block.chainid;\n        _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion);\n        _CACHED_THIS = address(this);\n        _TYPE_HASH = typeHash;\n    }\n\n    /**\n     * @dev Returns the domain separator for the current chain.\n     */\n    function _domainSeparatorV4() internal view returns (bytes32) {\n        if (address(this) == _CACHED_THIS && block.chainid == _CACHED_CHAIN_ID) {\n            return _CACHED_DOMAIN_SEPARATOR;\n        } else {\n            return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION);\n        }\n    }\n\n    function _buildDomainSeparator(\n        bytes32 typeHash,\n        bytes32 nameHash,\n        bytes32 versionHash\n    ) private view returns (bytes32) {\n        return keccak256(abi.encode(typeHash, nameHash, versionHash, block.chainid, address(this)));\n    }\n\n    /**\n     * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n     * function returns the hash of the fully encoded EIP712 message for this domain.\n     *\n     * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n     *\n     * ```solidity\n     * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     *     keccak256(\"Mail(address to,string contents)\"),\n     *     mailTo,\n     *     keccak256(bytes(mailContents))\n     * )));\n     * address signer = ECDSA.recover(digest, signature);\n     * ```\n     */\n    function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n        return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash);\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/MerkleProof.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev These functions deal with verification of Merkle Tree proofs.\n *\n * The tree and the proofs can be generated using our\n * https://github.com/OpenZeppelin/merkle-tree[JavaScript library].\n * You will find a quickstart guide in the readme.\n *\n * WARNING: You should avoid using leaf values that are 64 bytes long prior to\n * hashing, or use a hash function other than keccak256 for hashing leaves.\n * This is because the concatenation of a sorted pair of internal nodes in\n * the merkle tree could be reinterpreted as a leaf value.\n * OpenZeppelin's JavaScript library generates merkle trees that are safe\n * against this attack out of the box.\n */\nlibrary MerkleProof {\n    /**\n     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n     * defined by `root`. For this, a `proof` must be provided, containing\n     * sibling hashes on the branch from the leaf to the root of the tree. Each\n     * pair of leaves and each pair of pre-images are assumed to be sorted.\n     */\n    function verify(\n        bytes32[] memory proof,\n        bytes32 root,\n        bytes32 leaf\n    ) internal pure returns (bool) {\n        return processProof(proof, leaf) == root;\n    }\n\n    /**\n     * @dev Calldata version of {verify}\n     *\n     * _Available since v4.7._\n     */\n    function verifyCalldata(\n        bytes32[] calldata proof,\n        bytes32 root,\n        bytes32 leaf\n    ) internal pure returns (bool) {\n        return processProofCalldata(proof, leaf) == root;\n    }\n\n    /**\n     * @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n     * hash matches the root of the tree. When processing the proof, the pairs\n     * of leafs & pre-images are assumed to be sorted.\n     *\n     * _Available since v4.4._\n     */\n    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = _hashPair(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Calldata version of {processProof}\n     *\n     * _Available since v4.7._\n     */\n    function processProofCalldata(bytes32[] calldata proof, bytes32 leaf) internal pure returns (bytes32) {\n        bytes32 computedHash = leaf;\n        for (uint256 i = 0; i < proof.length; i++) {\n            computedHash = _hashPair(computedHash, proof[i]);\n        }\n        return computedHash;\n    }\n\n    /**\n     * @dev Returns true if the `leaves` can be simultaneously proven to be a part of a merkle tree defined by\n     * `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n     *\n     * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n     *\n     * _Available since v4.7._\n     */\n    function multiProofVerify(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves\n    ) internal pure returns (bool) {\n        return processMultiProof(proof, proofFlags, leaves) == root;\n    }\n\n    /**\n     * @dev Calldata version of {multiProofVerify}\n     *\n     * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n     *\n     * _Available since v4.7._\n     */\n    function multiProofVerifyCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32 root,\n        bytes32[] memory leaves\n    ) internal pure returns (bool) {\n        return processMultiProofCalldata(proof, proofFlags, leaves) == root;\n    }\n\n    /**\n     * @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n     * proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n     * leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n     * respectively.\n     *\n     * CAUTION: Not all merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n     * is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n     * tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n     *\n     * _Available since v4.7._\n     */\n    function processMultiProof(\n        bytes32[] memory proof,\n        bool[] memory proofFlags,\n        bytes32[] memory leaves\n    ) internal pure returns (bytes32 merkleRoot) {\n        // This function rebuild the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 totalHashes = proofFlags.length;\n\n        // Check proof validity.\n        require(leavesLen + proof.length - 1 == totalHashes, \"MerkleProof: invalid multiproof\");\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](totalHashes);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value for the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < totalHashes; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i] ? leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++] : proof[proofPos++];\n            hashes[i] = _hashPair(a, b);\n        }\n\n        if (totalHashes > 0) {\n            return hashes[totalHashes - 1];\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n\n    /**\n     * @dev Calldata version of {processMultiProof}.\n     *\n     * CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n     *\n     * _Available since v4.7._\n     */\n    function processMultiProofCalldata(\n        bytes32[] calldata proof,\n        bool[] calldata proofFlags,\n        bytes32[] memory leaves\n    ) internal pure returns (bytes32 merkleRoot) {\n        // This function rebuild the root hash by traversing the tree up from the leaves. The root is rebuilt by\n        // consuming and producing values on a queue. The queue starts with the `leaves` array, then goes onto the\n        // `hashes` array. At the end of the process, the last hash in the `hashes` array should contain the root of\n        // the merkle tree.\n        uint256 leavesLen = leaves.length;\n        uint256 totalHashes = proofFlags.length;\n\n        // Check proof validity.\n        require(leavesLen + proof.length - 1 == totalHashes, \"MerkleProof: invalid multiproof\");\n\n        // The xxxPos values are \"pointers\" to the next value to consume in each array. All accesses are done using\n        // `xxx[xxxPos++]`, which return the current value and increment the pointer, thus mimicking a queue's \"pop\".\n        bytes32[] memory hashes = new bytes32[](totalHashes);\n        uint256 leafPos = 0;\n        uint256 hashPos = 0;\n        uint256 proofPos = 0;\n        // At each step, we compute the next hash using two values:\n        // - a value from the \"main queue\". If not all leaves have been consumed, we get the next leaf, otherwise we\n        //   get the next hash.\n        // - depending on the flag, either another value for the \"main queue\" (merging branches) or an element from the\n        //   `proof` array.\n        for (uint256 i = 0; i < totalHashes; i++) {\n            bytes32 a = leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++];\n            bytes32 b = proofFlags[i] ? leafPos < leavesLen ? leaves[leafPos++] : hashes[hashPos++] : proof[proofPos++];\n            hashes[i] = _hashPair(a, b);\n        }\n\n        if (totalHashes > 0) {\n            return hashes[totalHashes - 1];\n        } else if (leavesLen > 0) {\n            return leaves[0];\n        } else {\n            return proof[0];\n        }\n    }\n\n    function _hashPair(bytes32 a, bytes32 b) private pure returns (bytes32) {\n        return a < b ? _efficientHash(a, b) : _efficientHash(b, a);\n    }\n\n    function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            mstore(0x00, a)\n            mstore(0x20, b)\n            value := keccak256(0x00, 0x40)\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(\n        uint256 x,\n        uint256 y,\n        uint256 denominator\n    ) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1);\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(\n        uint256 x,\n        uint256 y,\n        uint256 denominator,\n        Rounding rounding\n    ) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10**64) {\n                value /= 10**64;\n                result += 64;\n            }\n            if (value >= 10**32) {\n                value /= 10**32;\n                result += 32;\n            }\n            if (value >= 10**16) {\n                value /= 10**16;\n                result += 16;\n            }\n            if (value >= 10**8) {\n                value /= 10**8;\n                result += 8;\n            }\n            if (value >= 10**4) {\n                value /= 10**4;\n                result += 4;\n            }\n            if (value >= 10**2) {\n                value /= 10**2;\n                result += 2;\n            }\n            if (value >= 10**1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (rounding == Rounding.Up && 10**result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n *\n * Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n * all math on `uint256` and `int256` and then downcasting.\n */\nlibrary SafeCast {\n    /**\n     * @dev Returns the downcasted uint248 from uint256, reverting on\n     * overflow (when the input is greater than largest uint248).\n     *\n     * Counterpart to Solidity's `uint248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint248(uint256 value) internal pure returns (uint248) {\n        require(value <= type(uint248).max, \"SafeCast: value doesn't fit in 248 bits\");\n        return uint248(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint240 from uint256, reverting on\n     * overflow (when the input is greater than largest uint240).\n     *\n     * Counterpart to Solidity's `uint240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint240(uint256 value) internal pure returns (uint240) {\n        require(value <= type(uint240).max, \"SafeCast: value doesn't fit in 240 bits\");\n        return uint240(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint232 from uint256, reverting on\n     * overflow (when the input is greater than largest uint232).\n     *\n     * Counterpart to Solidity's `uint232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint232(uint256 value) internal pure returns (uint232) {\n        require(value <= type(uint232).max, \"SafeCast: value doesn't fit in 232 bits\");\n        return uint232(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint224 from uint256, reverting on\n     * overflow (when the input is greater than largest uint224).\n     *\n     * Counterpart to Solidity's `uint224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint224(uint256 value) internal pure returns (uint224) {\n        require(value <= type(uint224).max, \"SafeCast: value doesn't fit in 224 bits\");\n        return uint224(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint216 from uint256, reverting on\n     * overflow (when the input is greater than largest uint216).\n     *\n     * Counterpart to Solidity's `uint216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint216(uint256 value) internal pure returns (uint216) {\n        require(value <= type(uint216).max, \"SafeCast: value doesn't fit in 216 bits\");\n        return uint216(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint208 from uint256, reverting on\n     * overflow (when the input is greater than largest uint208).\n     *\n     * Counterpart to Solidity's `uint208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint208(uint256 value) internal pure returns (uint208) {\n        require(value <= type(uint208).max, \"SafeCast: value doesn't fit in 208 bits\");\n        return uint208(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint200 from uint256, reverting on\n     * overflow (when the input is greater than largest uint200).\n     *\n     * Counterpart to Solidity's `uint200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint200(uint256 value) internal pure returns (uint200) {\n        require(value <= type(uint200).max, \"SafeCast: value doesn't fit in 200 bits\");\n        return uint200(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint192 from uint256, reverting on\n     * overflow (when the input is greater than largest uint192).\n     *\n     * Counterpart to Solidity's `uint192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint192(uint256 value) internal pure returns (uint192) {\n        require(value <= type(uint192).max, \"SafeCast: value doesn't fit in 192 bits\");\n        return uint192(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint184 from uint256, reverting on\n     * overflow (when the input is greater than largest uint184).\n     *\n     * Counterpart to Solidity's `uint184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint184(uint256 value) internal pure returns (uint184) {\n        require(value <= type(uint184).max, \"SafeCast: value doesn't fit in 184 bits\");\n        return uint184(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint176 from uint256, reverting on\n     * overflow (when the input is greater than largest uint176).\n     *\n     * Counterpart to Solidity's `uint176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint176(uint256 value) internal pure returns (uint176) {\n        require(value <= type(uint176).max, \"SafeCast: value doesn't fit in 176 bits\");\n        return uint176(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint168 from uint256, reverting on\n     * overflow (when the input is greater than largest uint168).\n     *\n     * Counterpart to Solidity's `uint168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint168(uint256 value) internal pure returns (uint168) {\n        require(value <= type(uint168).max, \"SafeCast: value doesn't fit in 168 bits\");\n        return uint168(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint160 from uint256, reverting on\n     * overflow (when the input is greater than largest uint160).\n     *\n     * Counterpart to Solidity's `uint160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint160(uint256 value) internal pure returns (uint160) {\n        require(value <= type(uint160).max, \"SafeCast: value doesn't fit in 160 bits\");\n        return uint160(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint152 from uint256, reverting on\n     * overflow (when the input is greater than largest uint152).\n     *\n     * Counterpart to Solidity's `uint152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint152(uint256 value) internal pure returns (uint152) {\n        require(value <= type(uint152).max, \"SafeCast: value doesn't fit in 152 bits\");\n        return uint152(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint144 from uint256, reverting on\n     * overflow (when the input is greater than largest uint144).\n     *\n     * Counterpart to Solidity's `uint144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint144(uint256 value) internal pure returns (uint144) {\n        require(value <= type(uint144).max, \"SafeCast: value doesn't fit in 144 bits\");\n        return uint144(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint136 from uint256, reverting on\n     * overflow (when the input is greater than largest uint136).\n     *\n     * Counterpart to Solidity's `uint136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint136(uint256 value) internal pure returns (uint136) {\n        require(value <= type(uint136).max, \"SafeCast: value doesn't fit in 136 bits\");\n        return uint136(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint128 from uint256, reverting on\n     * overflow (when the input is greater than largest uint128).\n     *\n     * Counterpart to Solidity's `uint128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint128(uint256 value) internal pure returns (uint128) {\n        require(value <= type(uint128).max, \"SafeCast: value doesn't fit in 128 bits\");\n        return uint128(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint120 from uint256, reverting on\n     * overflow (when the input is greater than largest uint120).\n     *\n     * Counterpart to Solidity's `uint120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint120(uint256 value) internal pure returns (uint120) {\n        require(value <= type(uint120).max, \"SafeCast: value doesn't fit in 120 bits\");\n        return uint120(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint112 from uint256, reverting on\n     * overflow (when the input is greater than largest uint112).\n     *\n     * Counterpart to Solidity's `uint112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint112(uint256 value) internal pure returns (uint112) {\n        require(value <= type(uint112).max, \"SafeCast: value doesn't fit in 112 bits\");\n        return uint112(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint104 from uint256, reverting on\n     * overflow (when the input is greater than largest uint104).\n     *\n     * Counterpart to Solidity's `uint104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint104(uint256 value) internal pure returns (uint104) {\n        require(value <= type(uint104).max, \"SafeCast: value doesn't fit in 104 bits\");\n        return uint104(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint96 from uint256, reverting on\n     * overflow (when the input is greater than largest uint96).\n     *\n     * Counterpart to Solidity's `uint96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.2._\n     */\n    function toUint96(uint256 value) internal pure returns (uint96) {\n        require(value <= type(uint96).max, \"SafeCast: value doesn't fit in 96 bits\");\n        return uint96(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint88 from uint256, reverting on\n     * overflow (when the input is greater than largest uint88).\n     *\n     * Counterpart to Solidity's `uint88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint88(uint256 value) internal pure returns (uint88) {\n        require(value <= type(uint88).max, \"SafeCast: value doesn't fit in 88 bits\");\n        return uint88(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint80 from uint256, reverting on\n     * overflow (when the input is greater than largest uint80).\n     *\n     * Counterpart to Solidity's `uint80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint80(uint256 value) internal pure returns (uint80) {\n        require(value <= type(uint80).max, \"SafeCast: value doesn't fit in 80 bits\");\n        return uint80(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint72 from uint256, reverting on\n     * overflow (when the input is greater than largest uint72).\n     *\n     * Counterpart to Solidity's `uint72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint72(uint256 value) internal pure returns (uint72) {\n        require(value <= type(uint72).max, \"SafeCast: value doesn't fit in 72 bits\");\n        return uint72(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint64 from uint256, reverting on\n     * overflow (when the input is greater than largest uint64).\n     *\n     * Counterpart to Solidity's `uint64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint64(uint256 value) internal pure returns (uint64) {\n        require(value <= type(uint64).max, \"SafeCast: value doesn't fit in 64 bits\");\n        return uint64(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint56 from uint256, reverting on\n     * overflow (when the input is greater than largest uint56).\n     *\n     * Counterpart to Solidity's `uint56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint56(uint256 value) internal pure returns (uint56) {\n        require(value <= type(uint56).max, \"SafeCast: value doesn't fit in 56 bits\");\n        return uint56(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint48 from uint256, reverting on\n     * overflow (when the input is greater than largest uint48).\n     *\n     * Counterpart to Solidity's `uint48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint48(uint256 value) internal pure returns (uint48) {\n        require(value <= type(uint48).max, \"SafeCast: value doesn't fit in 48 bits\");\n        return uint48(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint40 from uint256, reverting on\n     * overflow (when the input is greater than largest uint40).\n     *\n     * Counterpart to Solidity's `uint40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint40(uint256 value) internal pure returns (uint40) {\n        require(value <= type(uint40).max, \"SafeCast: value doesn't fit in 40 bits\");\n        return uint40(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint32 from uint256, reverting on\n     * overflow (when the input is greater than largest uint32).\n     *\n     * Counterpart to Solidity's `uint32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint32(uint256 value) internal pure returns (uint32) {\n        require(value <= type(uint32).max, \"SafeCast: value doesn't fit in 32 bits\");\n        return uint32(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint24 from uint256, reverting on\n     * overflow (when the input is greater than largest uint24).\n     *\n     * Counterpart to Solidity's `uint24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toUint24(uint256 value) internal pure returns (uint24) {\n        require(value <= type(uint24).max, \"SafeCast: value doesn't fit in 24 bits\");\n        return uint24(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint16 from uint256, reverting on\n     * overflow (when the input is greater than largest uint16).\n     *\n     * Counterpart to Solidity's `uint16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint16(uint256 value) internal pure returns (uint16) {\n        require(value <= type(uint16).max, \"SafeCast: value doesn't fit in 16 bits\");\n        return uint16(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint8 from uint256, reverting on\n     * overflow (when the input is greater than largest uint8).\n     *\n     * Counterpart to Solidity's `uint8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v2.5._\n     */\n    function toUint8(uint256 value) internal pure returns (uint8) {\n        require(value <= type(uint8).max, \"SafeCast: value doesn't fit in 8 bits\");\n        return uint8(value);\n    }\n\n    /**\n     * @dev Converts a signed int256 into an unsigned uint256.\n     *\n     * Requirements:\n     *\n     * - input must be greater than or equal to 0.\n     *\n     * _Available since v3.0._\n     */\n    function toUint256(int256 value) internal pure returns (uint256) {\n        require(value >= 0, \"SafeCast: value must be positive\");\n        return uint256(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int248 from int256, reverting on\n     * overflow (when the input is less than smallest int248 or\n     * greater than largest int248).\n     *\n     * Counterpart to Solidity's `int248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\n        downcasted = int248(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 248 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int240 from int256, reverting on\n     * overflow (when the input is less than smallest int240 or\n     * greater than largest int240).\n     *\n     * Counterpart to Solidity's `int240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\n        downcasted = int240(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 240 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int232 from int256, reverting on\n     * overflow (when the input is less than smallest int232 or\n     * greater than largest int232).\n     *\n     * Counterpart to Solidity's `int232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\n        downcasted = int232(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 232 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int224 from int256, reverting on\n     * overflow (when the input is less than smallest int224 or\n     * greater than largest int224).\n     *\n     * Counterpart to Solidity's `int224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\n        downcasted = int224(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 224 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int216 from int256, reverting on\n     * overflow (when the input is less than smallest int216 or\n     * greater than largest int216).\n     *\n     * Counterpart to Solidity's `int216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\n        downcasted = int216(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 216 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int208 from int256, reverting on\n     * overflow (when the input is less than smallest int208 or\n     * greater than largest int208).\n     *\n     * Counterpart to Solidity's `int208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\n        downcasted = int208(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 208 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int200 from int256, reverting on\n     * overflow (when the input is less than smallest int200 or\n     * greater than largest int200).\n     *\n     * Counterpart to Solidity's `int200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\n        downcasted = int200(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 200 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int192 from int256, reverting on\n     * overflow (when the input is less than smallest int192 or\n     * greater than largest int192).\n     *\n     * Counterpart to Solidity's `int192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\n        downcasted = int192(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 192 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int184 from int256, reverting on\n     * overflow (when the input is less than smallest int184 or\n     * greater than largest int184).\n     *\n     * Counterpart to Solidity's `int184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\n        downcasted = int184(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 184 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int176 from int256, reverting on\n     * overflow (when the input is less than smallest int176 or\n     * greater than largest int176).\n     *\n     * Counterpart to Solidity's `int176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\n        downcasted = int176(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 176 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int168 from int256, reverting on\n     * overflow (when the input is less than smallest int168 or\n     * greater than largest int168).\n     *\n     * Counterpart to Solidity's `int168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\n        downcasted = int168(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 168 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int160 from int256, reverting on\n     * overflow (when the input is less than smallest int160 or\n     * greater than largest int160).\n     *\n     * Counterpart to Solidity's `int160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\n        downcasted = int160(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 160 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int152 from int256, reverting on\n     * overflow (when the input is less than smallest int152 or\n     * greater than largest int152).\n     *\n     * Counterpart to Solidity's `int152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\n        downcasted = int152(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 152 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int144 from int256, reverting on\n     * overflow (when the input is less than smallest int144 or\n     * greater than largest int144).\n     *\n     * Counterpart to Solidity's `int144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\n        downcasted = int144(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 144 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int136 from int256, reverting on\n     * overflow (when the input is less than smallest int136 or\n     * greater than largest int136).\n     *\n     * Counterpart to Solidity's `int136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\n        downcasted = int136(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 136 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int128 from int256, reverting on\n     * overflow (when the input is less than smallest int128 or\n     * greater than largest int128).\n     *\n     * Counterpart to Solidity's `int128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\n        downcasted = int128(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 128 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int120 from int256, reverting on\n     * overflow (when the input is less than smallest int120 or\n     * greater than largest int120).\n     *\n     * Counterpart to Solidity's `int120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\n        downcasted = int120(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 120 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int112 from int256, reverting on\n     * overflow (when the input is less than smallest int112 or\n     * greater than largest int112).\n     *\n     * Counterpart to Solidity's `int112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\n        downcasted = int112(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 112 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int104 from int256, reverting on\n     * overflow (when the input is less than smallest int104 or\n     * greater than largest int104).\n     *\n     * Counterpart to Solidity's `int104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\n        downcasted = int104(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 104 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int96 from int256, reverting on\n     * overflow (when the input is less than smallest int96 or\n     * greater than largest int96).\n     *\n     * Counterpart to Solidity's `int96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\n        downcasted = int96(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 96 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int88 from int256, reverting on\n     * overflow (when the input is less than smallest int88 or\n     * greater than largest int88).\n     *\n     * Counterpart to Solidity's `int88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\n        downcasted = int88(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 88 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int80 from int256, reverting on\n     * overflow (when the input is less than smallest int80 or\n     * greater than largest int80).\n     *\n     * Counterpart to Solidity's `int80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\n        downcasted = int80(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 80 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int72 from int256, reverting on\n     * overflow (when the input is less than smallest int72 or\n     * greater than largest int72).\n     *\n     * Counterpart to Solidity's `int72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\n        downcasted = int72(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 72 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int64 from int256, reverting on\n     * overflow (when the input is less than smallest int64 or\n     * greater than largest int64).\n     *\n     * Counterpart to Solidity's `int64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\n        downcasted = int64(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 64 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int56 from int256, reverting on\n     * overflow (when the input is less than smallest int56 or\n     * greater than largest int56).\n     *\n     * Counterpart to Solidity's `int56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\n        downcasted = int56(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 56 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int48 from int256, reverting on\n     * overflow (when the input is less than smallest int48 or\n     * greater than largest int48).\n     *\n     * Counterpart to Solidity's `int48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\n        downcasted = int48(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 48 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int40 from int256, reverting on\n     * overflow (when the input is less than smallest int40 or\n     * greater than largest int40).\n     *\n     * Counterpart to Solidity's `int40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\n        downcasted = int40(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 40 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int32 from int256, reverting on\n     * overflow (when the input is less than smallest int32 or\n     * greater than largest int32).\n     *\n     * Counterpart to Solidity's `int32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\n        downcasted = int32(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 32 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int24 from int256, reverting on\n     * overflow (when the input is less than smallest int24 or\n     * greater than largest int24).\n     *\n     * Counterpart to Solidity's `int24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     *\n     * _Available since v4.7._\n     */\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\n        downcasted = int24(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 24 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int16 from int256, reverting on\n     * overflow (when the input is less than smallest int16 or\n     * greater than largest int16).\n     *\n     * Counterpart to Solidity's `int16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\n        downcasted = int16(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 16 bits\");\n    }\n\n    /**\n     * @dev Returns the downcasted int8 from int256, reverting on\n     * overflow (when the input is less than smallest int8 or\n     * greater than largest int8).\n     *\n     * Counterpart to Solidity's `int8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     *\n     * _Available since v3.1._\n     */\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\n        downcasted = int8(value);\n        require(downcasted == value, \"SafeCast: value doesn't fit in 8 bits\");\n    }\n\n    /**\n     * @dev Converts an unsigned uint256 into a signed int256.\n     *\n     * Requirements:\n     *\n     * - input must be less than or equal to maxInt256.\n     *\n     * _Available since v3.0._\n     */\n    function toInt256(uint256 value) internal pure returns (int256) {\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n        require(value <= uint256(type(int256).max), \"SafeCast: value doesn't fit in an int256\");\n        return int256(value);\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = Math.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, Math.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/structs/EnumerableSet.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n *     // Add the library methods\n *     using EnumerableSet for EnumerableSet.AddressSet;\n *\n *     // Declare a set state variable\n *     EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n * unusable.\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n * array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n    // To implement this library for multiple types with as little code\n    // repetition as possible, we write it in terms of a generic Set type with\n    // bytes32 values.\n    // The Set implementation uses private functions, and user-facing\n    // implementations (such as AddressSet) are just wrappers around the\n    // underlying Set.\n    // This means that we can only create new EnumerableSets for types that fit\n    // in bytes32.\n\n    struct Set {\n        // Storage of set values\n        bytes32[] _values;\n        // Position of the value in the `values` array, plus 1 because index 0\n        // means a value is not in the set.\n        mapping(bytes32 => uint256) _indexes;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function _add(Set storage set, bytes32 value) private returns (bool) {\n        if (!_contains(set, value)) {\n            set._values.push(value);\n            // The value is stored at length-1, but we add 1 to all indexes\n            // and use 0 as a sentinel value\n            set._indexes[value] = set._values.length;\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function _remove(Set storage set, bytes32 value) private returns (bool) {\n        // We read and store the value's index to prevent multiple reads from the same storage slot\n        uint256 valueIndex = set._indexes[value];\n\n        if (valueIndex != 0) {\n            // Equivalent to contains(set, value)\n            // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n            // the array, and then remove the last element (sometimes called as 'swap and pop').\n            // This modifies the order of the array, as noted in {at}.\n\n            uint256 toDeleteIndex = valueIndex - 1;\n            uint256 lastIndex = set._values.length - 1;\n\n            if (lastIndex != toDeleteIndex) {\n                bytes32 lastValue = set._values[lastIndex];\n\n                // Move the last value to the index where the value to delete is\n                set._values[toDeleteIndex] = lastValue;\n                // Update the index for the moved value\n                set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex\n            }\n\n            // Delete the slot where the moved value was stored\n            set._values.pop();\n\n            // Delete the index for the deleted slot\n            delete set._indexes[value];\n\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function _contains(Set storage set, bytes32 value) private view returns (bool) {\n        return set._indexes[value] != 0;\n    }\n\n    /**\n     * @dev Returns the number of values on the set. O(1).\n     */\n    function _length(Set storage set) private view returns (uint256) {\n        return set._values.length;\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function _at(Set storage set, uint256 index) private view returns (bytes32) {\n        return set._values[index];\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function _values(Set storage set) private view returns (bytes32[] memory) {\n        return set._values;\n    }\n\n    // Bytes32Set\n\n    struct Bytes32Set {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _add(set._inner, value);\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _remove(set._inner, value);\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n        return _contains(set._inner, value);\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(Bytes32Set storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n        return _at(set._inner, index);\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        bytes32[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n\n    // AddressSet\n\n    struct AddressSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(AddressSet storage set, address value) internal returns (bool) {\n        return _add(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(AddressSet storage set, address value) internal returns (bool) {\n        return _remove(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(AddressSet storage set, address value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(AddressSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(AddressSet storage set, uint256 index) internal view returns (address) {\n        return address(uint160(uint256(_at(set._inner, index))));\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(AddressSet storage set) internal view returns (address[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        address[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n\n    // UintSet\n\n    struct UintSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(UintSet storage set, uint256 value) internal returns (bool) {\n        return _add(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(UintSet storage set, uint256 value) internal returns (bool) {\n        return _remove(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(UintSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n    /**\n     * @dev Returns the value stored at position `index` in the set. O(1).\n     *\n     * Note that there are no guarantees on the ordering of values inside the\n     * array, and it may change when more values are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n        return uint256(_at(set._inner, index));\n    }\n\n    /**\n     * @dev Return the entire set in an array\n     *\n     * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n     * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n     * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n     * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n     */\n    function values(UintSet storage set) internal view returns (uint256[] memory) {\n        bytes32[] memory store = _values(set._inner);\n        uint256[] memory result;\n\n        /// @solidity memory-safe-assembly\n        assembly {\n            result := store\n        }\n\n        return result;\n    }\n}\n"},"@rari-capital/solmate/src/tokens/ERC20.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity >=0.8.0;\n\n/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.\n/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\n/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.\nabstract contract ERC20 {\n    /*//////////////////////////////////////////////////////////////\n                                 EVENTS\n    //////////////////////////////////////////////////////////////*/\n\n    event Transfer(address indexed from, address indexed to, uint256 amount);\n\n    event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n    /*//////////////////////////////////////////////////////////////\n                            METADATA STORAGE\n    //////////////////////////////////////////////////////////////*/\n\n    string public name;\n\n    string public symbol;\n\n    uint8 public immutable decimals;\n\n    /*//////////////////////////////////////////////////////////////\n                              ERC20 STORAGE\n    //////////////////////////////////////////////////////////////*/\n\n    uint256 public totalSupply;\n\n    mapping(address => uint256) public balanceOf;\n\n    mapping(address => mapping(address => uint256)) public allowance;\n\n    /*//////////////////////////////////////////////////////////////\n                            EIP-2612 STORAGE\n    //////////////////////////////////////////////////////////////*/\n\n    uint256 internal immutable INITIAL_CHAIN_ID;\n\n    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;\n\n    mapping(address => uint256) public nonces;\n\n    /*//////////////////////////////////////////////////////////////\n                               CONSTRUCTOR\n    //////////////////////////////////////////////////////////////*/\n\n    constructor(\n        string memory _name,\n        string memory _symbol,\n        uint8 _decimals\n    ) {\n        name = _name;\n        symbol = _symbol;\n        decimals = _decimals;\n\n        INITIAL_CHAIN_ID = block.chainid;\n        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();\n    }\n\n    /*//////////////////////////////////////////////////////////////\n                               ERC20 LOGIC\n    //////////////////////////////////////////////////////////////*/\n\n    function approve(address spender, uint256 amount) public virtual returns (bool) {\n        allowance[msg.sender][spender] = amount;\n\n        emit Approval(msg.sender, spender, amount);\n\n        return true;\n    }\n\n    function transfer(address to, uint256 amount) public virtual returns (bool) {\n        balanceOf[msg.sender] -= amount;\n\n        // Cannot overflow because the sum of all user\n        // balances can't exceed the max uint256 value.\n        unchecked {\n            balanceOf[to] += amount;\n        }\n\n        emit Transfer(msg.sender, to, amount);\n\n        return true;\n    }\n\n    function transferFrom(\n        address from,\n        address to,\n        uint256 amount\n    ) public virtual returns (bool) {\n        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.\n\n        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;\n\n        balanceOf[from] -= amount;\n\n        // Cannot overflow because the sum of all user\n        // balances can't exceed the max uint256 value.\n        unchecked {\n            balanceOf[to] += amount;\n        }\n\n        emit Transfer(from, to, amount);\n\n        return true;\n    }\n\n    /*//////////////////////////////////////////////////////////////\n                             EIP-2612 LOGIC\n    //////////////////////////////////////////////////////////////*/\n\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual {\n        require(deadline >= block.timestamp, \"PERMIT_DEADLINE_EXPIRED\");\n\n        // Unchecked because the only math done is incrementing\n        // the owner's nonce which cannot realistically overflow.\n        unchecked {\n            address recoveredAddress = ecrecover(\n                keccak256(\n                    abi.encodePacked(\n                        \"\\x19\\x01\",\n                        DOMAIN_SEPARATOR(),\n                        keccak256(\n                            abi.encode(\n                                keccak256(\n                                    \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\"\n                                ),\n                                owner,\n                                spender,\n                                value,\n                                nonces[owner]++,\n                                deadline\n                            )\n                        )\n                    )\n                ),\n                v,\n                r,\n                s\n            );\n\n            require(recoveredAddress != address(0) && recoveredAddress == owner, \"INVALID_SIGNER\");\n\n            allowance[recoveredAddress][spender] = value;\n        }\n\n        emit Approval(owner, spender, value);\n    }\n\n    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {\n        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();\n    }\n\n    function computeDomainSeparator() internal view virtual returns (bytes32) {\n        return\n            keccak256(\n                abi.encode(\n                    keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"),\n                    keccak256(bytes(name)),\n                    keccak256(\"1\"),\n                    block.chainid,\n                    address(this)\n                )\n            );\n    }\n\n    /*//////////////////////////////////////////////////////////////\n                        INTERNAL MINT/BURN LOGIC\n    //////////////////////////////////////////////////////////////*/\n\n    function _mint(address to, uint256 amount) internal virtual {\n        totalSupply += amount;\n\n        // Cannot overflow because the sum of all user\n        // balances can't exceed the max uint256 value.\n        unchecked {\n            balanceOf[to] += amount;\n        }\n\n        emit Transfer(address(0), to, amount);\n    }\n\n    function _burn(address from, uint256 amount) internal virtual {\n        balanceOf[from] -= amount;\n\n        // Cannot underflow because a user's balance\n        // will never be larger than the total supply.\n        unchecked {\n            totalSupply -= amount;\n        }\n\n        emit Transfer(from, address(0), amount);\n    }\n}\n"},"@rari-capital/solmate/src/utils/SafeTransferLib.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity >=0.8.0;\n\nimport {ERC20} from \"../tokens/ERC20.sol\";\n\n/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)\n/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.\n/// @dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller.\nlibrary SafeTransferLib {\n    /*//////////////////////////////////////////////////////////////\n                             ETH OPERATIONS\n    //////////////////////////////////////////////////////////////*/\n\n    function safeTransferETH(address to, uint256 amount) internal {\n        bool success;\n\n        assembly {\n            // Transfer the ETH and store if it succeeded or not.\n            success := call(gas(), to, amount, 0, 0, 0, 0)\n        }\n\n        require(success, \"ETH_TRANSFER_FAILED\");\n    }\n\n    /*//////////////////////////////////////////////////////////////\n                            ERC20 OPERATIONS\n    //////////////////////////////////////////////////////////////*/\n\n    function safeTransferFrom(\n        ERC20 token,\n        address from,\n        address to,\n        uint256 amount\n    ) internal {\n        bool success;\n\n        assembly {\n            // Get a pointer to some free memory.\n            let freeMemoryPointer := mload(0x40)\n\n            // Write the abi-encoded calldata into memory, beginning with the function selector.\n            mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000)\n            mstore(add(freeMemoryPointer, 4), from) // Append the \"from\" argument.\n            mstore(add(freeMemoryPointer, 36), to) // Append the \"to\" argument.\n            mstore(add(freeMemoryPointer, 68), amount) // Append the \"amount\" argument.\n\n            success := and(\n                // Set success to whether the call reverted, if not we check it either\n                // returned exactly 1 (can't just be non-zero data), or had no return data.\n                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),\n                // We use 100 because the length of our calldata totals up like so: 4 + 32 * 3.\n                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.\n                // Counterintuitively, this call must be positioned second to the or() call in the\n                // surrounding and() call or else returndatasize() will be zero during the computation.\n                call(gas(), token, 0, freeMemoryPointer, 100, 0, 32)\n            )\n        }\n\n        require(success, \"TRANSFER_FROM_FAILED\");\n    }\n\n    function safeTransfer(\n        ERC20 token,\n        address to,\n        uint256 amount\n    ) internal {\n        bool success;\n\n        assembly {\n            // Get a pointer to some free memory.\n            let freeMemoryPointer := mload(0x40)\n\n            // Write the abi-encoded calldata into memory, beginning with the function selector.\n            mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000)\n            mstore(add(freeMemoryPointer, 4), to) // Append the \"to\" argument.\n            mstore(add(freeMemoryPointer, 36), amount) // Append the \"amount\" argument.\n\n            success := and(\n                // Set success to whether the call reverted, if not we check it either\n                // returned exactly 1 (can't just be non-zero data), or had no return data.\n                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),\n                // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.\n                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.\n                // Counterintuitively, this call must be positioned second to the or() call in the\n                // surrounding and() call or else returndatasize() will be zero during the computation.\n                call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)\n            )\n        }\n\n        require(success, \"TRANSFER_FAILED\");\n    }\n\n    function safeApprove(\n        ERC20 token,\n        address to,\n        uint256 amount\n    ) internal {\n        bool success;\n\n        assembly {\n            // Get a pointer to some free memory.\n            let freeMemoryPointer := mload(0x40)\n\n            // Write the abi-encoded calldata into memory, beginning with the function selector.\n            mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000)\n            mstore(add(freeMemoryPointer, 4), to) // Append the \"to\" argument.\n            mstore(add(freeMemoryPointer, 36), amount) // Append the \"amount\" argument.\n\n            success := and(\n                // Set success to whether the call reverted, if not we check it either\n                // returned exactly 1 (can't just be non-zero data), or had no return data.\n                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),\n                // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.\n                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.\n                // Counterintuitively, this call must be positioned second to the or() call in the\n                // surrounding and() call or else returndatasize() will be zero during the computation.\n                call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)\n            )\n        }\n\n        require(success, \"APPROVE_FAILED\");\n    }\n}\n"},"contracts/governance/GovernorPango.sol":{"content":"pragma solidity =0.8.15;\r\n\r\nimport \"./interfaces/IPangolinStakingPositions.sol\";\r\nimport \"./interfaces/ITimelock.sol\";\r\n\r\n// SPDX-License-Identifier: MIT\r\n/*\r\n * @notice GovernorPango is an adaptation of GovernorAlpha intended to work with PangolinStakingPositions NFTs\r\n *         on an evm compatible blockchain. The proposal lifecycle is the same as GovernorAlpha but additional\r\n *         restrictions are imposed:\r\n *\r\n *         1) Proposers must hold an NFT that has not been modified for the duration of 1+ proposal lifecycle\r\n *         2) The voting power of an NFT used for proposing will be invalid for the duration of one proposal lifecycle\r\n *         3) Voters must own an NFT that has not been modified after the voting period starts\r\n *         4) An NFT cannot be used for voting on the same proposal multiple times, regardless of ownership\r\n *         5) The proposer is always allowed to cancel the proposal before voting begins\r\n */\r\ncontract GovernorPango {\r\n    /// @notice The delay before voting on a proposal may take place, once proposed\r\n    /// @dev Can be changed via vote within the range: [1 days, 7 days]\r\n    uint40 public VOTING_DELAY = 1 days;\r\n\r\n    /// @notice The duration of voting on a proposal, in seconds\r\n    /// @dev Can be changed via vote within the range: [3 days, 30 days]\r\n    uint40 public VOTING_PERIOD = 3 days;\r\n\r\n    /// @notice The number of votes required in order for a voter to become a proposer\r\n    /// @dev Can be changed via vote within the range: [PROPOSAL_THRESHOLD_MIN, PROPOSAL_THRESHOLD_MAX]\r\n    uint96 public PROPOSAL_THRESHOLD;\r\n    uint96 public immutable PROPOSAL_THRESHOLD_MIN;\r\n    uint96 public immutable PROPOSAL_THRESHOLD_MAX;\r\n\r\n    /// @notice Associated Timelock contract\r\n    ITimelock public immutable TIMELOCK;\r\n\r\n    /// @notice Associated PangolinStakingPositions contract\r\n    IPangolinStakingPositions public immutable PANGOLIN_STAKING_POSITIONS;\r\n\r\n    /// @notice The total number of proposals\r\n    uint256 public proposalCount;\r\n\r\n    /// @notice The record of all proposals\r\n    /// ProposalId => ProposalStruct\r\n    mapping(uint64 => Proposal) public proposals;\r\n\r\n    /// @notice The record of all proposal actions\r\n    /// ProposalId => ProposalActionStruct\r\n    mapping(uint64 => ProposalAction) private proposalActions;\r\n\r\n    /// @notice The record of all receipts for a given proposal id\r\n    /// @notice ProposalId => NftId => ReceiptStruct\r\n    mapping(uint64 => mapping(uint256 => Receipt)) public receipts;\r\n\r\n    /// @notice Timestamp when a NFT can be used to propose again\r\n    /// @dev State growth rate is limited by PROPOSAL_THRESHOLD and the lifecycle time of a proposal.\r\n    /// NftId => TimeoutTime\r\n    mapping(uint256 => uint40) public proposalTimeout;\r\n\r\n    /// @notice Possible states that a proposal may be in\r\n    enum ProposalState {\r\n        Pending,\r\n        Active,\r\n        Canceled,\r\n        Defeated,\r\n        Succeeded,\r\n        Queued,\r\n        Expired,\r\n        Executed\r\n    }\r\n\r\n    struct Proposal {\r\n        /// @notice The NFT which provided the voting weight for this proposal\r\n        uint256 proposer;\r\n\r\n        /// @notice Current number of votes in favor of this proposal\r\n        uint96 forVotes;\r\n\r\n        /// @notice Current number of votes in opposition to this proposal\r\n        uint96 againstVotes;\r\n\r\n        /// @notice The timestamp at which voting begins: holders must delegate their votes prior to this time\r\n        uint40 startTime;\r\n\r\n        /// @notice The timestamp at which voting ends: votes must be cast prior to this time\r\n        uint40 endTime;\r\n\r\n        /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\r\n        uint40 eta;\r\n\r\n        /// @notice Flag marking whether the proposal has been executed\r\n        bool executed;\r\n\r\n        /// @notice Flag marking whether the proposal has been canceled\r\n        bool canceled;\r\n    }\r\n\r\n    struct ProposalAction {\r\n        /// @notice the ordered list of target addresses for calls to be made\r\n        address[] targets;\r\n\r\n        /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\r\n        uint256[] values;\r\n\r\n        /// @notice The ordered list of function signatures to be called\r\n        string[] signatures;\r\n\r\n        /// @notice The ordered list of calldata to be passed to each call\r\n        bytes[] calldatas;\r\n    }\r\n\r\n    struct Receipt {\r\n        /// @notice Whether or not a vote has been cast\r\n        bool hasVoted;\r\n\r\n        /// @notice Whether or not the voter supports the proposal\r\n        bool support;\r\n\r\n        /// @notice The number of votes the voter had, which were cast\r\n        uint96 votes;\r\n    }\r\n\r\n    event ProposalCreated(uint64 proposalId, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint40 startTime, uint40 endTime, string description);\r\n    event ProposalCanceled(uint64 proposalId);\r\n    event VoteCast(uint64 proposalId, bool support, uint96 votes);\r\n    event ProposalQueued(uint64 proposalId, uint40 eta);\r\n    event ProposalExecuted(uint64 proposalId);\r\n    event ProposalThresholdChanged(uint96 newProposalThreshold);\r\n    event VotingDelayChanged(uint40 newVotingDelay);\r\n    event VotingPeriodChanged(uint40 newVotingPeriod);\r\n\r\n    error InvalidAction();\r\n    error InsufficientVotes();\r\n    error IllegalVote();\r\n    error InvalidNFT();\r\n    error InvalidOwner();\r\n    error InvalidState();\r\n\r\n    constructor(\r\n        address _TIMELOCK,\r\n        address _PANGOLIN_STAKING_POSITIONS,\r\n        uint96 _PROPOSAL_THRESHOLD,\r\n        uint96 _PROPOSAL_THRESHOLD_MIN,\r\n        uint96 _PROPOSAL_THRESHOLD_MAX\r\n    ) {\r\n        if (_PROPOSAL_THRESHOLD_MIN > _PROPOSAL_THRESHOLD_MAX) revert InvalidAction();\r\n        if (_PROPOSAL_THRESHOLD < _PROPOSAL_THRESHOLD_MIN) revert InvalidAction();\r\n        if (_PROPOSAL_THRESHOLD > _PROPOSAL_THRESHOLD_MAX) revert InvalidAction();\r\n        TIMELOCK = ITimelock(_TIMELOCK);\r\n        PANGOLIN_STAKING_POSITIONS = IPangolinStakingPositions(_PANGOLIN_STAKING_POSITIONS);\r\n        PROPOSAL_THRESHOLD = _PROPOSAL_THRESHOLD;\r\n        PROPOSAL_THRESHOLD_MIN = _PROPOSAL_THRESHOLD_MIN;\r\n        PROPOSAL_THRESHOLD_MAX = _PROPOSAL_THRESHOLD_MAX;\r\n    }\r\n\r\n    /*\r\n     * @dev Proposers must own an NFT with voting power of at least PROPOSAL_THRESHOLD. This NFT must not have been\r\n     *      updated for a duration of 1+ proposal lifecycle before proposing.\r\n     */\r\n    function propose(\r\n        address[] memory targets,\r\n        uint256[] memory values,\r\n        string[] memory signatures,\r\n        bytes[] memory calldatas,\r\n        string memory description,\r\n        uint256 nftId\r\n    ) external returns (uint64 proposalId) {\r\n        if (targets.length != values.length || targets.length != signatures.length || targets.length != calldatas.length) revert InvalidAction();\r\n        if (targets.length > 10) revert InvalidAction();\r\n\r\n        _verifyOwnership(nftId);\r\n\r\n        uint40 startTime = uint40(block.timestamp) + VOTING_DELAY;\r\n        uint40 endTime = startTime + VOTING_PERIOD;\r\n        uint40 proposalLifeCycleTime = VOTING_DELAY + VOTING_PERIOD + uint40(TIMELOCK.delay()); // Range: [4 days, 67 days]\r\n\r\n        // Ensure enough voting power exists and has not been altered recently\r\n        // By using a timestamp predated by the lifecycle of a proposal, spam can be prevented from the same underlying voting power\r\n        if (_getNftValueAt(nftId, uint40(block.timestamp) - proposalLifeCycleTime) < PROPOSAL_THRESHOLD) revert InsufficientVotes();\r\n\r\n        // Prevent usage of NFT voting weight to concurrently create proposals\r\n        if (block.timestamp < proposalTimeout[nftId]) revert InsufficientVotes();\r\n        proposalTimeout[nftId] = uint40(block.timestamp) + proposalLifeCycleTime;\r\n\r\n        proposalId = uint64(++proposalCount);\r\n\r\n        Proposal memory newProposal;\r\n        newProposal.proposer = nftId;\r\n        newProposal.startTime = startTime;\r\n        newProposal.endTime = endTime;\r\n\r\n        proposals[proposalId] = newProposal;\r\n\r\n        ProposalAction memory newProposalAction;\r\n        newProposalAction.targets = targets;\r\n        newProposalAction.values = values;\r\n        newProposalAction.signatures = signatures;\r\n        newProposalAction.calldatas = calldatas;\r\n\r\n        proposalActions[proposalId] = newProposalAction;\r\n\r\n        emit ProposalCreated(proposalId, targets, values, signatures, calldatas, startTime, endTime, description);\r\n    }\r\n\r\n    /*\r\n     * @dev Non-executed proposals can be canceled when the proposer fails to maintain sufficient voting power\r\n     *      Proposals can also be canceled by the owner of the proposal's proposing NFT before voting begins\r\n     */\r\n    function cancel(uint64 proposalId) external {\r\n        Proposal storage proposal = proposals[proposalId];\r\n        ProposalState proposalState = _state(proposal);\r\n        if (proposalState == ProposalState.Executed || proposalState == ProposalState.Expired) revert InvalidState();\r\n\r\n        // Pending proposals maintaining sufficient voting power can only be canceled by the proposer NFT owner\r\n        if (_getNftValueAt(proposal.proposer, uint40(block.timestamp)) >= PROPOSAL_THRESHOLD) {\r\n            if (proposalState == ProposalState.Pending) {\r\n                _verifyOwnership(proposal.proposer);\r\n            } else {\r\n                revert InvalidState();\r\n            }\r\n        }\r\n\r\n        proposal.canceled = true;\r\n\r\n        emit ProposalCanceled(proposalId);\r\n    }\r\n\r\n    function castVote(uint64 proposalId, bool support, uint256 nftId) external {\r\n        Proposal storage proposal = proposals[proposalId];\r\n        if (_state(proposal) != ProposalState.Active) revert InvalidState();\r\n\r\n        _verifyOwnership(nftId);\r\n\r\n        // Verify NFT was not updated after voting began\r\n        uint96 votes = _getNftValueAt(nftId, proposal.startTime);\r\n        if (votes == 0) revert InsufficientVotes();\r\n\r\n        // Verify NFT can only vote once\r\n        Receipt storage receipt = receipts[proposalId][nftId];\r\n        if (receipt.hasVoted) revert IllegalVote();\r\n\r\n        // Cast vote\r\n        receipt.hasVoted = true;\r\n        receipt.support = support;\r\n        receipt.votes = votes;\r\n\r\n        if (support) {\r\n            proposal.forVotes += votes;\r\n        } else {\r\n            proposal.againstVotes += votes;\r\n        }\r\n\r\n        emit VoteCast(proposalId, support, votes);\r\n    }\r\n\r\n    function queue(uint64 proposalId) external {\r\n        Proposal storage proposal = proposals[proposalId];\r\n        if (_state(proposal) != ProposalState.Succeeded) revert InvalidState();\r\n\r\n        ProposalAction storage action = proposalActions[proposalId];\r\n\r\n        uint40 eta = uint40(block.timestamp + TIMELOCK.delay());\r\n\r\n        uint256 length = action.targets.length;\r\n        for (uint256 i; i < length;) {\r\n            _queueOrRevert(action.targets[i], action.values[i], action.signatures[i], action.calldatas[i], eta);\r\n            unchecked {++i;}\r\n        }\r\n\r\n        proposal.eta = eta;\r\n\r\n        emit ProposalQueued(proposalId, eta);\r\n    }\r\n\r\n    function _queueOrRevert(address target, uint256 value, string memory signature, bytes memory data, uint40 eta) private {\r\n        if (TIMELOCK.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta)))) revert InvalidState();\r\n        TIMELOCK.queueTransaction(target, value, signature, data, eta);\r\n    }\r\n\r\n    /*\r\n     * @notice Execute a proposal in the Queued state\r\n     * @notice Proposals in a valid executable state can be executed by anyone\r\n     */\r\n    function execute(uint64 proposalId) external payable {\r\n        Proposal storage proposal = proposals[proposalId];\r\n        if (_state(proposal) != ProposalState.Queued) revert InvalidState();\r\n\r\n        ProposalAction storage action = proposalActions[proposalId];\r\n\r\n        uint256 length = action.targets.length;\r\n        for (uint256 i; i < length;) {\r\n            TIMELOCK.executeTransaction{value: action.values[i]}(action.targets[i], action.values[i], action.signatures[i], action.calldatas[i], proposal.eta);\r\n            unchecked {++i;}\r\n        }\r\n\r\n        proposal.executed = true;\r\n\r\n        emit ProposalExecuted(proposalId);\r\n    }\r\n\r\n    /*\r\n     * @notice UX supporting method for ease of querying proposal state\r\n     */\r\n    function state(uint64 proposalId) external view returns (ProposalState) {\r\n        return _state(proposals[proposalId]);\r\n    }\r\n\r\n    /*\r\n     * @notice Business logic for determining the state of a proposal\r\n     */\r\n    function _state(Proposal memory proposal) private view returns (ProposalState) {\r\n        if (proposal.canceled) {\r\n            return ProposalState.Canceled;\r\n        } else if (block.timestamp <= proposal.startTime) {\r\n            return ProposalState.Pending;\r\n        } else if (block.timestamp <= proposal.endTime) {\r\n            return ProposalState.Active;\r\n        } else if (proposal.forVotes <= proposal.againstVotes) {\r\n            return ProposalState.Defeated;\r\n        } else if (proposal.eta == 0) {\r\n            return ProposalState.Succeeded;\r\n        } else if (proposal.executed) {\r\n            return ProposalState.Executed;\r\n        } else if (block.timestamp >= proposal.eta + TIMELOCK.GRACE_PERIOD()) {\r\n            return ProposalState.Expired;\r\n        } else {\r\n            return ProposalState.Queued;\r\n        }\r\n    }\r\n\r\n    /*\r\n     * @notice Helper method to expose proposal execution data.\r\n     */\r\n    function getActions(uint64 proposalId) external view returns (ProposalAction memory) {\r\n        return proposalActions[proposalId];\r\n    }\r\n\r\n    /*\r\n     * @notice Ensure the NFT is owned by `msg.sender` and revert when not satisfied.\r\n     */\r\n    function _verifyOwnership(uint256 nftId) private view {\r\n        if (PANGOLIN_STAKING_POSITIONS.ownerOf(nftId) != msg.sender) revert InvalidOwner();\r\n    }\r\n\r\n    /*\r\n     * @dev This is how voting power is calculated from the NFT.\r\n     *      The NFT must not have been modified after `timestamp` for the voting power to be valid.\r\n     */\r\n    function _getNftValueAt(uint256 nftId, uint40 timestamp) private view returns (uint96) {\r\n        if (nftId <= 0) revert InvalidNFT();\r\n        IPangolinStakingPositions.Position memory position = PANGOLIN_STAKING_POSITIONS.positions(nftId);\r\n        if (position.lastUpdate < timestamp) {\r\n            return position.valueVariables.balance;\r\n        } else {\r\n            return 0;\r\n        }\r\n    }\r\n\r\n    function __acceptAdmin() external {\r\n        TIMELOCK.acceptAdmin();\r\n    }\r\n\r\n    function __setProposalThreshold(uint96 newProposalThreshold) external {\r\n        if (msg.sender != address(TIMELOCK)) revert InvalidAction();\r\n        if (newProposalThreshold < PROPOSAL_THRESHOLD_MIN) revert InvalidAction();\r\n        if (newProposalThreshold > PROPOSAL_THRESHOLD_MAX) revert InvalidAction();\r\n        PROPOSAL_THRESHOLD = newProposalThreshold;\r\n        emit ProposalThresholdChanged(newProposalThreshold);\r\n    }\r\n\r\n    function __setVotingDelay(uint40 newVotingDelay) external {\r\n        if (msg.sender != address(TIMELOCK)) revert InvalidAction();\r\n        if (newVotingDelay < 1 days) revert InvalidAction();\r\n        if (newVotingDelay > 7 days) revert InvalidAction();\r\n        VOTING_DELAY = newVotingDelay;\r\n        emit VotingDelayChanged(newVotingDelay);\r\n    }\r\n\r\n    function __setVotingPeriod(uint40 newVotingPeriod) external {\r\n        if (msg.sender != address(TIMELOCK)) revert InvalidAction();\r\n        if (newVotingPeriod < 3 days) revert InvalidAction();\r\n        if (newVotingPeriod > 30 days) revert InvalidAction();\r\n        VOTING_PERIOD = newVotingPeriod;\r\n        emit VotingPeriodChanged(newVotingPeriod);\r\n    }\r\n}\r\n"},"contracts/governance/interfaces/IPangolinStakingPositions.sol":{"content":"pragma solidity >=0.8.0;\r\n\r\n// SPDX-License-Identifier: MIT\r\ninterface IPangolinStakingPositions {\r\n    struct ValueVariables {\r\n        uint96 balance;\r\n        uint160 sumOfEntryTimes;\r\n    }\r\n\r\n    struct RewardSummations {\r\n        uint256 idealPosition;\r\n        uint256 rewardPerValue;\r\n    }\r\n\r\n    struct Position {\r\n        ValueVariables valueVariables;\r\n        RewardSummations rewardSummationsPaid;\r\n        uint160 previousValues;\r\n        uint48 lastUpdate;\r\n        uint48 lastDevaluation;\r\n    }\r\n\r\n    function positions(uint256 positionId) external view returns (Position memory);\r\n    function ownerOf(uint256 tokenId) external view returns (address owner);\r\n}\r\n"},"contracts/governance/interfaces/ITimelock.sol":{"content":"pragma solidity >=0.8.0;\r\n\r\n// SPDX-License-Identifier: MIT\r\ninterface ITimelock {\r\n    function GRACE_PERIOD() external view returns (uint256);\r\n    function delay() external view returns (uint256);\r\n    function queuedTransactions(bytes32 hash) external view returns (bool);\r\n    function setDelay(uint256 delay) external;\r\n    function acceptAdmin() external;\r\n    function setPendingAdmin(address pendingAdmin_) external;\r\n    function queueTransaction(address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta) external returns (bytes32);\r\n    function cancelTransaction(address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta) external;\r\n    function executeTransaction(address target, uint256 value, string calldata signature, bytes calldata data, uint256 eta) external payable returns (bytes memory);\r\n}\r\n"},"contracts/pangolin-token/Merkledrop.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\r\nimport \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ncontract Merkledrop is Ownable, Pausable {\r\n    mapping(address => uint96) public claimedAmounts;\r\n    IERC20 public immutable PNG;\r\n    bytes32 public merkleRoot;\r\n\r\n    event Claimed(address account, uint96 amount);\r\n    event MerkleRootSet(bytes32 newMerkleRoot);\r\n\r\n    constructor(address airdropToken, address initialOwner) {\r\n        require(airdropToken.code.length != 0, \"invalid token address\");\r\n        require(initialOwner != address(0), \"invalid initial owner\");\r\n        _transferOwnership(initialOwner);\r\n        PNG = IERC20(airdropToken);\r\n        _pause();\r\n    }\r\n\r\n    function claim(uint96 amount, bytes32[] calldata merkleProof) external whenNotPaused {\r\n        uint96 previouslyClaimed = claimedAmounts[msg.sender];\r\n        require(previouslyClaimed < amount, \"nothing to claim\");\r\n        bytes32 node = bytes32(abi.encodePacked(msg.sender, amount));\r\n        require(MerkleProof.verify(merkleProof, merkleRoot, node), \"invalid proof\");\r\n        claimedAmounts[msg.sender] = amount;\r\n        unchecked {\r\n            amount -= previouslyClaimed;\r\n        }\r\n        require(PNG.transfer(msg.sender, amount), \"transfer failed\");\r\n        emit Claimed(msg.sender, amount);\r\n    }\r\n\r\n    function setMerkleRoot(bytes32 newMerkleRoot) external whenPaused onlyOwner {\r\n        merkleRoot = newMerkleRoot;\r\n        emit MerkleRootSet(newMerkleRoot);\r\n    }\r\n\r\n    function recover(IERC20 token, uint256 amount) external whenPaused onlyOwner {\r\n        require(token.transfer(msg.sender, amount), \"transfer failed\");\r\n    }\r\n\r\n    function pause() external onlyOwner {\r\n        _pause();\r\n    }\r\n\r\n    function unpause() external onlyOwner {\r\n        require(merkleRoot != 0x00, \"merkle root not set\");\r\n        _unpause();\r\n    }\r\n}\r\n"},"contracts/pangolin-token/MerkledropToStaking.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\r\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\r\nimport \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ninterface IPangolinStakingPositions is IERC721 {\r\n    function mint(uint256 amount) external returns (uint256 positionId);\r\n}\r\n\r\ncontract MerkledropToStaking is Ownable, Pausable {\r\n    mapping(address => uint96) public claimedAmounts;\r\n    IERC20 public immutable PNG;\r\n    IPangolinStakingPositions public immutable SAR;\r\n    bytes32 public merkleRoot;\r\n\r\n    event Claimed(address indexed from, address indexed to, uint96 indexed amount);\r\n    event MerkleRootSet(bytes32 indexed newMerkleRoot);\r\n\r\n    constructor(address airdropToken, address stakingPositions, address initialOwner) {\r\n        require(airdropToken.code.length != 0, \"invalid token address\");\r\n        require(stakingPositions.code.length != 0, \"invalid staking address\");\r\n        require(initialOwner != address(0), \"invalid initial owner\");\r\n        _transferOwnership(initialOwner);\r\n        IERC20(airdropToken).approve(stakingPositions, type(uint256).max);\r\n        PNG = IERC20(airdropToken);\r\n        SAR = IPangolinStakingPositions(stakingPositions);\r\n        _pause();\r\n    }\r\n\r\n    function claim(uint96 amount, bytes32[] calldata merkleProof) external {\r\n        claimTo(msg.sender, amount, merkleProof);\r\n    }\r\n\r\n    function claimTo(\r\n        address to,\r\n        uint96 amount,\r\n        bytes32[] calldata merkleProof\r\n    ) public whenNotPaused {\r\n        uint96 previouslyClaimed = claimedAmounts[msg.sender];\r\n        require(previouslyClaimed < amount, \"nothing to claim\");\r\n        bytes32 node = bytes32(abi.encodePacked(msg.sender, amount));\r\n        require(MerkleProof.verify(merkleProof, merkleRoot, node), \"invalid proof\");\r\n        claimedAmounts[msg.sender] = amount;\r\n        unchecked {\r\n            amount -= previouslyClaimed;\r\n        }\r\n        uint256 positionId = SAR.mint(amount);\r\n        SAR.safeTransferFrom(address(this), to, positionId);\r\n        emit Claimed(msg.sender, to, amount);\r\n    }\r\n\r\n    function setMerkleRoot(bytes32 newMerkleRoot) external whenPaused onlyOwner {\r\n        merkleRoot = newMerkleRoot;\r\n        emit MerkleRootSet(newMerkleRoot);\r\n    }\r\n\r\n    function recover(IERC20 token, uint256 amount) external whenPaused onlyOwner {\r\n        require(token.transfer(msg.sender, amount), \"transfer failed\");\r\n    }\r\n\r\n    function pause() external onlyOwner {\r\n        _pause();\r\n    }\r\n\r\n    function unpause() external onlyOwner {\r\n        require(merkleRoot != 0x00, \"merkle root not set\");\r\n        _unpause();\r\n    }\r\n}\r\n"},"contracts/pangolin-token/MerkledropToStakingCompliant.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\r\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\r\nimport \"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\";\r\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ninterface IPangolinStakingPositions is IERC721 {\r\n    function mint(uint256 amount) external returns (uint256 positionId);\r\n}\r\n\r\ncontract MerkledropToStakingCompliant is Ownable, Pausable {\r\n    using ECDSA for bytes32;\r\n    using ECDSA for bytes;\r\n\r\n    mapping(address => uint96) public claimedAmounts;\r\n    IERC20 public immutable PNG;\r\n    IPangolinStakingPositions public immutable SAR;\r\n    bytes32 public merkleRoot;\r\n    string public complianceMessage = \"By signing this transaction, I hereby acknowledge that I am not a US resident or citizen. (Citizens or residents of the United States of America are not allowed to the PSB token airdrop due to applicable law.)\";\r\n    bytes32 public complianceHash = bytes(complianceMessage).toEthSignedMessageHash();\r\n\r\n    event Claimed(address indexed from, address indexed to, uint96 indexed amount);\r\n    event MerkleRootSet(bytes32 indexed newMerkleRoot);\r\n    event NewComplianceMessage(bytes32 indexed newComplianceHash, string newComplianceMessage);\r\n\r\n    constructor(address airdropToken, address stakingPositions, address initialOwner) {\r\n        require(airdropToken.code.length != 0, \"invalid token address\");\r\n        require(stakingPositions.code.length != 0, \"invalid staking address\");\r\n        require(initialOwner != address(0), \"invalid initial owner\");\r\n        _transferOwnership(initialOwner);\r\n        IERC20(airdropToken).approve(stakingPositions, type(uint256).max);\r\n        PNG = IERC20(airdropToken);\r\n        SAR = IPangolinStakingPositions(stakingPositions);\r\n        _pause();\r\n    }\r\n\r\n    function claim(\r\n        uint96 amount,\r\n        bytes32[] calldata merkleProof,\r\n        bytes calldata signature\r\n    ) external {\r\n        claimTo(msg.sender, amount, merkleProof, signature);\r\n    }\r\n\r\n    function claimTo(\r\n        address to,\r\n        uint96 amount,\r\n        bytes32[] calldata merkleProof,\r\n        bytes calldata signature\r\n    ) public whenNotPaused {\r\n        require(complianceHash.recover(signature) == msg.sender, \"invalid compliance signature\");\r\n        uint96 previouslyClaimed = claimedAmounts[msg.sender];\r\n        require(previouslyClaimed < amount, \"nothing to claim\");\r\n        bytes32 node = bytes32(abi.encodePacked(msg.sender, amount));\r\n        require(MerkleProof.verify(merkleProof, merkleRoot, node), \"invalid proof\");\r\n        claimedAmounts[msg.sender] = amount;\r\n        unchecked {\r\n            amount -= previouslyClaimed;\r\n        }\r\n        uint256 positionId = SAR.mint(amount);\r\n        SAR.safeTransferFrom(address(this), to, positionId);\r\n        emit Claimed(msg.sender, to, amount);\r\n    }\r\n\r\n    function setComplianceMessage(string calldata newComplianceMessage) external onlyOwner {\r\n        bytes32 newComplianceHash = bytes(newComplianceMessage).toEthSignedMessageHash();\r\n        complianceHash = newComplianceHash;\r\n        complianceMessage = newComplianceMessage;\r\n        emit NewComplianceMessage(newComplianceHash, newComplianceMessage);\r\n    }\r\n\r\n    function setMerkleRoot(bytes32 newMerkleRoot) external whenPaused onlyOwner {\r\n        merkleRoot = newMerkleRoot;\r\n        emit MerkleRootSet(newMerkleRoot);\r\n    }\r\n\r\n    function recover(IERC20 token, uint256 amount) external whenPaused onlyOwner {\r\n        require(token.transfer(msg.sender, amount), \"transfer failed\");\r\n    }\r\n\r\n    function pause() external onlyOwner {\r\n        _pause();\r\n    }\r\n\r\n    function unpause() external onlyOwner {\r\n        require(merkleRoot != 0x00, \"merkle root not set\");\r\n        _unpause();\r\n    }\r\n}\r\n"},"contracts/pangolin-token/Png.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol\";\r\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\r\n\r\ncontract Png is ERC20, ERC20Burnable, ERC20Permit, ERC20VotesComp, AccessControlEnumerable {\r\n    bytes32 public constant MINTER_ROLE = keccak256(\"MINTER_ROLE\");\r\n    uint256 public immutable cap;\r\n\r\n    constructor(uint96 cap_, uint96 preMint, string memory name_, string memory symbol_)\r\n        ERC20(name_, symbol_)\r\n        ERC20Permit(name_)\r\n    {\r\n        cap = cap_;\r\n        _mint(msg.sender, preMint);\r\n        _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\r\n    }\r\n\r\n    function mint(address to, uint256 amount) external onlyRole(MINTER_ROLE) {\r\n        _mint(to, amount);\r\n    }\r\n\r\n    function _maxSupply() internal view override returns (uint224) {\r\n        return uint224(cap);\r\n    }\r\n\r\n    function _afterTokenTransfer(address from, address to, uint256 amount)\r\n        internal\r\n        override(ERC20, ERC20Votes)\r\n    {\r\n        super._afterTokenTransfer(from, to, amount);\r\n    }\r\n\r\n    function _mint(address to, uint256 amount) internal override(ERC20, ERC20Votes) {\r\n        super._mint(to, amount);\r\n    }\r\n\r\n    function _burn(address account, uint256 amount) internal override(ERC20, ERC20Votes) {\r\n        super._burn(account, amount);\r\n    }\r\n}\r\n"},"contracts/pangolin-token/RegistrationCompliant.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\r\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\r\n\r\ncontract RegistrationCompliant is Ownable, Pausable {\r\n    using ECDSA for bytes;\r\n    using ECDSA for bytes32;\r\n\r\n    mapping(address => bool) public registrations;\r\n\r\n    string public constant COMPLIANCE_MESSAGE = \"By signing this transaction, I hereby acknowledge that I am not a US resident or citizen. (Citizens or residents of the United States of America are not allowed to the token airdrop due to applicable law.)\";\r\n    bytes32 public immutable COMPLIANCE_HASH;\r\n\r\n    event Registered(address indexed from, address indexed to);\r\n\r\n    constructor(address firstOwner) {\r\n        COMPLIANCE_HASH = bytes(COMPLIANCE_MESSAGE).toEthSignedMessageHash();\r\n        transferOwnership(firstOwner);\r\n    }\r\n\r\n    function register(\r\n        address destinationAddress,\r\n        bytes calldata signature\r\n    ) external whenNotPaused {\r\n        require(destinationAddress != address(0), \"Invalid destination\");\r\n        require(!registrations[msg.sender], \"Already registered\");\r\n        require(COMPLIANCE_HASH.recover(signature) == msg.sender, \"Invalid signature\");\r\n        registrations[msg.sender] = true;\r\n        emit Registered(msg.sender, destinationAddress);\r\n    }\r\n\r\n    function pause() external onlyOwner {\r\n        _pause();\r\n    }\r\n\r\n    function unpause() external onlyOwner {\r\n        _unpause();\r\n    }\r\n}\r\n"},"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\n\r\ninterface IPangoChef {\r\n    function claim(uint256 poolId) external returns (uint256 reward);\r\n\r\n    function rewardsToken() external view returns (address);\r\n\r\n    function addReward(uint256 amount) external;\r\n\r\n    function hasRole(bytes32 role, address account) external view returns (bool);\r\n}\r\n\r\n/** @author shung for Pangolin */\r\ncontract EmissionDiversionFromPangoChefToPangolinStakingPositions {\r\n    IPangoChef public immutable pangoChef;\r\n    IPangoChef public immutable pangolinStakingPositions;\r\n    address public immutable rewardsToken;\r\n    bytes32 private constant FUNDER_ROLE = keccak256(\"FUNDER_ROLE\");\r\n\r\n    modifier onlyFunder() {\r\n        require(pangolinStakingPositions.hasRole(FUNDER_ROLE, msg.sender), \"unauthorized\");\r\n        _;\r\n    }\r\n\r\n    constructor(address newPangoChef, address newStakingPositions) {\r\n        require(newPangoChef.code.length != 0, \"empty contract\");\r\n        address newRewardsToken = IPangoChef(newPangoChef).rewardsToken();\r\n        require(\r\n            newRewardsToken == IPangoChef(newStakingPositions).rewardsToken(),\r\n            \"invalid addresses\"\r\n        );\r\n        IERC20(newRewardsToken).approve(newStakingPositions, type(uint256).max);\r\n        pangoChef = IPangoChef(newPangoChef);\r\n        pangolinStakingPositions = IPangoChef(newStakingPositions);\r\n        rewardsToken = newRewardsToken;\r\n    }\r\n\r\n    function claimAndAddReward(uint256 poolId) external onlyFunder {\r\n        uint256 amount = pangoChef.claim(poolId);\r\n        pangolinStakingPositions.addReward(amount);\r\n    }\r\n\r\n    function notifyRewardAmount(uint256 amount) external onlyFunder {\r\n        pangolinStakingPositions.addReward(amount);\r\n    }\r\n}\r\n"},"contracts/staking-positions/GenericErrors.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.7;\r\n\r\ninterface GenericErrors {\r\n    error Locked();\r\n    error TooLate();\r\n    error TooEarly();\r\n    error Overflow();\r\n    error NoEffect();\r\n    error NullInput();\r\n    error Underflow();\r\n    error InvalidType();\r\n    error OutOfBounds();\r\n    error InvalidToken();\r\n    error HighSlippage();\r\n    error InvalidAmount();\r\n    error FailedTransfer();\r\n    error NonExistentToken();\r\n    error UnprivilegedCaller();\r\n    error InsufficientBalance();\r\n    error MismatchedArrayLengths();\r\n}\r\n"},"contracts/staking-positions/interfaces/IPangolinFactory.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity ^0.8.0;\r\n\r\ninterface IPangolinFactory {\r\n    function getPair(address tokenA, address tokenB) external view returns (address pair);\r\n}\r\n"},"contracts/staking-positions/interfaces/IPangolinPair.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity ^0.8.0;\r\n\r\ninterface IPangolinPair {\r\n    function token0() external view returns (address);\r\n\r\n    function token1() external view returns (address);\r\n\r\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32);\r\n\r\n    function mint(address to) external returns (uint256 liquidity);\r\n}\r\n"},"contracts/staking-positions/interfaces/IRewarder.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity >=0.6.0;\r\n\r\ninterface IRewarder {\r\n    function onReward(\r\n        uint256 pid,\r\n        address user,\r\n        bool destructiveAction,\r\n        uint256 rewardAmount,\r\n        uint256 newLpAmount\r\n    ) external;\r\n}\r\n"},"contracts/staking-positions/interfaces/IWAVAX.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity ^0.8.0;\r\n\r\ninterface IWAVAX {\r\n    function deposit() external payable;\r\n}\r\n"},"contracts/staking-positions/PangoChef.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity 0.8.15;\r\n\r\nimport \"./PangoChefFunding.sol\";\r\nimport \"./ReentrancyGuard.sol\";\r\n\r\nimport \"./interfaces/IWAVAX.sol\";\r\nimport \"./interfaces/IPangolinFactory.sol\";\r\nimport \"./interfaces/IPangolinPair.sol\";\r\nimport \"./interfaces/IRewarder.sol\";\r\n\r\n/** @dev We call this contract with try/catch to figure out if pair is an actual pair. */\r\ncontract SafeExternalCalls {\r\n    function getReserveTokenAddresses(address pair) external view returns (address, address) {\r\n        return (IPangolinPair(pair).token0(), IPangolinPair(pair).token1());\r\n    }\r\n}\r\n\r\n/**\r\n * @title PangoChef\r\n * @author Shung for Pangolin\r\n * @notice PangoChef is a MiniChef alternative that utilizes the Sunshine and Rainbows algorithm\r\n *         for distributing rewards from pools to stakers.\r\n */\r\ncontract PangoChef is PangoChefFunding, ReentrancyGuard {\r\n    using SafeTransferLib for ERC20;\r\n    using EnumerableSet for EnumerableSet.UintSet;\r\n\r\n    enum PoolType {\r\n        // UNSET_POOL is used to check if a pool is initialized.\r\n        UNSET_POOL,\r\n        // ERC20_POOL distributes its share of rewards to any number of ERC20 token stakers.\r\n        ERC20_POOL,\r\n        // RELAYER_POOL sends all its rewards to a single recipient address.\r\n        RELAYER_POOL\r\n    }\r\n\r\n    enum StakeType {\r\n        // In REGULAR staking, user supplies the amount of tokens to be staked.\r\n        REGULAR,\r\n        // In COMPOUND staking, rewards from the pool are paired with another reserve token\r\n        // supplied by the user, and the created pool token is staked to the same pool as where\r\n        // the rewards come from.\r\n        COMPOUND,\r\n        // In COMPOUND_TO staking, rewards from any pool can be paired with another token to\r\n        // be staked in another pool.\r\n        COMPOUND_TO\r\n    }\r\n\r\n    struct Slippage {\r\n        // The minimum amount of paired tokens that has to be withdrawn from user.\r\n        uint256 minPairAmount;\r\n        // The maximum amount of paired tokens that can be withdrawn from user.\r\n        uint256 maxPairAmount;\r\n    }\r\n\r\n    struct ValueVariables {\r\n        // The amount of tokens staked by the user in the pool or total staked in the pool.\r\n        uint104 balance;\r\n        // The sum of each staked token multiplied by its update time.\r\n        uint152 sumOfEntryTimes;\r\n    }\r\n\r\n    struct RewardSummations {\r\n        // Imaginary rewards accrued by a position with `lastUpdate == 0 && balance == 1`. At the\r\n        // end of each interval, the ideal position has a staking duration of `block.timestamp`.\r\n        // Since its balance is one, its “value” equals its staking duration. So, its value\r\n        // is also `block.timestamp` , and for a given reward at an interval, the ideal position\r\n        // accrues `reward * block.timestamp / totalValue`. Refer to `Ideal Position` section of\r\n        // the Proofs on why we need this variable.\r\n        uint256 idealPosition;\r\n        // The sum of `reward/totalValue` of each interval. `totalValue` is the sum of all staked\r\n        // tokens multiplied by their respective staking durations.  On every update, the\r\n        // `rewardPerValue` is incremented by rewards given during that interval divided by the\r\n        // total value, which is average staking duration multiplied by total staked. See proofs.\r\n        uint256 rewardPerValue;\r\n    }\r\n\r\n    struct User {\r\n        // Two variables that specify the share of rewards a user must receive from the pool.\r\n        ValueVariables valueVariables;\r\n        // Summations snapshotted on the last update of the user.\r\n        RewardSummations rewardSummationsPaid;\r\n        // The sum of values (`balance * (block.timestamp - lastUpdate)`) of previous intervals.\r\n        // It is only incremented accordingly when tokens are staked, and it is reset to zero\r\n        // when tokens are withdrawn. Correctly updating this property allows for the staking\r\n        // duration of the existing balance of the user to not restart when staking more tokens.\r\n        // So it allows combining together tokens with differing staking durations. Refer to the\r\n        // `Combined Positions` section of the Proofs on why this works.\r\n        uint152 previousValues;\r\n        // The last time the user info was updated.\r\n        uint48 lastUpdate;\r\n        // The number of pools that locked this pool. User can only withdraw from a pool if its\r\n        // lock count is zero. When a user uses the rewards of a pool to compound into another\r\n        // pool, the compounded pool gets locked until the harvested pool has its staking duration\r\n        // reset. Otherwise people can exploit the `compoundTo()` function to harvest rewards of a\r\n        // pool without resetting its staking duration, which would defeat the purpose of using SAR\r\n        // algorithm.\r\n        uint56 lockCount;\r\n        // Rewards of the user gets stashed when user’s summations are updated without\r\n        // harvesting the rewards or without utilizing the rewards in compounding.\r\n        uint96 stashedRewards;\r\n    }\r\n\r\n    struct Pool {\r\n        // The address of the token when poolType is ERC_20, or the recipient address when poolType\r\n        // is RELAYER_POOL.\r\n        address tokenOrRecipient;\r\n        // The type of the pool, which determines which actions can be performed on it.\r\n        PoolType poolType;\r\n        // An external contract that distributes additional rewards.\r\n        IRewarder rewarder;\r\n        // The address that is paired with PNG. It is zero address if the pool token is not a\r\n        // liquidity pool token, or if the liquidity pool do not have PNG as one of the reserves.\r\n        address rewardPair;\r\n        // Two variables that specify the total shares (i.e.: “value”) in the pool.\r\n        ValueVariables valueVariables;\r\n        // Summations incremented on every action on the pool.\r\n        RewardSummations rewardSummationsStored;\r\n        // The mapping from addresses of the users of the pool to their properties.\r\n        mapping(address => User) users;\r\n    }\r\n\r\n    /** @notice The mapping from poolIds to the pool infos. */\r\n    mapping(uint256 => Pool) public pools;\r\n\r\n    /** The set of ids of the pools locked by this pool. */\r\n    mapping(uint256 => mapping(address => EnumerableSet.UintSet)) private lockedPools;\r\n\r\n    /** @notice The UNI-V2 factory that creates pair tokens. */\r\n    IPangolinFactory public immutable factory;\r\n\r\n    /** @notice The contract for wrapping and unwrapping the native gas token (e.g.: WETH). */\r\n    address public immutable wrappedNativeToken;\r\n\r\n    /** @notice The number of pools in the contract. */\r\n    uint256 private _poolsLength = 0;\r\n\r\n    /** @notice The maximum amount of tokens that can be staked in a pool. */\r\n    uint256 private constant MAX_STAKED_AMOUNT_IN_POOL = type(uint104).max;\r\n\r\n    /** @notice The fixed denominator used for storing summations. */\r\n    uint256 private constant PRECISION = 2**128;\r\n\r\n    /** @notice The maximum amount of pools that can be locked. This prevents unbounded loop. */\r\n    uint256 private constant MAX_LOCK_COUNT = 10;\r\n\r\n    SafeExternalCalls private safeExternalCalls;\r\n\r\n    /** @notice The event emitted when withdrawing or harvesting from a position. */\r\n    event Withdrawn(\r\n        uint256 indexed positionId,\r\n        address indexed userId,\r\n        uint256 indexed amount,\r\n        uint256 reward\r\n    );\r\n\r\n    /** @notice The event emitted when staking to, minting, or compounding a position. */\r\n    event Staked(\r\n        uint256 indexed positionId,\r\n        address indexed userId,\r\n        uint256 indexed amount,\r\n        uint256 reward\r\n    );\r\n\r\n    /** @notice The event emitted when a pool is created. */\r\n    event PoolInitialized(uint256 indexed poolId, address indexed tokenOrRecipient);\r\n\r\n    /** @notice The event emitted when the rewarder of a pool is changed. */\r\n    event RewarderSet(uint256 indexed poolId, address indexed rewarder);\r\n\r\n    /**\r\n     * @notice Constructor to create and initialize PangoChef contract.\r\n     * @param newRewardsToken The token distributed as reward (i.e.: PNG).\r\n     * @param newAdmin The initial owner of the contract.\r\n     * @param newFactory The Pangolin factory that creates and records AMM pairs.\r\n     * @param newWrappedNativeToken The contract for wrapping and unwrapping the native gas token.\r\n     */\r\n    constructor(\r\n        address newRewardsToken,\r\n        address newAdmin,\r\n        IPangolinFactory newFactory,\r\n        address newWrappedNativeToken\r\n    ) PangoChefFunding(newRewardsToken, newAdmin) {\r\n        // Get WAVAX-PNG (or WETH-PNG, etc.) liquidity token.\r\n        address poolZeroPair = newFactory.getPair(newRewardsToken, newWrappedNativeToken);\r\n\r\n        // Check pair exists, which implies `newRewardsToken != 0 && newWrappedNativeToken != 0`.\r\n        if (poolZeroPair == address(0)) revert NullInput();\r\n\r\n        // Initialize the immutable state variables.\r\n        factory = newFactory;\r\n        wrappedNativeToken = newWrappedNativeToken;\r\n\r\n        safeExternalCalls = SafeExternalCalls(new SafeExternalCalls());\r\n\r\n        // Initialize pool zero with WAVAX-PNG liquidity token.\r\n        _initializePool(poolZeroPair, PoolType.ERC20_POOL);\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to change the rewarder of a pool.\r\n     * @param poolId The identifier of the pool to change the rewarder of.\r\n     * @param rewarder The address of the new rewarder.\r\n     */\r\n    function setRewarder(uint256 poolId, address rewarder) external onlyRole(POOL_MANAGER_ROLE) {\r\n        Pool storage pool = pools[poolId];\r\n        _onlyERC20Pool(pool);\r\n        pool.rewarder = IRewarder(rewarder);\r\n        emit RewarderSet(poolId, rewarder);\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to initialize/create a pool.\r\n     * @param tokenOrRecipient The token used in staking, or the sole recipient of the rewards.\r\n     * @param poolType The pool type, which should either be ERC20_POOL, or RELAYER_POOL.\r\n     *                 ERC20_POOL is a regular staking pool, in which anyone can stake the token\r\n     *                 to receive rewards. In RELAYER_POOL, there is only one recipient of the\r\n     *                 rewards. RELAYER_POOL is used for diverting token emissions.\r\n     */\r\n    function initializePool(address tokenOrRecipient, PoolType poolType)\r\n        external\r\n        onlyRole(POOL_MANAGER_ROLE)\r\n    {\r\n        _initializePool(tokenOrRecipient, poolType);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to stake to a pool.\r\n     * @param poolId The identifier of the pool to stake to.\r\n     * @param amount The amount of pool tokens to stake.\r\n     */\r\n    function stake(uint256 poolId, uint256 amount) external notEntered {\r\n        _stake(poolId, msg.sender, amount, StakeType.REGULAR, Slippage(0, 0));\r\n    }\r\n\r\n    /**\r\n     * @notice External function to stake to a pool on behalf of another user.\r\n     * @param poolId The identifier of the pool to stake to.\r\n     * @param userId The address of the pool to stake for.\r\n     * @param amount The amount of pool tokens to stake.\r\n     */\r\n    function stakeTo(\r\n        uint256 poolId,\r\n        address userId,\r\n        uint256 amount\r\n    ) external notEntered {\r\n        _stake(poolId, userId, amount, StakeType.REGULAR, Slippage(0, 0));\r\n    }\r\n\r\n    /**\r\n     * @notice External function to stake to a pool using the rewards of the pool.\r\n     * @dev This function only works if the staking token is a Pangolin liquidity token (PGL), and\r\n     *      one of its reserves is the rewardsToken (PNG). The user must supply sufficient amount\r\n     *      of the other reserve to be combined with PNG. The rewards and the user supplied pair\r\n     *      token is then used to mint a liquidity pool token, which must be the same token as the\r\n     *      staking token.\r\n     * @param poolId The identifier of the pool to compound.\r\n     * @param slippage A struct defining the minimum and maximum amounts of tokens that can be\r\n     *                 paired with reward token.\r\n     */\r\n    function compound(uint256 poolId, Slippage calldata slippage) external payable nonReentrant {\r\n        _stake(poolId, msg.sender, 0, StakeType.COMPOUND, slippage);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to withdraw and harvest from a pool.\r\n     * @param poolId The identifier of the pool to withdraw and harvest from.\r\n     * @param amount The amount of pool tokens to withdraw.\r\n     */\r\n    function withdraw(uint256 poolId, uint256 amount) external notEntered {\r\n        _withdraw(poolId, amount);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to harvest rewards from a pool.\r\n     * @param poolId The identifier of the pool to harvest from.\r\n     */\r\n    function harvest(uint256 poolId) external notEntered {\r\n        _withdraw(poolId, 0);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to stake to a compoundable pool (e.g.: PNG-WAVAX PGL) using the\r\n     *         rewards of any other ERC20_POOL.\r\n     * @dev The user must supply sufficient amount of the gas token (e.g.: AVAX/WAVAX) to be\r\n     *      paired with the rewardsToken (e.g.:PNG).\r\n     * @param harvestPoolId The identifier of the pool to harvest the rewards from.\r\n     * @param compoundPoolId The identifier of the pool to stake the rewards into.\r\n     * @param slippage A struct defining the minimum and maximum amounts of tokens that can be\r\n     *                 paired with reward token.\r\n     */\r\n    function compoundTo(\r\n        uint256 harvestPoolId,\r\n        uint256 compoundPoolId,\r\n        Slippage calldata slippage\r\n    ) external payable nonReentrant {\r\n        // Harvest rewards from the provided pool. This does not reset the staking duration, but\r\n        // it will increment the lock on the compounded pool. The lock on compounded pool will be\r\n        // decremented whenever the provided pool has its staking duration reset (e.g.: through\r\n        // `_withdraw()`).\r\n        uint256 reward = _harvestWithoutReset(harvestPoolId, compoundPoolId);\r\n\r\n        // Stake to the compoundable pool using special staking method, which will add liquidity\r\n        // using rewards harvested from the provided pool.\r\n        _stake(compoundPoolId, msg.sender, reward, StakeType.COMPOUND_TO, slippage);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to exit from a pool by forgoing rewards.\r\n     * @param poolId The identifier of the pool to exit from.\r\n     */\r\n    function emergencyExitLevel1(uint256 poolId) external nonReentrant {\r\n        _emergencyExit(poolId, true);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to exit from a pool by forgoing the stake and rewards.\r\n     * @dev This is an extreme emergency function, used only to save compoundable pool from\r\n     *      perpetually remaining locked if there is a DOS on the staking token.\r\n     * @param poolId The identifier of the pool to exit from.\r\n     * @param confirmation Prevents naive users from calling this function by mistake.\r\n     */\r\n    function emergencyExitLevel2(uint256 poolId, bytes32 confirmation) external nonReentrant {\r\n        if (confirmation != keccak256(\r\n                abi.encodePacked(\r\n                    \"I am ready to lose everything in this pool. Let me go.\",\r\n                    msg.sender\r\n                )\r\n            )\r\n        ) revert UnprivilegedCaller();\r\n        _emergencyExit(poolId, false);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to claim/harvest the rewards from a RELAYER_POOL.\r\n     * @param poolId The identifier of the pool to claim the rewards of.\r\n     * @return reward The amount of rewards that was harvested.\r\n     */\r\n    function claim(uint256 poolId) external notEntered returns (uint256 reward) {\r\n        // Create a storage pointer for the pool.\r\n        Pool storage pool = pools[poolId];\r\n\r\n        // Ensure pool is RELAYER type.\r\n        _onlyRelayerPool(pool);\r\n\r\n        // Ensure only relayer itself can claim the rewards.\r\n        if (msg.sender != pool.tokenOrRecipient) revert UnprivilegedCaller();\r\n\r\n        // Get the pool’s rewards.\r\n        reward = _claim(poolId);\r\n\r\n        // Transfer rewards from the contract to the user, and emit the associated event.\r\n        if (reward != 0) rewardsToken.safeTransfer(msg.sender, reward);\r\n        emit Withdrawn(poolId, msg.sender, 0, reward);\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get the info about a user of a pool.\r\n     * @param poolId The identifier of the pool the user is in.\r\n     * @param userId The address of the user in the pool.\r\n     * @return The user struct that contains all the information of the user.\r\n     */\r\n    function getUser(uint256 poolId, address userId) external view returns (User memory) {\r\n        return pools[poolId].users[userId];\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get the pools locked by user in a specific pool.\r\n     * @param poolId The identifier of the pool the user is in.\r\n     * @param userId The address of the user in the pool.\r\n     * @return The pool identifier array of the pools locked by the user.\r\n     */\r\n    function getLockedPools(\r\n        uint256 poolId,\r\n        address userId\r\n    ) external view returns (uint256[] memory) {\r\n        return lockedPools[poolId][userId].values();\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get the reward rate of a user of a pool.\r\n     * @dev In SAR, users have different APRs, unlike other staking algorithms. This external\r\n     *      function clearly demonstrates how the SAR algorithm is supposed to distribute the\r\n     *      rewards based on “value”, which is balance times staking duration. This external\r\n     *      function can be considered as a specification.\r\n     * @param poolId The identifier of the pool the user is in.\r\n     * @param userId The address of the user in the pool.\r\n     * @return The rewards per second of the user.\r\n     */\r\n    function userRewardRate(uint256 poolId, address userId) external view returns (uint256) {\r\n        // Get totalValue and positionValue.\r\n        Pool storage pool = pools[poolId];\r\n        uint256 poolValue = _getValue(pool.valueVariables);\r\n        uint256 userValue = _getValue(pool.users[userId].valueVariables);\r\n\r\n        // Return the rewardRate of the user. Do not revert if poolValue is zero.\r\n        return userValue == 0 ? 0 : (poolRewardRate(poolId) * userValue) / poolValue;\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get the accrued rewards of a user. It calculates all the\r\n     *         pending rewards from user’s last update until the block timestamp.\r\n     * @param poolId The identifier of the pool the user is in.\r\n     * @param userId The address of the user in the pool.\r\n     * @return The amount of rewards that have been accrued in the position.\r\n     */\r\n    function userPendingRewards(uint256 poolId, address userId) external view returns (uint256) {\r\n        // Create a storage pointer for the position.\r\n        Pool storage pool = pools[poolId];\r\n        User storage user = pool.users[userId];\r\n\r\n        // Get the delta of summations. Use incremented in-memory `rewardSummationsStored`\r\n        // based on the pending rewards.\r\n        RewardSummations memory deltaRewardSummations = _getDeltaRewardSummations(\r\n            poolId,\r\n            pool,\r\n            user,\r\n            true\r\n        );\r\n\r\n        // Return the pending rewards of the user based on the difference in rewardSummations.\r\n        return _earned(deltaRewardSummations, user);\r\n    }\r\n\r\n    /** @inheritdoc PangoChefFunding*/\r\n    function poolsLength() public view override returns (uint256) {\r\n        return _poolsLength;\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to deposit tokens to a pool.\r\n     * @param poolId The identifier of the pool to deposit to.\r\n     * @param userId The address of the user to deposit for.\r\n     * @param amount The amount of staking tokens to deposit when stakeType is REGULAR.\r\n     *               It should be zero when the stakeType is COMPOUND.\r\n     *               The reward token to pair when stakeType is COMPOUND_TO.\r\n     * @param stakeType The staking method (i.e.: staking, compounding, compounding to).\r\n     * @param slippage A struct defining the minimum and maximum amounts of tokens that can be\r\n     *                 paired with reward token.\r\n     */\r\n    function _stake(\r\n        uint256 poolId,\r\n        address userId,\r\n        uint256 amount,\r\n        StakeType stakeType,\r\n        Slippage memory slippage\r\n    ) private {\r\n        // Create a storage pointers for the pool and the user.\r\n        Pool storage pool = pools[poolId];\r\n        User storage user = pool.users[userId];\r\n\r\n        // Ensure pool is ERC20 type.\r\n        _onlyERC20Pool(pool);\r\n\r\n        // Update the summations that govern the distribution from a pool to its stakers.\r\n        ValueVariables storage poolValueVariables = pool.valueVariables;\r\n        uint256 poolBalance = poolValueVariables.balance;\r\n        if (poolBalance != 0) _updateRewardSummations(poolId, pool);\r\n\r\n        // Before everything else, get the rewards accrued by the user. Rewards are not transferred\r\n        // to the user in this function. Therefore they need to be either stashed or compounded.\r\n        uint256 reward = _userPendingRewards(poolId, pool, user);\r\n\r\n        uint256 transferAmount = 0;\r\n        // Regular staking.\r\n        if (stakeType == StakeType.REGULAR) {\r\n            // Mark the input amount to be transferred from the caller to the contract.\r\n            transferAmount = amount;\r\n\r\n            // Rewards are not harvested. Therefore stash the rewards.\r\n            user.stashedRewards = uint96(reward);\r\n            reward = 0;\r\n            // Staking into the compoundable pool using harvested rewards from another pool.\r\n        } else if (stakeType == StakeType.COMPOUND_TO) {\r\n            // Add liquidity using the rewards of another pool.\r\n            amount = _addLiquidity(pool, amount, slippage);\r\n\r\n            // Rewards used in compounding comes from other pools. Therefore stash the rewards of\r\n            // this pool, which is neither harvested nor used in compounding.\r\n            user.stashedRewards = uint96(reward);\r\n            reward = 0;\r\n            // Compounding.\r\n        } else {\r\n            assert(stakeType == StakeType.COMPOUND);\r\n            assert(amount == 0);\r\n\r\n            // Add liquidity using the rewards of this pool.\r\n            amount = _addLiquidity(pool, reward, slippage);\r\n\r\n            // Rewards used in compounding comes from this pool. So clear stashed rewards.\r\n            user.stashedRewards = 0;\r\n        }\r\n\r\n        // Ensure either user is adding more stake, or compounding.\r\n        if (amount == 0) revert NoEffect();\r\n\r\n        // Scope to prevent stack to deep errors.\r\n        uint256 newBalance;\r\n        {\r\n            // Get the new total staked amount and ensure it fits MAX_STAKED_AMOUNT_IN_POOL.\r\n            uint256 newTotalStaked = poolBalance + amount;\r\n            if (newTotalStaked > MAX_STAKED_AMOUNT_IN_POOL) revert Overflow();\r\n            unchecked {\r\n                // Increment the pool info pertaining to pool’s total value calculation.\r\n                uint152 addedEntryTimes = uint152(block.timestamp * amount);\r\n                poolValueVariables.sumOfEntryTimes += addedEntryTimes;\r\n                poolValueVariables.balance = uint104(newTotalStaked);\r\n\r\n                // Increment the user info pertaining to user value calculation.\r\n                ValueVariables storage userValueVariables = user.valueVariables;\r\n                uint256 oldBalance = userValueVariables.balance;\r\n                newBalance = oldBalance + amount;\r\n                userValueVariables.balance = uint104(newBalance);\r\n                userValueVariables.sumOfEntryTimes += addedEntryTimes;\r\n\r\n                // Increment the previousValues. This allows staking duration to not reset when\r\n                // reward summations are snapshotted.\r\n                user.previousValues += uint152(oldBalance * (block.timestamp - user.lastUpdate));\r\n            }\r\n        }\r\n\r\n        // Snapshot the lastUpdate and summations.\r\n        _snapshotRewardSummations(pool, user);\r\n\r\n        // Transfer amount tokens from caller to the contract, and emit the staking event.\r\n        if (transferAmount != 0) {\r\n            ERC20(pool.tokenOrRecipient).safeTransferFrom(\r\n                msg.sender,\r\n                address(this),\r\n                transferAmount\r\n            );\r\n        }\r\n        emit Staked(poolId, userId, amount, reward);\r\n\r\n        // If rewarder exists, notify the reward amount.\r\n        IRewarder rewarder = pool.rewarder;\r\n        if (address(rewarder) != address(0)) {\r\n            rewarder.onReward(poolId, userId, false, reward, newBalance);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to withdraw and harvest from a pool.\r\n     * @param poolId The identifier of the pool to withdraw from.\r\n     * @param amount The amount of tokens to withdraw. Zero amount only harvests rewards.\r\n     */\r\n    function _withdraw(uint256 poolId, uint256 amount) private {\r\n        // Create a storage pointer for the pool and the user.\r\n        Pool storage pool = pools[poolId];\r\n        User storage user = pool.users[msg.sender];\r\n\r\n        // Ensure pool is ERC20 type.\r\n        _onlyERC20Pool(pool);\r\n\r\n        // Update pool summations that govern the reward distribution from pool to users.\r\n        _updateRewardSummations(poolId, pool);\r\n\r\n        // Ensure compoundable pool is not locked.\r\n        // Decrement lock count on compoundable pool if this pool was locking it.\r\n        _decrementLock(user, poolId);\r\n\r\n        // Get position balance and ensure sufficient balance exists.\r\n        ValueVariables storage userValueVariables = user.valueVariables;\r\n        uint256 oldBalance = userValueVariables.balance;\r\n        if (amount > oldBalance) revert InsufficientBalance();\r\n\r\n        // Before everything else, get the rewards accrued by the user, then delete the user stash.\r\n        uint256 reward = _userPendingRewards(poolId, pool, user);\r\n        user.stashedRewards = 0;\r\n\r\n        // Ensure we are either withdrawing something or claiming rewards.\r\n        if (amount == 0 && reward == 0) revert NoEffect();\r\n\r\n        uint256 remaining;\r\n        unchecked {\r\n            // Get the remaining balance in the position.\r\n            remaining = oldBalance - amount;\r\n\r\n            // Decrement the withdrawn amount from totalStaked.\r\n            ValueVariables storage poolValueVariables = pool.valueVariables;\r\n            poolValueVariables.balance -= uint104(amount);\r\n\r\n            // Update sumOfEntryTimes.\r\n            uint256 newEntryTimes = block.timestamp * remaining;\r\n            poolValueVariables.sumOfEntryTimes = uint152(\r\n                poolValueVariables.sumOfEntryTimes +\r\n                    newEntryTimes -\r\n                    userValueVariables.sumOfEntryTimes\r\n            );\r\n\r\n            // Decrement the withdrawn amount from user balance, and update the user entry times.\r\n            userValueVariables.balance = uint104(remaining);\r\n            userValueVariables.sumOfEntryTimes = uint152(newEntryTimes);\r\n        }\r\n\r\n        // Reset the previous values, as we have restarted the staking duration.\r\n        user.previousValues = 0;\r\n\r\n        // Snapshot the lastUpdate and summations.\r\n        _snapshotRewardSummations(pool, user);\r\n\r\n        // Transfer withdrawn tokens.\r\n        if (reward != 0) rewardsToken.safeTransfer(msg.sender, reward);\r\n        if (amount != 0) ERC20(pool.tokenOrRecipient).safeTransfer(msg.sender, amount);\r\n        emit Withdrawn(poolId, msg.sender, amount, reward);\r\n\r\n        // Get extra rewards from rewarder if it is not an emergency exit.\r\n        IRewarder rewarder = pool.rewarder;\r\n        if (address(rewarder) != address(0)) {\r\n            rewarder.onReward(poolId, msg.sender, true, reward, remaining);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to harvest from a pool without resetting its staking duration.\r\n     * @dev Harvested rewards must not leave the contract, so that they can be used in compounding.\r\n     * @param harvestPoolId The identifier of the pool to harvest from.\r\n     * @param compoundPoolId The identifier of the pool the rewards will be compounded to.\r\n     * @return reward The amount of harvested rewards.\r\n     */\r\n    function _harvestWithoutReset(\r\n        uint256 harvestPoolId,\r\n        uint256 compoundPoolId\r\n    ) private returns (uint256 reward) {\r\n        // Create a storage pointer for the pool and the user.\r\n        Pool storage pool = pools[harvestPoolId];\r\n        User storage user = pool.users[msg.sender];\r\n\r\n        // Ensure pool is ERC20 type.\r\n        _onlyERC20Pool(pool);\r\n\r\n        // Ensure pool cannot compound(). This is to prevent cyclical lock. That is, pool A locks\r\n        // pool B locks pool A. The following check ensures that if pool B can be compounded, it\r\n        // cannot compound to other pools.\r\n        if (pool.rewardPair != address(0)) revert InvalidToken();\r\n\r\n        // Update pool summations that govern the reward distribution from pool to users.\r\n        _updateRewardSummations(harvestPoolId, pool);\r\n\r\n        // Increment lock count on compoundable pool if this pool was not already locking it.\r\n        _incrementLock(harvestPoolId, compoundPoolId);\r\n\r\n        // Get the rewards accrued by the user, then delete the user stash.\r\n        reward = _userPendingRewards(harvestPoolId, pool, user);\r\n        user.stashedRewards = 0;\r\n\r\n        // Ensure there are sufficient rewards to use in compounding.\r\n        if (reward == 0) revert NoEffect();\r\n\r\n        // Increment the previousValues to not reset the staking duration. In the proofs,\r\n        // previousValues was regarding combining positions, however we are not combining positions\r\n        // here. Consider this trick as combining with a null position. This allows us to not reset\r\n        // the staking duration but exclude any rewards before block time.\r\n        uint256 userBalance = user.valueVariables.balance;\r\n        user.previousValues += uint152(userBalance * (block.timestamp - user.lastUpdate));\r\n\r\n        // Snapshot the lastUpdate and summations.\r\n        _snapshotRewardSummations(pool, user);\r\n\r\n        // Emit the harvest event, even though it will not be transferred to the user.\r\n        emit Withdrawn(harvestPoolId, msg.sender, 0, reward);\r\n\r\n        // Get extra rewards from rewarder.\r\n        IRewarder rewarder = pool.rewarder;\r\n        if (address(rewarder) != address(0)) {\r\n            rewarder.onReward(harvestPoolId, msg.sender, false, reward, userBalance);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to add liquidity to a Pangolin pair when compounding.\r\n     * @param pool The properties of the pool that has the liquidity token to add liquidity to.\r\n     * @param rewardAmount The amount of reward tokens that will be paired up. Requires that the\r\n     *                     reward amount is already set aside for adding liquidity. That means,\r\n     *                     user does not need to send the rewards, and it was set aside through\r\n     *                     harvesting.\r\n     * @param slippage A struct defining the minimum and maximum amounts of tokens that can be\r\n     *                 paired with reward token.\r\n     * @return poolTokenAmount The amount of liquidity tokens that gets minted.\r\n     */\r\n    function _addLiquidity(\r\n        Pool storage pool,\r\n        uint256 rewardAmount,\r\n        Slippage memory slippage\r\n    ) private returns (uint256 poolTokenAmount) {\r\n        address poolToken = pool.tokenOrRecipient;\r\n        address rewardPair = pool.rewardPair;\r\n\r\n        // Ensure the pool token is a Pangolin pair token containing PNG as one of the pairs.\r\n        if (rewardPair == address(0)) revert InvalidType();\r\n\r\n        // Get token amounts from the pool.\r\n        (uint256 reserve0, uint256 reserve1, ) = IPangolinPair(poolToken).getReserves();\r\n\r\n        // Get the reward token’s pair’s amount from the reserves.\r\n        uint256 pairAmount = address(rewardsToken) < rewardPair\r\n            ? (reserve1 * rewardAmount) / reserve0\r\n            : (reserve0 * rewardAmount) / reserve1;\r\n\r\n        // Ensure slippage is not above the limit.\r\n        if (pairAmount > slippage.maxPairAmount) revert HighSlippage();\r\n        if (pairAmount < slippage.minPairAmount) revert HighSlippage();\r\n\r\n        // Non-zero message value signals desire to pay with native token.\r\n        if (msg.value > 0) {\r\n            // Ensure reward pair is native token.\r\n            if (rewardPair != wrappedNativeToken) revert InvalidToken();\r\n\r\n            // Ensure consistent slippage control.\r\n            if (msg.value != slippage.maxPairAmount) revert InvalidAmount();\r\n\r\n            // Wrap the native token.\r\n            IWAVAX(rewardPair).deposit{ value: pairAmount }();\r\n\r\n            // Transfer reward pair tokens from this contract to the pair contract.\r\n            ERC20(rewardPair).safeTransfer(poolToken, pairAmount);\r\n\r\n            // Refund user.\r\n            unchecked {\r\n                uint256 refundAmount = msg.value - pairAmount;\r\n                if (refundAmount != 0) SafeTransferLib.safeTransferETH(msg.sender, refundAmount);\r\n            }\r\n        } else {\r\n            // Transfer reward pair tokens from the user to the pair contract.\r\n            ERC20(rewardPair).safeTransferFrom(msg.sender, poolToken, pairAmount);\r\n        }\r\n\r\n        // Transfer reward tokens from the contract to the pair contract.\r\n        rewardsToken.safeTransfer(poolToken, rewardAmount);\r\n\r\n        // Mint liquidity tokens to the PangoChef and return the amount minted.\r\n        poolTokenAmount = IPangolinPair(poolToken).mint(address(this));\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to exit from a pool by forgoing all rewards.\r\n     * @param poolId The identifier of the pool to exit from.\r\n     * @param withdrawStake An option to forgo stake along with the rewards.\r\n     */\r\n    function _emergencyExit(uint256 poolId, bool withdrawStake) private {\r\n        // Create storage pointers for the pool and the user.\r\n        Pool storage pool = pools[poolId];\r\n        User storage user = pool.users[msg.sender];\r\n\r\n        // Ensure pool is ERC20 type.\r\n        _onlyERC20Pool(pool);\r\n\r\n        // Decrement lock count on compoundable pool if this pool was locking it.\r\n        _decrementLock(user, poolId);\r\n\r\n        // Create storage pointers for the value variables.\r\n        ValueVariables storage poolValueVariables = pool.valueVariables;\r\n        ValueVariables storage userValueVariables = user.valueVariables;\r\n\r\n        // Decrement the state variables pertaining to total value calculation.\r\n        uint104 balance = userValueVariables.balance;\r\n        if (balance == 0) revert NoEffect();\r\n        unchecked {\r\n            poolValueVariables.balance -= balance;\r\n            poolValueVariables.sumOfEntryTimes -= userValueVariables.sumOfEntryTimes;\r\n        }\r\n\r\n        // Simply delete the user information.\r\n        delete pools[poolId].users[msg.sender];\r\n\r\n        // Transfer stake from contract to user and emit the associated event.\r\n        if (withdrawStake) {\r\n            ERC20(pool.tokenOrRecipient).safeTransfer(msg.sender, balance);\r\n            emit Withdrawn(poolId, msg.sender, balance, 0);\r\n        }\r\n\r\n        // Do a low-level call for rewarder. If external function reverts, only the external\r\n        // contract reverts. To prevent DOS, this function (_emergencyExit) must never revert\r\n        // unless `balance == 0`. This can still return true if rewarder is not a contract.\r\n        address rewarder = address(pool.rewarder);\r\n        bytes memory rewarderData = abi.encodeWithSelector(\r\n            IRewarder.onReward.selector,\r\n            poolId,\r\n            msg.sender,\r\n            true,\r\n            0,\r\n            0\r\n        );\r\n        // Gas griefing is not possible as only 63/64 of the gas is forwarded per EIP-150.\r\n        assembly {\r\n            pop(call(gas(), rewarder, 0, add(rewarderData, 0x20), mload(rewarderData), 0, 0))\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private function increment the lock count on compoundable pool.\r\n     * @param harvestPoolId The identifier of the pool the user is harvesting the rewards from.\r\n     * @param compoundPoolId The identifier of the pool that the rewards will be compounded to.\r\n     */\r\n    function _incrementLock(uint256 harvestPoolId, uint256 compoundPoolId) private {\r\n        // Only increment lock if the user is not already locking the pool.\r\n        if (lockedPools[harvestPoolId][msg.sender].add(compoundPoolId))\r\n            ++pools[compoundPoolId].users[msg.sender].lockCount;\r\n\r\n        if (lockedPools[harvestPoolId][msg.sender].length() > MAX_LOCK_COUNT) revert OutOfBounds();\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to ensure compound pool is not locked and decrement the lock count.\r\n     * @param user The properties of a pool’s user that is decrementing the lock. The user\r\n     *        properties of the pool must belong to the caller.\r\n     * @param withdrawPoolId The identifier of the aforementioned pool.\r\n     */\r\n    function _decrementLock(User storage user, uint256 withdrawPoolId) private {\r\n        if (user.lockCount != 0) revert Locked();\r\n        for (\r\n            uint256 lastIndex = lockedPools[withdrawPoolId][msg.sender].length();\r\n            lastIndex != 0;\r\n        ) {\r\n            unchecked {\r\n                --lastIndex;\r\n            }\r\n            uint256 lockedPoolId = lockedPools[withdrawPoolId][msg.sender].at(lastIndex);\r\n            if (lockedPools[withdrawPoolId][msg.sender].remove(lockedPoolId)) {\r\n                --pools[lockedPoolId].users[msg.sender].lockCount; // must always execute\r\n            }\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to initialize a pool.\r\n     * @param tokenOrRecipient The address of the token when poolType is ERC_20, or the recipient\r\n     *                         address when poolType is RELAYER_POOL.\r\n     * @param poolType The type of the pool, which determines which actions can be performed on it.\r\n     */\r\n    function _initializePool(address tokenOrRecipient, PoolType poolType) private {\r\n        // Get the next `poolId` from `_poolsLength`, then increment `_poolsLength`.\r\n        uint256 poolId = _poolsLength++;\r\n        Pool storage pool = pools[poolId];\r\n\r\n        // Ensure address and pool type are not empty.\r\n        if (tokenOrRecipient == address(0) || poolType == PoolType.UNSET_POOL) revert NullInput();\r\n\r\n        // Assign the function arguments to the pool mapping then emit the associated event.\r\n        pool.tokenOrRecipient = tokenOrRecipient;\r\n        pool.poolType = poolType;\r\n\r\n        // Set rewardPair if token is a Pangolin pair which has rewardsToken as one of the reserves.\r\n        if (poolType == PoolType.ERC20_POOL) {\r\n            if (tokenOrRecipient.code.length == 0) revert InvalidToken();\r\n\r\n            // Gas griefing is not possible as only 63/64 of the gas is forwarded per EIP-150.\r\n            try safeExternalCalls.getReserveTokenAddresses(\r\n                tokenOrRecipient\r\n            ) returns (address token0, address token1) {\r\n                if (factory.getPair(token0, token1) == tokenOrRecipient) {\r\n                    if (token0 == address(rewardsToken)) {\r\n                        pool.rewardPair = token1;\r\n                    } else if (token1 == address(rewardsToken)) {\r\n                        pool.rewardPair = token0;\r\n                    }\r\n                }\r\n            } catch {}\r\n        }\r\n\r\n        emit PoolInitialized(poolId, tokenOrRecipient);\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to ensure pool is of ERC20_POOL type.\r\n     * @param pool The properties of the pool.\r\n     */\r\n    function _onlyERC20Pool(Pool storage pool) private view {\r\n        if (pool.poolType != PoolType.ERC20_POOL) revert InvalidType();\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to ensure pool is of RELAYER_POOL type.\r\n     * @param pool The properties of the pool.\r\n     */\r\n    function _onlyRelayerPool(Pool storage pool) private view {\r\n        if (pool.poolType != PoolType.RELAYER_POOL) revert InvalidType();\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to claim the pool’s pending rewards, and based on the claimed\r\n     *         amount update the two variables that govern the reward distribution.\r\n     * @param poolId The identifier of the pool to update the rewards of.\r\n     * @param pool The properties of the pool to update the rewards of.\r\n     * @return The amount of rewards claimed by the pool.\r\n     */\r\n    function _updateRewardSummations(uint256 poolId, Pool storage pool) private returns (uint256) {\r\n        // Get rewards, in the process updating the last update time.\r\n        uint256 rewards = _claim(poolId);\r\n\r\n        // Get incrementations based on the reward amount.\r\n        (\r\n            uint256 idealPositionIncrementation,\r\n            uint256 rewardPerValueIncrementation\r\n        ) = _getRewardSummationsIncrementations(pool, rewards);\r\n\r\n        // Increment the summations.\r\n        RewardSummations storage rewardSummationsStored = pool.rewardSummationsStored;\r\n        rewardSummationsStored.idealPosition += idealPositionIncrementation;\r\n        rewardSummationsStored.rewardPerValue += rewardPerValueIncrementation;\r\n\r\n        // Return the pending rewards claimed by the pool.\r\n        return rewards;\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to snapshot two rewards variables and record the timestamp.\r\n     * @param pool The storage pointer to the pool to record the snapshot from.\r\n     * @param user The storage pointer to the user to record the snapshot to.\r\n     */\r\n    function _snapshotRewardSummations(Pool storage pool, User storage user) private {\r\n        user.lastUpdate = uint48(block.timestamp);\r\n        user.rewardSummationsPaid = pool.rewardSummationsStored;\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to get the accrued rewards of a user in a pool.\r\n     * @dev The call to this function must only be made after the summations are updated\r\n     *      through `_updateRewardSummations()`.\r\n     * @param poolId The identifier of the pool.\r\n     * @param pool The properties of the pool.\r\n     * @param user The properties of the user.\r\n     * @return The accrued rewards of the position.\r\n     */\r\n    function _userPendingRewards(\r\n        uint256 poolId,\r\n        Pool storage pool,\r\n        User storage user\r\n    ) private view returns (uint256) {\r\n        // Get the change in summations since the position was last updated. When calculating\r\n        // the delta, do not increment `rewardSummationsStored`, as they had to be updated right\r\n        // before the execution of this function.\r\n        RewardSummations memory deltaRewardSummations = _getDeltaRewardSummations(\r\n            poolId,\r\n            pool,\r\n            user,\r\n            false\r\n        );\r\n\r\n        // Return the pending rewards of the user.\r\n        return _earned(deltaRewardSummations, user);\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to get the difference between a user’s summations\r\n     *         (‘paid’) and a pool’s summations (‘stored’).\r\n     * @param poolId The identifier of the pool.\r\n     * @param pool The pool to take the basis for stored summations.\r\n     * @param user The user for which to calculate the delta of summations.\r\n     * @param increment Whether to the incremented `rewardSummationsStored` based on the pending\r\n     *                  rewards of the pool.\r\n     * @return The difference between the `rewardSummationsStored` and `rewardSummationsPaid`.\r\n     */\r\n    function _getDeltaRewardSummations(\r\n        uint256 poolId,\r\n        Pool storage pool,\r\n        User storage user,\r\n        bool increment\r\n    ) private view returns (RewardSummations memory) {\r\n        // If user had no update to its summations yet, return zero.\r\n        if (user.lastUpdate == 0) return RewardSummations(0, 0);\r\n\r\n        // Create storage pointers to the user’s and pool’s summations.\r\n        RewardSummations storage rewardSummationsPaid = user.rewardSummationsPaid;\r\n        RewardSummations storage rewardSummationsStored = pool.rewardSummationsStored;\r\n\r\n        // If requested, return the incremented `rewardSummationsStored`.\r\n        if (increment) {\r\n            // Get pending rewards of the pool, without updating any state variables.\r\n            uint256 rewards = _poolPendingRewards(poolRewardInfos[poolId], increment);\r\n\r\n            // Get incrementations based on the reward amount.\r\n            (\r\n                uint256 idealPositionIncrementation,\r\n                uint256 rewardPerValueIncrementation\r\n            ) = _getRewardSummationsIncrementations(pool, rewards);\r\n\r\n            // Increment and return the incremented the summations.\r\n            return\r\n                RewardSummations(\r\n                    rewardSummationsStored.idealPosition +\r\n                        idealPositionIncrementation -\r\n                        rewardSummationsPaid.idealPosition,\r\n                    rewardSummationsStored.rewardPerValue +\r\n                        rewardPerValueIncrementation -\r\n                        rewardSummationsPaid.rewardPerValue\r\n                );\r\n        }\r\n\r\n        // Otherwise just return the the delta, ignoring any incrementation from pending rewards.\r\n        return\r\n            RewardSummations(\r\n                rewardSummationsStored.idealPosition - rewardSummationsPaid.idealPosition,\r\n                rewardSummationsStored.rewardPerValue - rewardSummationsPaid.rewardPerValue\r\n            );\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to calculate the `rewardSummationsStored` incrementations based\r\n     *         on the given reward amount.\r\n     * @param pool The pool to get the incrementations for.\r\n     * @param rewards The amount of rewards to use for calculating the incrementation.\r\n     * @return idealPositionIncrementation The incrementation to make to the idealPosition.\r\n     * @return rewardPerValueIncrementation The incrementation to make to the rewardPerValue.\r\n     */\r\n    function _getRewardSummationsIncrementations(Pool storage pool, uint256 rewards)\r\n        private\r\n        view\r\n        returns (uint256 idealPositionIncrementation, uint256 rewardPerValueIncrementation)\r\n    {\r\n        // Calculate the totalValue, then get the incrementations only if value is non-zero.\r\n        uint256 totalValue = _getValue(pool.valueVariables);\r\n        if (totalValue != 0) {\r\n            idealPositionIncrementation = (rewards * block.timestamp * PRECISION) / totalValue;\r\n            rewardPerValueIncrementation = (rewards * PRECISION) / totalValue;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to get the user or pool value.\r\n     * @dev Value refers to the sum of each `wei` of tokens’ staking durations. So if there are\r\n     *      10 tokens staked in the contract, and each one of them has been staked for 10 seconds,\r\n     *      then the value is 100 (`10 * 10`). To calculate value we use sumOfEntryTimes, which is\r\n     *      the sum of each `wei` of tokens’ staking-duration-starting timestamp. The formula\r\n     *      below is intuitive and simple to derive. We will leave proving it to the reader.\r\n     * @return The total value of a user or a pool.\r\n     */\r\n    function _getValue(ValueVariables storage valueVariables) private view returns (uint256) {\r\n        return block.timestamp * valueVariables.balance - valueVariables.sumOfEntryTimes;\r\n    }\r\n\r\n    /**\r\n     * @notice Low-level private view function to get the accrued rewards of a user.\r\n     * @param deltaRewardSummations The difference between the ‘stored’ and ‘paid’ summations.\r\n     * @param user The user of a pool to check the accrued rewards of.\r\n     * @return The accrued rewards of the position.\r\n     */\r\n    function _earned(RewardSummations memory deltaRewardSummations, User storage user)\r\n        private\r\n        view\r\n        returns (uint256)\r\n    {\r\n        // Refer to the Combined Position section of the Proofs on why and how this formula works.\r\n        uint256 userLastUpdate = user.lastUpdate;\r\n        return\r\n            userLastUpdate == 0\r\n                ? 0\r\n                : user.stashedRewards +\r\n                    ((((deltaRewardSummations.idealPosition -\r\n                        (deltaRewardSummations.rewardPerValue * userLastUpdate)) *\r\n                        user.valueVariables.balance) +\r\n                        (deltaRewardSummations.rewardPerValue * user.previousValues)) / PRECISION);\r\n    }\r\n}\r\n"},"contracts/staking-positions/PangoChefFunding.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\r\nimport \"@rari-capital/solmate/src/utils/SafeTransferLib.sol\";\r\nimport \"./GenericErrors.sol\";\r\n\r\n/**\r\n * @title PangoChef Funding\r\n * @author Shung for Pangolin\r\n * @notice A contract that is only the reward funding part of `PangoChef`.\r\n * @dev The pools of the inheriting contract must call `_claim()` to check their rewards since the\r\n *      last time they made the same call. Then, based on the reward amount, the pool shall\r\n *      determine the distribution to stakers. It uses the same algorithm as Synthetix’\r\n *      StakingRewards, but instead of distributing rewards to stakers based on their staked\r\n *      amount, it distributes rewards to pools based on arbitrary weights.\r\n */\r\nabstract contract PangoChefFunding is AccessControlEnumerable, GenericErrors {\r\n    using SafeTransferLib for ERC20;\r\n\r\n    struct PoolRewardInfo {\r\n        // Pool’s weight determines the proportion of the global rewards it will receive.\r\n        uint32 weight;\r\n        // Pool’s previous non-claimed rewards, stashed when its weight changes.\r\n        uint96 stashedRewards;\r\n        // `rewardPerWeightStored` snapshot as `rewardPerWeightPaid` when the pool gets updated.\r\n        uint128 rewardPerWeightPaid;\r\n    }\r\n\r\n    /**\r\n     * @notice The mapping from poolId to the struct that stores variables for determining pools’\r\n     * shares of the global rewards.\r\n     */\r\n    mapping(uint256 => PoolRewardInfo) public poolRewardInfos;\r\n\r\n    /** @notice The variable representing how much rewards are distributed per weight. It stores in fixed denominator. */\r\n    uint128 public rewardPerWeightStored;\r\n\r\n    /** @notice The timestamp when the last time the rewards were claimed by a pool. */\r\n    uint48 public lastUpdate;\r\n\r\n    /** @notice The rewards given out per second during a rewarding period. */\r\n    uint80 private _rewardRate;\r\n\r\n    /** @notice The timestamp when the current period will end or the latest period has ended. */\r\n    uint48 public periodFinish;\r\n\r\n    /** @notice The amount of total rewards added. */\r\n    uint96 public totalRewardAdded;\r\n\r\n    /** @notice The sum of all pools’ weights. */\r\n    uint32 public totalWeight;\r\n\r\n    /** @notice The duration of how long the rewards will last after `addReward` is called. */\r\n    uint256 public periodDuration = 1 days;\r\n\r\n    /** @notice The minimum duration a period can last. */\r\n    uint256 private constant MIN_PERIOD_DURATION = 2**16 + 1;\r\n\r\n    /** @notice The maximum duration a period can last. */\r\n    uint256 private constant MAX_PERIOD_DURATION = type(uint32).max;\r\n\r\n    /** @notice The fixed denominator used when storing `rewardPerWeight` variables. */\r\n    uint256 private constant WEIGHT_PRECISION = 2**32;\r\n\r\n    /** @notice The maximum amount for the sum of all pools’ weights. */\r\n    uint256 private constant MAX_TOTAL_WEIGHT = type(uint32).max;\r\n\r\n    /** @notice The maximum amount of rewards that can ever be distributed. */\r\n    uint256 private constant MAX_TOTAL_REWARD = type(uint96).max;\r\n\r\n    /** @notice The initial weight of pool zero, hence the initial total weight. */\r\n    uint32 private constant INITIAL_WEIGHT = 1_000;\r\n\r\n    /** @notice The privileged role that can call `addReward` function */\r\n    bytes32 private constant FUNDER_ROLE = keccak256(\"FUNDER_ROLE\");\r\n\r\n    /** @notice The privileged role that can change pool weights. */\r\n    bytes32 internal constant POOL_MANAGER_ROLE = keccak256(\"POOL_MANAGER_ROLE\");\r\n\r\n    /** @notice The reward token that is distributed to stakers. */\r\n    ERC20 public immutable rewardsToken;\r\n\r\n    /** @notice The event emitted when a period is manually cut short. */\r\n    event PeriodEnded();\r\n\r\n    /** @notice The event emitted when a period is started or extended through funding. */\r\n    event RewardAdded(uint256 reward);\r\n\r\n    /** @notice The event emitted when the period duration is changed. */\r\n    event PeriodDurationUpdated(uint256 newDuration);\r\n\r\n    /** @notice The event emitted when the weight of a pool changes. */\r\n    event WeightSet(uint256 indexed poolId, uint256 newWeight);\r\n\r\n    /**\r\n     * @notice Constructor to create PangoChefFunding contract.\r\n     * @param newRewardsToken The token that is distributed as reward.\r\n     * @param newAdmin The initial owner of the contract.\r\n     */\r\n    constructor(address newRewardsToken, address newAdmin) {\r\n        if (newAdmin == address(0)) revert NullInput();\r\n\r\n        // Give roles to newAdmin.\r\n        rewardsToken = ERC20(newRewardsToken);\r\n        _grantRole(DEFAULT_ADMIN_ROLE, newAdmin);\r\n        _grantRole(FUNDER_ROLE, newAdmin);\r\n        _grantRole(POOL_MANAGER_ROLE, newAdmin);\r\n\r\n        // Give 10x (arbitrary scale) weight to pool zero. totalWeight must never be zero.\r\n        poolRewardInfos[0].weight = INITIAL_WEIGHT;\r\n        totalWeight = INITIAL_WEIGHT;\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to change the reward period duration.\r\n     * @param newDuration The duration the feature periods will last.\r\n     */\r\n    function setPeriodDuration(uint256 newDuration) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        // Ensure there is no ongoing period.\r\n        if (periodFinish > block.timestamp) revert TooEarly();\r\n\r\n        // Ensure the new period is within the bounds.\r\n        if (newDuration < MIN_PERIOD_DURATION) revert OutOfBounds();\r\n        if (newDuration > MAX_PERIOD_DURATION) revert OutOfBounds();\r\n\r\n        // Assign the new duration to the state variable, and emit the associated event.\r\n        periodDuration = newDuration;\r\n        emit PeriodDurationUpdated(newDuration);\r\n    }\r\n\r\n    /** @notice External restricted function to end the period and withdraw leftover rewards. */\r\n    function endPeriod() external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        // Ensure period has not already ended.\r\n        if (block.timestamp >= periodFinish) revert TooLate();\r\n\r\n        unchecked {\r\n            // Get the rewards remaining to be distributed.\r\n            uint256 leftover = (periodFinish - block.timestamp) * _rewardRate;\r\n\r\n            // Decrement totalRewardAdded by the amount to be withdrawn.\r\n            totalRewardAdded -= uint96(leftover);\r\n\r\n            // Update periodFinish.\r\n            periodFinish = uint48(block.timestamp);\r\n\r\n            // Transfer leftover tokens from the contract to the caller.\r\n            rewardsToken.safeTransfer(msg.sender, leftover);\r\n            emit PeriodEnded();\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to fund the contract.\r\n     * @param amount The amount of reward tokens to add to the contract.\r\n     */\r\n    function addReward(uint256 amount) external onlyRole(FUNDER_ROLE) {\r\n        _updateRewardPerWeightStored();\r\n\r\n        // For efficiency, move the periodDuration to memory.\r\n        uint256 tmpPeriodDuration = periodDuration;\r\n\r\n        // Ensure amount fits 96 bits.\r\n        if (amount > MAX_TOTAL_REWARD) revert Overflow();\r\n\r\n        // Increment totalRewardAdded, reverting on overflow to ensure it fits 96 bits.\r\n        totalRewardAdded += uint96(amount);\r\n\r\n        // Update the _rewardRate, ensuring leftover rewards from the ongoing period are included.\r\n        uint256 newRewardRate;\r\n        if (block.timestamp >= periodFinish) {\r\n            assembly {\r\n                newRewardRate := div(amount, tmpPeriodDuration)\r\n            }\r\n        } else {\r\n            unchecked {\r\n                uint256 leftover = (periodFinish - block.timestamp) * _rewardRate;\r\n                assembly {\r\n                    newRewardRate := div(add(amount, leftover), tmpPeriodDuration)\r\n                }\r\n            }\r\n        }\r\n\r\n        // Ensure sufficient amount is supplied hence reward rate is non-zero.\r\n        if (newRewardRate == 0) revert NoEffect();\r\n\r\n        // Assign the newRewardRate back to storage.\r\n        // MAX_TOTAL_REWARD / MIN_PERIOD_DURATION fits 80 bits.\r\n        _rewardRate = uint80(newRewardRate);\r\n\r\n        // Update periodFinish.\r\n        periodFinish = uint48(block.timestamp + tmpPeriodDuration);\r\n\r\n        // Transfer reward tokens from the caller to the contract.\r\n        rewardsToken.safeTransferFrom(msg.sender, address(this), amount);\r\n        emit RewardAdded(amount);\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to change the weights of pools.\r\n     * @dev It requires that pool is created by the parent contract.\r\n     * @param poolIds The identifiers of the pools to change the weights of.\r\n     * @param weights The new weights to set the respective pools to.\r\n     */\r\n    function setWeights(uint256[] calldata poolIds, uint32[] calldata weights)\r\n        external\r\n        onlyRole(POOL_MANAGER_ROLE)\r\n    {\r\n        _updateRewardPerWeightStored();\r\n\r\n        // Get the supplied array lengths and ensure they are equal.\r\n        uint256 length = poolIds.length;\r\n        if (length != weights.length) revert MismatchedArrayLengths();\r\n\r\n        // Get `poolsLength` to ensure in the loop that pools for a `poolId` exists.\r\n        uint256 tmpPoolsLength = poolsLength();\r\n\r\n        // Loop through all the supplied pools, and calculate total weight change.\r\n        int256 weightChange;\r\n        for (uint256 i = 0; i < length; ) {\r\n            uint256 poolId = poolIds[i];\r\n            uint256 weight = weights[i];\r\n\r\n            // Ensure pool is initialized by the parent contract.\r\n            if (poolId >= tmpPoolsLength) revert OutOfBounds();\r\n\r\n            // Create storage pointer for the pool.\r\n            PoolRewardInfo storage pool = poolRewardInfos[poolId];\r\n\r\n            // Ensure weight is changed.\r\n            uint256 oldWeight = pool.weight;\r\n            if (weight == oldWeight) revert NoEffect();\r\n\r\n            // Update the weightChange local variable.\r\n            weightChange += (int256(weight) - int256(oldWeight));\r\n\r\n            // Stash the rewards of the pool since last update, and update the pool weight.\r\n            pool.stashedRewards = uint96(_updateRewardPerWeightPaid(pool));\r\n            pool.weight = uint32(weight);\r\n            emit WeightSet(poolId, weight);\r\n\r\n            // Counter cannot realistically overflow.\r\n            unchecked {\r\n                ++i;\r\n            }\r\n        }\r\n\r\n        // Ensure weight change is reasonable, then update the totalWeight state variable.\r\n        int256 newTotalWeight = int256(uint256(totalWeight)) + weightChange;\r\n        if (newTotalWeight <= 0) revert OutOfBounds();\r\n        if (uint256(newTotalWeight) > MAX_TOTAL_WEIGHT) revert OutOfBounds();\r\n        totalWeight = uint32(uint256(newTotalWeight));\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get the reward rate of a pool\r\n     * @param poolId The identifier of the pool to check the reward rate of.\r\n     * @return The rewards per second of the pool.\r\n     */\r\n    function poolRewardRate(uint256 poolId) public view returns (uint256) {\r\n        // Return the rewardRate of the pool.\r\n        uint256 poolWeight = poolRewardInfos[poolId].weight;\r\n        return poolWeight == 0 ? 0 : (rewardRate() * poolWeight) / totalWeight;\r\n    }\r\n\r\n    /**\r\n     * @notice Public view function to get the global reward rate.\r\n     * @return The rewards per second distributed to all pools combined.\r\n     */\r\n    function rewardRate() public view returns (uint256) {\r\n        return periodFinish < block.timestamp ? 0 : _rewardRate;\r\n    }\r\n\r\n    /**\r\n     * @notice Public view function to return the number of pools created by parent contract.\r\n     * @dev This function must be overridden by the parent contract.\r\n     * @return The number of pools created.\r\n     */\r\n    function poolsLength() public view virtual returns (uint256) {\r\n        return 0;\r\n    }\r\n\r\n    /**\r\n     * @notice Internal function to get the amount of reward tokens to distribute to a pool since\r\n     *         the last call for the same pool was made to this function.\r\n     * @param poolId The identifier of the pool to claim the rewards of.\r\n     * @return reward The amount of reward tokens that is marked for distributing to the pool.\r\n     */\r\n    function _claim(uint256 poolId) internal returns (uint256 reward) {\r\n        _updateRewardPerWeightStored();\r\n        PoolRewardInfo storage pool = poolRewardInfos[poolId];\r\n        reward = _updateRewardPerWeightPaid(pool);\r\n        pool.stashedRewards = 0;\r\n    }\r\n\r\n    /**\r\n     * @notice Internal view function to get the pending rewards of a pool.\r\n     * @param pool The pool to get its pending rewards.\r\n     * @param increment A flag to choose whether use incremented `rewardPerWeightStored` or not.\r\n     * @return rewards The amount of rewards earned by the pool since the last update of the pool.\r\n     */\r\n    function _poolPendingRewards(PoolRewardInfo storage pool, bool increment)\r\n        internal\r\n        view\r\n        returns (uint256 rewards)\r\n    {\r\n        unchecked {\r\n            uint256 rewardPerWeight = increment\r\n                ? rewardPerWeightStored + _getRewardPerWeightIncrementation()\r\n                : rewardPerWeightStored;\r\n            uint256 rewardPerWeightPayable = rewardPerWeight - pool.rewardPerWeightPaid;\r\n            rewards =\r\n                pool.stashedRewards + ((pool.weight * rewardPerWeightPayable) / WEIGHT_PRECISION);\r\n            assert(rewards <= type(uint96).max);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to snapshot the `rewardPerWeightStored` for the pool.\r\n     * @param pool The pool to update its `rewardPerWeightPaid`.\r\n     * @return The amount of reward tokens that is marked for distributing to the pool.\r\n     */\r\n    function _updateRewardPerWeightPaid(PoolRewardInfo storage pool) private returns (uint256) {\r\n        uint256 rewards = _poolPendingRewards(pool, false);\r\n        pool.rewardPerWeightPaid = rewardPerWeightStored;\r\n        return rewards;\r\n    }\r\n\r\n    /** @notice Private function to increment the `rewardPerWeightStored`. */\r\n    function _updateRewardPerWeightStored() private {\r\n        rewardPerWeightStored += _getRewardPerWeightIncrementation();\r\n        lastUpdate = uint48(block.timestamp);\r\n    }\r\n\r\n    /**\r\n     * @notice Internal view function to get how much to increment `rewardPerWeightStored`.\r\n     * @return incrementation The incrementation amount for the `rewardPerWeightStored`.\r\n     */\r\n    function _getRewardPerWeightIncrementation() private view returns (uint128 incrementation) {\r\n        uint256 globalPendingRewards = _globalPendingRewards();\r\n        uint256 tmpTotalWeight = totalWeight;\r\n\r\n        // totalWeight should not be null. But in the case it is, use assembly to return zero.\r\n        assembly {\r\n            incrementation := div(mul(globalPendingRewards, WEIGHT_PRECISION), tmpTotalWeight)\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Internal view function to get the amount of accumulated reward tokens since last\r\n     *         update time.\r\n     * @return The amount of reward tokens that has been accumulated since last update time.\r\n     */\r\n    function _globalPendingRewards() private view returns (uint256) {\r\n        // For efficiency, move periodFinish timestamp to memory.\r\n        uint256 tmpPeriodFinish = periodFinish;\r\n\r\n        // Get end of the reward distribution period or block timestamp, whichever is less.\r\n        // `lastTimeRewardApplicable` is the ending timestamp of the period we are calculating\r\n        // the total rewards for.\r\n        uint256 lastTimeRewardApplicable = tmpPeriodFinish < block.timestamp\r\n            ? tmpPeriodFinish\r\n            : block.timestamp;\r\n\r\n        // For efficiency, stash lastUpdate timestamp in memory. `lastUpdate` is the beginning\r\n        // timestamp of the period we are calculating the total rewards for.\r\n        uint256 tmpLastUpdate = lastUpdate;\r\n\r\n        // If the reward period is a positive range, return the rewards by multiplying the duration\r\n        // by reward rate.\r\n        if (lastTimeRewardApplicable > tmpLastUpdate) {\r\n            unchecked {\r\n                return (lastTimeRewardApplicable - tmpLastUpdate) * _rewardRate;\r\n            }\r\n        }\r\n\r\n        // If the reward period is an invalid or a null range, return zero.\r\n        return 0;\r\n    }\r\n}\r\n"},"contracts/staking-positions/PangolinStakingPositions.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\";\r\nimport \"./PangolinStakingPositionsFunding.sol\";\r\n\r\ninterface ITokenMetadata {\r\n    function tokenURI(PangolinStakingPositions pangolinStakingPositions, uint256 tokenId)\r\n        external\r\n        view\r\n        returns (string memory);\r\n}\r\n\r\n/**\r\n * @title Pangolin Staking Positions\r\n * @author shung for Pangolin\r\n *\r\n * @notice Pangolin Staking Positions is a unique staking solution. It utilizes the Sunshine and\r\n *         Rainbows (SAR) algorithm, which distributes rewards as a function of balance and staking\r\n *         duration. See README and the Proofs paper to see how SAR works. In this implementation,\r\n *         the staking token is the same as the reward token, and staking information is recorded\r\n *         as positions where each position is an NFT.\r\n *\r\n * @dev SAR Algorithm:\r\n\r\n *      SAR allocates a user (or position) the following proportion of any given rewards:\r\n *\r\n *      `(balance_position / balance_total) * (stakingDuration_position /\r\n *      stakingDuration_average)`.\r\n *\r\n *      Staking duration is how long a token has been staked. The staking duration of a token\r\n *      starts when it is staked, restarts when its rewards are harvested, and ends when it is\r\n *      withdrawn.\r\n *\r\n *      We can refer to `balance * stakingDuration` as `value`. Based on this definition, the\r\n *      formula above can be simplified to `value_position / value_total`.\r\n *\r\n *      Although this looks similar to just `balance_position / balance_total`, unlike balance, the\r\n *      value of every position is constantly changing as a function of time. Therefore, we cannot\r\n *      simply use the standard staking algorithm (i.e.: Synthetix StakingRewards) for calculating\r\n *      rewards of users in constant time. A new algorithm had to be invented for this reason.\r\n *\r\n *      To understand the algorithm, one must read the Proofs. Then\r\n *      `_getRewardSummationsIncrementations()` and `_earned()` functions will make sense.\r\n *\r\n * @dev Assumptions (not checked to be true):\r\n *      - `rewardsToken` reverts or returns false on invalid transfers,\r\n *      - `block.timestamp * totalRewardAdded` fits 128 bits,\r\n *      - `block.timestamp` is never greater than `2**40 - 1 - 2**32`.\r\n *\r\n * @dev Limitations (checked to be true):\r\n *      - `totalStaked` fits 96 bits.\r\n *      - `totalRewardAdded` fits 96 bits.\r\n */\r\ncontract PangolinStakingPositions is ERC721Enumerable, PangolinStakingPositionsFunding {\r\n    struct ValueVariables {\r\n        // The amount of tokens staked in the position or the contract.\r\n        uint96 balance;\r\n        // The sum of each staked token in the position or contract multiplied by its update time.\r\n        uint160 sumOfEntryTimes;\r\n    }\r\n\r\n    struct RewardSummations {\r\n        // Imaginary rewards accrued by a position with `lastUpdate == 0 && balance == 1`. At the\r\n        // end of each interval, the ideal position has a staking duration of `block.timestamp`.\r\n        // Since its balance is one, its “value” equals its staking duration. So, its value\r\n        // is also `block.timestamp` , and for a given reward at an interval, the ideal position\r\n        // accrues `reward * block.timestamp / totalValue`. Refer to `Ideal Position` section of\r\n        // the Proofs on why we need this variable.\r\n        uint256 idealPosition;\r\n        // The sum of `reward/totalValue` of each interval. `totalValue` is the sum of all staked\r\n        // tokens multiplied by their respective staking durations.  On every update, the\r\n        // `rewardPerValue` is incremented by rewards given during that interval divided by the\r\n        // total value, which is average staking duration multiplied by total staked. See Proofs.\r\n        uint256 rewardPerValue;\r\n    }\r\n\r\n    struct Position {\r\n        // Two variables that determine the share of rewards a position receives.\r\n        ValueVariables valueVariables;\r\n        // Summations snapshotted on the last update of the position.\r\n        RewardSummations rewardSummationsPaid;\r\n        // The sum of values (`balance * (block.timestamp - lastUpdate)`) of previous intervals. It\r\n        // is only updated accordingly when more tokens are staked into an existing position. Other\r\n        // calls than staking (i.e.: harvest and withdraw) must reset the value to zero. Correctly\r\n        // updating this property allows for the staking duration of the existing balance of the\r\n        // position to not restart when staking more tokens to the position. So it allows combining\r\n        // together multiple positions with different staking durations. Refer to the `Combined\r\n        // Positions` section of the Proofs on why this works.\r\n        uint160 previousValues;\r\n        // The last time the position was updated.\r\n        uint48 lastUpdate;\r\n        // The last time the position’s staking duration was restarted (withdraw or harvest).\r\n        // This is used to prevent frontrunning when buying the NFT. It is not part of core algo.\r\n        uint48 lastDevaluation;\r\n    }\r\n\r\n    /** @notice The mapping of position identifiers to their properties. */\r\n    mapping(uint256 => Position) public positions;\r\n\r\n    /** @notice The contract that constructs and returns tokenURIs for position tokens. */\r\n    ITokenMetadata public tokenMetadata;\r\n\r\n    /** @notice The struct holding the totalStaked and sumOfEntryTimes. */\r\n    ValueVariables public totalValueVariables;\r\n\r\n    /** @notice The variables that govern the reward distribution. */\r\n    RewardSummations public rewardSummationsStored;\r\n\r\n    /**\r\n     * @notice The duration during NFT approvals are ignored after an update that devalues it.\r\n     * @dev This is a hacky solution to prevent frontrunning NFT sales. This is a general issue\r\n     *      with all NFTs with mutable state, because NFT marketplaces do not have a standard\r\n     *      method for “slippage control”. This allows a malicious actor utilizing MEV to\r\n     *      devalue the NFT token in the same block as someone buying the NFT. For example, if a\r\n     *      position has 5 PNG tokens, and someone makes a transaction to buy its NFT, the owner\r\n     *      of the position can withdraw all PNG in the position, resulting in buyer to buy a\r\n     *      position with 0 balance instead of 5. By using `approvalPauseDuration` we simply\r\n     *      disable transfers made by non-owners (i.e.: marketplace contract) for a period.\r\n     */\r\n    uint256 public approvalPauseDuration = 2 hours;\r\n\r\n    /**\r\n     * @notice The total number of positions ever opened.\r\n     * @dev This is simply a counter for determining the next position identifier.\r\n     */\r\n    uint256 private _positionsLength;\r\n\r\n    /** @notice The fixed denominator used for storing summations. */\r\n    uint256 private constant PRECISION = 2**128;\r\n\r\n    /** @notice The maximum approvalPauseDuration that can be set by the admin. */\r\n    uint256 private constant MAX_APPROVAL_PAUSE_DURATION = 2 days;\r\n\r\n    /** @notice The event emitted when withdrawing or harvesting from a position. */\r\n    event Withdrawn(uint256 indexed positionId, uint256 indexed amount, uint256 indexed reward);\r\n\r\n    /** @notice The event emitted when staking to, minting, or compounding a position. */\r\n    event Staked(uint256 indexed positionId, uint256 indexed amount, uint256 indexed reward);\r\n\r\n    /** @notice The event emitted when admin changes `approvalPauseDuration`. */\r\n    event PauseDurationSet(uint256 newApprovalPauseDuration);\r\n\r\n    /** @notice The event emitted when admin changes `tokenMetadata`. */\r\n    event TokenMetadataSet(ITokenMetadata newTokenMetadata);\r\n\r\n    modifier onlyOwner(uint256 positionId) {\r\n        if (ownerOf(positionId) != msg.sender) revert UnprivilegedCaller();\r\n        _;\r\n    }\r\n\r\n    /**\r\n     * @notice Constructor to create and initialize PangolinStakingPositions contract.\r\n     * @param newRewardsToken The token used for both for staking and reward.\r\n     * @param newAdmin The initial owner of the contract.\r\n     * @param newTokenMetadata The contract that constructs tokenURIs for position NFTs.\r\n     */\r\n    constructor(\r\n        address newRewardsToken,\r\n        address newAdmin,\r\n        ITokenMetadata newTokenMetadata\r\n    )\r\n        ERC721(\"Pangolin Staking Positions\", \"PNG-POS\")\r\n        PangolinStakingPositionsFunding(newRewardsToken, newAdmin)\r\n    {\r\n        tokenMetadata = newTokenMetadata;\r\n    }\r\n\r\n    /**\r\n     * @notice External function to open a new position to the caller.\r\n     * @param amount The amount of tokens to transfer from the caller to the position.\r\n     * @param positionId The identifier of the newly created position.\r\n     */\r\n    function mint(uint256 amount) external returns (uint256 positionId) {\r\n        // Update summations. Note that rewards accumulated when there is no one staking will\r\n        // be lost. But this is only a small risk of value loss when the contract first goes live.\r\n        _updateRewardSummations();\r\n\r\n        // Get the new positionId and mint the associated NFT.\r\n        positionId = ++_positionsLength;\r\n        _mint(msg.sender, positionId);\r\n\r\n        // Use a private function to handle the logic pertaining to depositing into a position.\r\n        _stake(positionId, amount);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to deposit tokens to an existing position.\r\n     * @param amount The amount of tokens to deposit into the position.\r\n     * @param positionId The identifier of the position to deposit the funds into.\r\n     */\r\n    function stake(uint256 positionId, uint256 amount) external {\r\n        // Update summations. Note that rewards accumulated when there is no one staking will\r\n        // be lost. But this is only a small risk of value loss when the contract first goes live.\r\n        _updateRewardSummations();\r\n\r\n        // Use a private function to handle the logic pertaining to depositing into a position.\r\n        _stake(positionId, amount);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to claim the accrued rewards of a position.\r\n     * @param positionId The identifier of the position to claim the rewards of.\r\n     */\r\n    function harvest(uint256 positionId) external {\r\n        // Update summations that govern the reward distribution.\r\n        _updateRewardSummations();\r\n\r\n        // Use a private function to handle the logic pertaining to harvesting rewards.\r\n        // `_withdraw` with zero input amount works as harvesting.\r\n        _withdraw(positionId, 0);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to deposit the accrued rewards of a position back to itself.\r\n     * @param positionId The identifier of the position to compound the rewards of.\r\n     */\r\n    function compound(uint256 positionId) external {\r\n        // Update summations that govern the reward distribution.\r\n        _updateRewardSummations();\r\n\r\n        // Use a private function to handle the logic pertaining to compounding rewards.\r\n        // `_stake` with zero input amount works as compounding.\r\n        _stake(positionId, 0);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to withdraw given amount of staked balance, plus all the accrued\r\n     *         rewards from the position.\r\n     * @param positionId The identifier of the position to withdraw the balance.\r\n     * @param amount The amount of staked tokens, excluding rewards, to withdraw from the position.\r\n     */\r\n    function withdraw(uint256 positionId, uint256 amount) external {\r\n        // Update summations that govern the reward distribution.\r\n        _updateRewardSummations();\r\n\r\n        // Use a private function to handle the logic pertaining to withdrawing the staked balance.\r\n        _withdraw(positionId, amount);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to close a position by burning the associated NFT.\r\n     * @param positionId The identifier of the position to close.\r\n     */\r\n    function burn(uint256 positionId) external {\r\n        // To prevent mistakes, ensure only valueless positions can be burned.\r\n        if (positions[positionId].valueVariables.balance != 0) revert InvalidToken();\r\n\r\n        // Burn the associated NFT and delete all position properties.\r\n        _burn(positionId);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to exit from a position by forgoing rewards.\r\n     * @param positionId The identifier of the position to exit.\r\n     */\r\n    function emergencyExit(uint256 positionId) external {\r\n        // Do not update summations, because a faulty rewarding algorithm might be the\r\n        // culprit locking the staked balance in the contract. Nonetheless, for consistency, use a\r\n        // private function to handle the logic pertaining to emergency exit.\r\n        _emergencyExit(positionId);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to stake to or compound multiple positions.\r\n     * @dev This saves gas by updating summations only once.\r\n     * @param positionIds An array of identifiers of positions to stake to.\r\n     * @param amounts An array of amount of tokens to stake to the corresponding positions.\r\n     */\r\n    function multiStake(uint256[] calldata positionIds, uint256[] calldata amounts) external {\r\n        // Update summations only once. Note that rewards accumulated when there is no one\r\n        // staking will be lost. But this is only a small risk of value loss if a reward period\r\n        // during no one staking is followed by staking.\r\n        _updateRewardSummations();\r\n\r\n        // Ensure array lengths match.\r\n        uint256 length = positionIds.length;\r\n        if (length != amounts.length) revert MismatchedArrayLengths();\r\n\r\n        for (uint256 i = 0; i < length; ) {\r\n            _stake(positionIds[i], amounts[i]);\r\n\r\n            // Counter realistically cannot overflow.\r\n            unchecked {\r\n                ++i;\r\n            }\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice External function to withdraw or harvest from multiple positions.\r\n     * @dev This saves gas by updating summations only once.\r\n     * @param positionIds An array of identifiers of positions to withdraw from.\r\n     * @param amounts An array of amount of tokens to withdraw from corresponding positions.\r\n     */\r\n    function multiWithdraw(uint256[] calldata positionIds, uint256[] calldata amounts) external {\r\n        // Update summations only once.\r\n        _updateRewardSummations();\r\n\r\n        // Ensure array lengths match.\r\n        uint256 length = positionIds.length;\r\n        if (length != amounts.length) revert MismatchedArrayLengths();\r\n\r\n        for (uint256 i = 0; i < length; ) {\r\n            _withdraw(positionIds[i], amounts[i]);\r\n\r\n            // Counter realistically cannot overflow.\r\n            unchecked {\r\n                ++i;\r\n            }\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice External only-owner function to set how long the token approvals should be ignored.\r\n     * @param newApprovalPauseDuration The new duration during which token approvals are ignored.\r\n     */\r\n    function setApprovalPauseDuration(uint256 newApprovalPauseDuration)\r\n        external\r\n        onlyRole(DEFAULT_ADMIN_ROLE)\r\n    {\r\n        // Ensure new approvalPauseDuration is less than the max allowed.\r\n        if (newApprovalPauseDuration > MAX_APPROVAL_PAUSE_DURATION) revert OutOfBounds();\r\n\r\n        // Update the state variable and emit an event.\r\n        approvalPauseDuration = newApprovalPauseDuration;\r\n        emit PauseDurationSet(newApprovalPauseDuration);\r\n    }\r\n\r\n    /**\r\n     * @notice External only-owner function to change the contract that constructs tokenURIs.\r\n     * @param newTokenMetadata The addresses of the new contract address that constructs tokenURIs.\r\n     */\r\n    function setTokenMetadata(ITokenMetadata newTokenMetadata)\r\n        external\r\n        onlyRole(DEFAULT_ADMIN_ROLE)\r\n    {\r\n        tokenMetadata = newTokenMetadata;\r\n        emit TokenMetadataSet(newTokenMetadata);\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get the reward rate of a position.\r\n     * @dev In SAR, positions have different APRs, unlike other staking algorithms. This external\r\n     *      function clearly demonstrates how the SAR algorithm is supposed to distribute the\r\n     *      rewards based on “value”, which is balance times staking duration. This external\r\n     *      function can be considered as a specification.\r\n     * @param positionId The identifier of the position to check the reward rate of.\r\n     * @return The rewards per second of the position.\r\n     */\r\n    function positionRewardRate(uint256 positionId) external view returns (uint256) {\r\n        // Get totalValue and positionValue.\r\n        uint256 totalValue = _getValue(totalValueVariables);\r\n        uint256 positionValue = _getValue(positions[positionId].valueVariables);\r\n\r\n        // Return the rewardRate of the position. Do not revert if totalValue is zero.\r\n        return positionValue == 0 ? 0 : (rewardRate() * positionValue) / totalValue;\r\n    }\r\n\r\n    /**\r\n     * @notice External view function to get the accrued rewards of a position. It takes the\r\n     *         pending rewards since lastUpdate into consideration.\r\n     * @param positionId The identifier of the position to check the accrued rewards of.\r\n     * @return The amount of rewards that have been accrued in the position.\r\n     */\r\n    function positionPendingRewards(uint256 positionId) external view returns (uint256) {\r\n        // Create a storage pointer for the position.\r\n        Position storage position = positions[positionId];\r\n\r\n        // Get the delta of summations. Use incremented `rewardSummationsStored` based on the\r\n        // pending rewards.\r\n        RewardSummations memory deltaRewardSummations = _getDeltaRewardSummations(position, true);\r\n\r\n        // Return the pending rewards of the position based on the difference in rewardSummations.\r\n        return _earned(deltaRewardSummations, position);\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to deposit tokens to an existing position.\r\n     * @param amount The amount of tokens to deposit into the position.\r\n     * @param positionId The identifier of the position to deposit the funds into.\r\n     * @dev Specifications:\r\n     *      - Deposit `amount` tokens to the position associated with `positionId`,\r\n     *      - Make the staking duration of `amount` restart,\r\n     *      - Claim accrued `reward` tokens of the position,\r\n     *      - Deposit `reward` tokens back into the position,\r\n     *      - Make the staking duration of `reward` tokens start from zero.\r\n     *      - Do not make the staking duration of the existing `balance` restart,\r\n     */\r\n    function _stake(uint256 positionId, uint256 amount) private onlyOwner(positionId) {\r\n        // Create a storage pointer for the position.\r\n        Position storage position = positions[positionId];\r\n\r\n        // Get rewards accrued in the position.\r\n        uint256 reward = _positionPendingRewards(position);\r\n\r\n        // Include reward amount in total amount to be staked.\r\n        uint256 totalAmount = amount + reward;\r\n        if (totalAmount == 0) revert NoEffect();\r\n\r\n        // Get the new total staked amount and ensure it fits 96 bits.\r\n        uint256 newTotalStaked = totalValueVariables.balance + totalAmount;\r\n        if (newTotalStaked > type(uint96).max) revert Overflow();\r\n\r\n        unchecked {\r\n            // Increment the state variables pertaining to total value calculation.\r\n            uint160 addedEntryTimes = uint160(block.timestamp * totalAmount);\r\n            totalValueVariables.sumOfEntryTimes += addedEntryTimes;\r\n            totalValueVariables.balance = uint96(newTotalStaked);\r\n\r\n            // Increment the position properties pertaining to position value calculation.\r\n            ValueVariables storage positionValueVariables = position.valueVariables;\r\n            uint256 oldBalance = positionValueVariables.balance;\r\n            positionValueVariables.balance = uint96(oldBalance + totalAmount);\r\n            positionValueVariables.sumOfEntryTimes += addedEntryTimes;\r\n\r\n            // Increment the previousValues.\r\n            position.previousValues += uint160(\r\n                oldBalance * (block.timestamp - position.lastUpdate)\r\n            );\r\n        }\r\n\r\n        // Snapshot the lastUpdate and summations.\r\n        _snapshotRewardSummations(position);\r\n\r\n        // Transfer amount tokens from user to the contract, and emit the associated event.\r\n        if (amount != 0) _transferFromCaller(amount);\r\n        emit Staked(positionId, amount, reward);\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to withdraw given amount of staked balance, plus all the accrued\r\n     *         rewards from the position. Also acts as harvest when input amount is zero.\r\n     * @param positionId The identifier of the position to withdraw the balance.\r\n     * @param amount The amount of staked tokens, excluding rewards, to withdraw from the position.\r\n     * @dev Specifications:\r\n     *      - Claim accrued `reward` tokens of the position,\r\n     *      - Send `reward` tokens from the contract to the position owner,\r\n     *      - Send `amount` tokens from the contract to the position owner,\r\n     *      - Make the staking duration of the remaining `balance` restart,\r\n     *      - Ignore NFT spending approvals for a duration set by the admin.\r\n     */\r\n    function _withdraw(uint256 positionId, uint256 amount) private onlyOwner(positionId) {\r\n        // Create a storage pointer for the position.\r\n        Position storage position = positions[positionId];\r\n\r\n        // Get position balance and ensure sufficient balance exists.\r\n        uint256 oldBalance = position.valueVariables.balance;\r\n        if (amount > oldBalance) revert InsufficientBalance();\r\n\r\n        // Get accrued rewards of the position and get totalAmount to withdraw (incl. rewards).\r\n        uint256 reward = _positionPendingRewards(position);\r\n        uint256 totalAmount = amount + reward;\r\n        if (totalAmount == 0) revert NoEffect();\r\n\r\n        unchecked {\r\n            // Get the remaining balance in the position.\r\n            uint256 remaining = oldBalance - amount;\r\n\r\n            // Decrement the withdrawn amount from totalStaked.\r\n            totalValueVariables.balance -= uint96(amount);\r\n\r\n            // Update sumOfEntryTimes.\r\n            uint256 newEntryTimes = block.timestamp * remaining;\r\n            ValueVariables storage positionValueVariables = position.valueVariables;\r\n            totalValueVariables.sumOfEntryTimes = uint160(\r\n                totalValueVariables.sumOfEntryTimes +\r\n                    newEntryTimes -\r\n                    positionValueVariables.sumOfEntryTimes\r\n            );\r\n\r\n            // Decrement the withdrawn amount from position balance and update position entryTimes.\r\n            positionValueVariables.balance = uint96(remaining);\r\n            positionValueVariables.sumOfEntryTimes = uint160(newEntryTimes);\r\n        }\r\n\r\n        // Reset the previous values, as we have restarted the staking duration.\r\n        position.previousValues = 0;\r\n\r\n        // Update lastDevaluation, as resetting the staking duration devalues the position.\r\n        position.lastDevaluation = uint48(block.timestamp);\r\n\r\n        // Snapshot the lastUpdate and summations.\r\n        _snapshotRewardSummations(position);\r\n\r\n        // Transfer withdrawn amount and rewards to the user, and emit the associated event.\r\n        _transferToCaller(totalAmount);\r\n        emit Withdrawn(positionId, amount, reward);\r\n    }\r\n\r\n    /**\r\n     * @notice External function to exit from a position by forgoing rewards.\r\n     * @param positionId The identifier of the position to exit from.\r\n     * @dev Specifications:\r\n     *      - Burn the NFT associated with `positionId`,\r\n     *      - Close the position associated with `positionId`,\r\n     *      - Send `balance` tokens of the position to the user wallet,\r\n     *      - Ignore `reward` tokens, making them permanently irrecoverable.\r\n     */\r\n    function _emergencyExit(uint256 positionId) private onlyOwner(positionId) {\r\n        // Move the queried position to memory.\r\n        ValueVariables memory positionValueVariables = positions[positionId].valueVariables;\r\n\r\n        // Decrement the state variables pertaining to total value calculation.\r\n        uint96 balance = positionValueVariables.balance;\r\n        unchecked {\r\n            totalValueVariables.balance -= balance;\r\n            totalValueVariables.sumOfEntryTimes -= positionValueVariables.sumOfEntryTimes;\r\n        }\r\n\r\n        // Simply destroy the position.\r\n        _burn(positionId);\r\n\r\n        // Transfer only the staked balance from the contract to user.\r\n        _transferToCaller(balance);\r\n        emit Withdrawn(positionId, balance, 0);\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to claim the total pending rewards, and based on the claimed amount\r\n     *         update the two variables that govern the reward distribution.\r\n     */\r\n    function _updateRewardSummations() private {\r\n        // Get rewards, in the process updating the last update time.\r\n        uint256 rewards = _claim();\r\n\r\n        // Get incrementations based on the reward amount.\r\n        (\r\n            uint256 idealPositionIncrementation,\r\n            uint256 rewardPerValueIncrementation\r\n        ) = _getRewardSummationsIncrementations(rewards);\r\n\r\n        // Increment the summations.\r\n        rewardSummationsStored.idealPosition += idealPositionIncrementation;\r\n        rewardSummationsStored.rewardPerValue += rewardPerValueIncrementation;\r\n    }\r\n\r\n    /**\r\n     * @notice Private function to snapshot two rewards variables and record the timestamp.\r\n     * @param position The storage pointer to the position to record the snapshot for.\r\n     */\r\n    function _snapshotRewardSummations(Position storage position) private {\r\n        position.lastUpdate = uint48(block.timestamp);\r\n        position.rewardSummationsPaid = rewardSummationsStored;\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to get the accrued rewards of a position.\r\n     * @dev The call to this function must only be made after the summations are updated\r\n     *      through `_updateRewardSummations()`.\r\n     * @param position The properties of the position.\r\n     * @return The accrued rewards of the position.\r\n     */\r\n    function _positionPendingRewards(Position storage position) private view returns (uint256) {\r\n        // Get the change in summations since the position was last updated. When calculating\r\n        // the delta, do not increment `rewardSummationsStored`, as they had to be updated anyways.\r\n        RewardSummations memory deltaRewardSummations = _getDeltaRewardSummations(position, false);\r\n\r\n        // Return the pending rewards of the position.\r\n        return _earned(deltaRewardSummations, position);\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to get the difference between a position’s summations\r\n     *         (‘paid’) and global summations (‘stored’).\r\n     * @param position The position for which to calculate the delta of summations.\r\n     * @param increment Whether to the incremented `rewardSummationsStored` based on the pending\r\n     *                  rewards of the contract.\r\n     * @return The difference between the `rewardSummationsStored` and `rewardSummationsPaid`.\r\n     */\r\n    function _getDeltaRewardSummations(Position storage position, bool increment)\r\n        private\r\n        view\r\n        returns (RewardSummations memory)\r\n    {\r\n        // If position had no update to its summations yet, return zero.\r\n        if (position.lastUpdate == 0) return RewardSummations(0, 0);\r\n\r\n        // Create storage pointer to the position’s summations.\r\n        RewardSummations storage rewardSummationsPaid = position.rewardSummationsPaid;\r\n\r\n        // If requested, return the incremented `rewardSummationsStored`.\r\n        if (increment) {\r\n            // Get pending rewards, without updating the `lastUpdate`.\r\n            uint256 rewards = _pendingRewards();\r\n\r\n            // Get incrementations based on the reward amount.\r\n            (\r\n                uint256 idealPositionIncrementation,\r\n                uint256 rewardPerValueIncrementation\r\n            ) = _getRewardSummationsIncrementations(rewards);\r\n\r\n            // Increment and return the incremented the summations.\r\n            return\r\n                RewardSummations(\r\n                    rewardSummationsStored.idealPosition +\r\n                        idealPositionIncrementation -\r\n                        rewardSummationsPaid.idealPosition,\r\n                    rewardSummationsStored.rewardPerValue +\r\n                        rewardPerValueIncrementation -\r\n                        rewardSummationsPaid.rewardPerValue\r\n                );\r\n        }\r\n\r\n        // Otherwise just return the the delta, ignoring any incrementation from pending rewards.\r\n        return\r\n            RewardSummations(\r\n                rewardSummationsStored.idealPosition - rewardSummationsPaid.idealPosition,\r\n                rewardSummationsStored.rewardPerValue - rewardSummationsPaid.rewardPerValue\r\n            );\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to calculate the `rewardSummationsStored` incrementations\r\n     *         based on the given reward amount.\r\n     * @param rewards The amount of rewards to use for calculating the incrementation.\r\n     * @return idealPositionIncrementation The incrementation to make to the idealPosition.\r\n     * @return rewardPerValueIncrementation The incrementation to make to the rewardPerValue.\r\n     */\r\n    function _getRewardSummationsIncrementations(uint256 rewards)\r\n        private\r\n        view\r\n        returns (uint256 idealPositionIncrementation, uint256 rewardPerValueIncrementation)\r\n    {\r\n        // Calculate the totalValue, then get the incrementations only if value is non-zero.\r\n        uint256 totalValue = _getValue(totalValueVariables);\r\n        if (totalValue != 0) {\r\n            idealPositionIncrementation = (rewards * block.timestamp * PRECISION) / totalValue;\r\n            rewardPerValueIncrementation = (rewards * PRECISION) / totalValue;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice Private view function to get the position or contract value.\r\n     * @dev Value refers to the sum of each `wei` of tokens’ staking durations. So if there are\r\n     *      10 tokens staked in the contract, and each one of them has been staked for 10 seconds,\r\n     *      then the value is 100 (`10 * 10`). To calculate value we use sumOfEntryTimes, which is\r\n     *      the sum of each `wei` of tokens’ staking-duration-starting timestamp. The formula\r\n     *      below is intuitive and simple to derive. We will leave proving it to the reader.\r\n     * @return The total value of contract or a position.\r\n     */\r\n    function _getValue(ValueVariables storage valueVariables) private view returns (uint256) {\r\n        return block.timestamp * valueVariables.balance - valueVariables.sumOfEntryTimes;\r\n    }\r\n\r\n    /**\r\n     * @notice Low-level private view function to get the accrued rewards of a position.\r\n     * @param deltaRewardSummations The difference between the ‘stored’ and ‘paid’ summations.\r\n     * @param position The position to check the accrued rewards of.\r\n     * @return The accrued rewards of the position.\r\n     */\r\n    function _earned(RewardSummations memory deltaRewardSummations, Position storage position)\r\n        private\r\n        view\r\n        returns (uint256)\r\n    {\r\n        // Refer to the Combined Position section of the Proofs on why and how this formula works.\r\n        return\r\n            position.lastUpdate == 0\r\n                ? 0\r\n                : (((deltaRewardSummations.idealPosition -\r\n                    (deltaRewardSummations.rewardPerValue * position.lastUpdate)) *\r\n                    position.valueVariables.balance) +\r\n                    (deltaRewardSummations.rewardPerValue * position.previousValues)) / PRECISION;\r\n    }\r\n\r\n    /* *********************** */\r\n    /* OVERRIDES and NFT STUFF */\r\n    /* *********************** */\r\n\r\n    function tokensOfOwnerByIndex(\r\n        address owner,\r\n        uint256 from,\r\n        uint256 to\r\n    ) external view returns (uint256[] memory) {\r\n        if (from > to) revert OutOfBounds();\r\n\r\n        uint256 length = to - from + 1;\r\n        uint256[] memory tokens = new uint256[](length);\r\n        while (from <= to) {\r\n            tokens[from] = tokenOfOwnerByIndex(owner, from);\r\n            unchecked {\r\n                ++from;\r\n            }\r\n        }\r\n        return tokens;\r\n    }\r\n\r\n    function _burn(uint256 tokenId) internal override onlyOwner(tokenId) {\r\n        // Delete position when burning the NFT.\r\n        delete positions[tokenId];\r\n        super._burn(tokenId);\r\n    }\r\n\r\n    function _beforeTokenTransfer(\r\n        address from,\r\n        address to,\r\n        uint256 tokenId,\r\n        uint256 batchSize\r\n    ) internal override {\r\n        // Ignore approvals for a period following a destructive action.\r\n        if (msg.sender != from) {\r\n            uint256 pausedUntil = positions[tokenId].lastDevaluation + approvalPauseDuration;\r\n            if (block.timestamp <= pausedUntil) revert TooEarly();\r\n        }\r\n\r\n        super._beforeTokenTransfer(from, to, tokenId, batchSize);\r\n    }\r\n\r\n    function tokenURI(uint256 tokenId) public view override returns (string memory) {\r\n        ERC721._requireMinted(tokenId);\r\n\r\n        // Use external contract to handle token metadata.\r\n        return tokenMetadata.tokenURI(this, tokenId);\r\n    }\r\n\r\n    function supportsInterface(bytes4 interfaceId)\r\n        public\r\n        view\r\n        override(ERC721Enumerable, AccessControlEnumerable)\r\n        returns (bool)\r\n    {\r\n        return\r\n            AccessControlEnumerable.supportsInterface(interfaceId) ||\r\n            ERC721Enumerable.supportsInterface(interfaceId);\r\n    }\r\n}\r\n"},"contracts/staking-positions/PangolinStakingPositionsFunding.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./GenericErrors.sol\";\r\n\r\n/**\r\n * @title Pangolin Staking Positions Funding\r\n * @author Shung for Pangolin\r\n * @notice A contract that is only the rewards part of `StakingRewards`.\r\n * @dev The inheriting contract must call `_claim()` to check its reward since the last time the\r\n *      same call was made. Then, based on the reward amount, the inheriting contract shall\r\n *      determine the distribution to stakers. The purpose of this architecture is to separate the\r\n *      logic of funding from the staking and reward distribution.\r\n */\r\nabstract contract PangolinStakingPositionsFunding is AccessControlEnumerable, GenericErrors {\r\n    /** @notice The rewards given out per second during a reward period. */\r\n    uint80 private _rewardRate;\r\n\r\n    /** @notice The timestamp when the last time the rewards were claimed by the child contract. */\r\n    uint40 public lastUpdate;\r\n\r\n    /** @notice The timestamp when the current period will end or the latest period has ended. */\r\n    uint40 public periodFinish;\r\n\r\n    /** @notice The amount of total rewards added. */\r\n    uint96 public totalRewardAdded;\r\n\r\n    /** @notice The duration for how long the rewards will last after `addReward` is called. */\r\n    uint256 public periodDuration = 14 days;\r\n\r\n    /** @notice The reward token that is distributed to stakers. */\r\n    IERC20 public immutable rewardsToken;\r\n\r\n    /** @dev The minimum duration a period can last. */\r\n    uint256 private constant MIN_PERIOD_DURATION = 2**16 + 1;\r\n\r\n    /** @dev The maximum duration a period can last. */\r\n    uint256 private constant MAX_PERIOD_DURATION = 2**32;\r\n\r\n    /** @dev The maximum amount of rewards that can ever be distributed. */\r\n    uint256 private constant MAX_TOTAL_REWARD = type(uint96).max;\r\n\r\n    /** @dev The privileged role that can call `addReward` function */\r\n    bytes32 private constant FUNDER_ROLE = keccak256(\"FUNDER_ROLE\");\r\n\r\n    /** @notice The event emitted when a period is manually cut short. */\r\n    event PeriodEnded();\r\n\r\n    /** @notice The event emitted when a period is started or extended through funding. */\r\n    event RewardAdded(uint256 reward);\r\n\r\n    /** @notice The event emitted when the period duration is changed. */\r\n    event PeriodDurationUpdated(uint256 newDuration);\r\n\r\n    /**\r\n     * @notice Constructor to create PangolinStakingPositionsFunding contract.\r\n     * @param newRewardsToken The token used for both for staking and reward.\r\n     * @param newAdmin The initial owner of the contract.\r\n     */\r\n    constructor(address newRewardsToken, address newAdmin) {\r\n        if (newAdmin == address(0)) revert NullInput();\r\n        if (newRewardsToken.code.length == 0) revert InvalidToken();\r\n\r\n        rewardsToken = IERC20(newRewardsToken);\r\n        _grantRole(DEFAULT_ADMIN_ROLE, newAdmin);\r\n        _grantRole(FUNDER_ROLE, newAdmin);\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to change the reward period duration.\r\n     * @param newDuration The duration the feature periods will last.\r\n     */\r\n    function setPeriodDuration(uint256 newDuration) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        // Ensure there is no ongoing period.\r\n        if (periodFinish > block.timestamp) revert TooEarly();\r\n\r\n        // Ensure the new period is within the bounds.\r\n        if (newDuration < MIN_PERIOD_DURATION) revert OutOfBounds();\r\n        if (newDuration > MAX_PERIOD_DURATION) revert OutOfBounds();\r\n\r\n        // Assign the new duration to the state variable, and emit the associated event.\r\n        periodDuration = newDuration;\r\n        emit PeriodDurationUpdated(newDuration);\r\n    }\r\n\r\n    /** @notice External restricted function to end the period and withdraw leftover rewards. */\r\n    function endPeriod() external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        // For efficiency, move periodFinish to memory.\r\n        uint256 tmpPeriodFinish = periodFinish;\r\n\r\n        // Ensure period has not already ended.\r\n        if (block.timestamp >= tmpPeriodFinish) revert TooLate();\r\n\r\n        unchecked {\r\n            // Get the rewards remaining to be distributed.\r\n            uint256 leftover = (tmpPeriodFinish - block.timestamp) * _rewardRate;\r\n\r\n            // Decrement totalRewardAdded by the amount to be withdrawn.\r\n            totalRewardAdded -= uint96(leftover);\r\n\r\n            // Update periodFinish.\r\n            periodFinish = uint40(block.timestamp);\r\n\r\n            // Transfer leftover tokens from the contract to the caller.\r\n            _transferToCaller(leftover);\r\n            emit PeriodEnded();\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @notice External restricted function to fund the contract.\r\n     * @param amount The amount of reward tokens to add to the contract.\r\n     */\r\n    function addReward(uint256 amount) external onlyRole(FUNDER_ROLE) {\r\n        // For efficiency, move periodDuration to memory.\r\n        uint256 tmpPeriodDuration = periodDuration;\r\n\r\n        // Ensure amount fits 96 bits.\r\n        if (amount > MAX_TOTAL_REWARD) revert Overflow();\r\n\r\n        // Increment totalRewardAdded, reverting on overflow to ensure it fits 96 bits.\r\n        totalRewardAdded += uint96(amount);\r\n\r\n        // Update the _rewardRate, ensuring leftover rewards from the ongoing period are included.\r\n        // Note that we are using `lastUpdate` instead of `block.timestamp`, otherwise we would\r\n        // have to “stash” the rewards from `lastUpdate` to `block.timestamp` in storage. We\r\n        // do not want to stash the rewards to keep the cost low. However, using this method means\r\n        // that `_pendingRewards()` will change, hence a user might “lose” rewards earned since\r\n        // `lastUpdate`. It is not a very big deal as the `lastUpdate` is likely to be updated\r\n        // frequently, but just something to acknowledge.\r\n        uint256 newRewardRate;\r\n        if (lastUpdate >= periodFinish) {\r\n            // Use assembly because periodDuration can never be zero.\r\n            assembly {\r\n                newRewardRate := div(amount, tmpPeriodDuration)\r\n            }\r\n        } else {\r\n            unchecked {\r\n                uint256 leftover = (uint256(periodFinish) - lastUpdate) * _rewardRate;\r\n                assembly {\r\n                    newRewardRate := div(add(amount, leftover), tmpPeriodDuration)\r\n                }\r\n            }\r\n        }\r\n\r\n        // Ensure sufficient amount is supplied hence reward rate is non-zero.\r\n        if (newRewardRate == 0) revert NoEffect();\r\n\r\n        // Assign the newRewardRate back to storage.\r\n        // MAX_TOTAL_REWARD / MIN_PERIOD_DURATION fits 80 bits.\r\n        _rewardRate = uint80(newRewardRate);\r\n\r\n        // Update lastUpdate and periodFinish.\r\n        unchecked {\r\n            lastUpdate = uint40(block.timestamp);\r\n            periodFinish = uint40(block.timestamp + tmpPeriodDuration);\r\n        }\r\n\r\n        // Transfer reward tokens from the caller to the contract.\r\n        _transferFromCaller(amount);\r\n        emit RewardAdded(amount);\r\n    }\r\n\r\n    /**\r\n     * @notice Public view function to return the total rewards distributed per second.\r\n     * @return The reward per second being distributed.\r\n     */\r\n    function rewardRate() public view returns (uint256) {\r\n        return periodFinish < block.timestamp ? 0 : _rewardRate;\r\n    }\r\n\r\n    /**\r\n     * @notice Internal function to get the amount of reward tokens to distribute since last call\r\n     *         to this function.\r\n     * @return reward The amount of reward tokens that is marked for distribution.\r\n     */\r\n    function _claim() internal returns (uint256 reward) {\r\n        // Get the pending reward amount since last update was last updated.\r\n        reward = _pendingRewards();\r\n\r\n        // Update last update time.\r\n        lastUpdate = uint40(block.timestamp);\r\n    }\r\n\r\n    /**\r\n     * @notice Internal function to transfer `rewardsToken` from the contract to caller.\r\n     * @param amount The amount of tokens to transfer.\r\n     */\r\n    function _transferToCaller(uint256 amount) internal {\r\n        if (!rewardsToken.transfer(msg.sender, amount)) revert FailedTransfer();\r\n    }\r\n\r\n    /**\r\n     * @notice Internal function to transfer `rewardsToken` from caller to the contract.\r\n     * @param amount The amount of tokens to transfer.\r\n     */\r\n    function _transferFromCaller(uint256 amount) internal {\r\n        if (!rewardsToken.transferFrom(msg.sender, address(this), amount)) revert FailedTransfer();\r\n    }\r\n\r\n    /**\r\n     * @notice Internal view function to get the amount of accumulated reward tokens since last\r\n     *         update time.\r\n     * @return rewards The amount of reward tokens that has been accumulated since last update.\r\n     */\r\n    function _pendingRewards() internal view returns (uint256 rewards) {\r\n        // For efficiency, move periodFinish timestamp to memory.\r\n        uint256 tmpPeriodFinish = periodFinish;\r\n\r\n        // Get end of the reward distribution period or block timestamp, whichever is less.\r\n        // `lastTimeRewardApplicable` is the ending timestamp of the period we are calculating\r\n        // the total rewards for.\r\n        uint256 lastTimeRewardApplicable = tmpPeriodFinish < block.timestamp\r\n            ? tmpPeriodFinish\r\n            : block.timestamp;\r\n\r\n        // For efficiency, move lastUpdate timestamp to memory. `lastUpdate` is the beginning\r\n        // timestamp of the period we are calculating the total rewards for.\r\n        uint256 tmpLastUpdate = lastUpdate;\r\n\r\n        // If the reward period is a positive range, return the rewards by multiplying the duration\r\n        // by reward rate.\r\n        if (lastTimeRewardApplicable > tmpLastUpdate) {\r\n            unchecked {\r\n                rewards = (lastTimeRewardApplicable - tmpLastUpdate) * _rewardRate;\r\n            }\r\n        }\r\n\r\n        assert(rewards <= type(uint96).max);\r\n    }\r\n}\r\n"},"contracts/staking-positions/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: AGPLv3\r\npragma solidity ^0.8.0;\r\n\r\n/**\r\n * @title ReentrancyGuard\r\n * @author Shung for Pangolin\r\n * @author Modified from Solmate\r\n *         (https://github.com/Rari-Capital/solmate/blob/main/src/utils/ReentrancyGuard.sol)\r\n */\r\nabstract contract ReentrancyGuard {\r\n    uint256 private locked = 1;\r\n\r\n    error Reentrancy();\r\n\r\n    function _notEntered() internal view {\r\n        if (locked == 2) revert Reentrancy();\r\n    }\r\n\r\n    modifier nonReentrant() {\r\n        _notEntered();\r\n        locked = 2;\r\n        _;\r\n        locked = 1;\r\n    }\r\n\r\n    modifier notEntered() {\r\n        _notEntered();\r\n        _;\r\n    }\r\n}\r\n"},"contracts/staking-positions/RewarderViaMultiplierForPangoChefOnSongbird.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.15;\r\n\r\nimport \"./PangoChef.sol\";\r\n\r\ncontract RewarderViaMultiplierForPangoChefOnSongbird is IRewarder {\r\n    using SafeTransferLib for ERC20;\r\n\r\n    ERC20[] public rewardTokens;\r\n    uint256[] public rewardMultipliers;\r\n    address private immutable CHEF_V2;\r\n    uint256 private immutable BASE_REWARD_TOKEN_DIVISOR;\r\n\r\n    // @dev Ceiling on additional rewards to prevent a self-inflicted DOS via gas limitations when claim\r\n    uint256 private constant MAX_REWARDS = 100;\r\n\r\n    /// @dev Additional reward quantities that might be owed to users trying to claim after funds have been exhausted\r\n    mapping(address => mapping(uint256 => uint256)) private rewardDebts;\r\n\r\n    /// @dev Previous sum of entry times to check if staking duration was reset.\r\n    mapping(uint256 => mapping(address => PangoChef.ValueVariables)) private usersValueVariables;\r\n\r\n    /// @param _rewardTokens The address of each additional reward token\r\n    /// @param _rewardMultipliers The amount of each additional reward token to be claimable for every 1 base reward (PNG) being claimed\r\n    /// @param _baseRewardTokenDecimals The decimal precision of the base reward (PNG) being emitted\r\n    /// @param _chefV2 The address of the chef contract where the base reward (PNG) is being emitted\r\n    /// @notice Each reward multiplier should have a precision matching that individual token\r\n    constructor (\r\n        ERC20[] memory _rewardTokens,\r\n        uint256[] memory _rewardMultipliers,\r\n        uint256 _baseRewardTokenDecimals,\r\n        address _chefV2\r\n    ) {\r\n        require(\r\n            _rewardTokens.length > 0\r\n            && _rewardTokens.length <= MAX_REWARDS\r\n            && _rewardTokens.length == _rewardMultipliers.length,\r\n            \"RewarderViaMultiplier::Invalid input lengths\"\r\n        );\r\n\r\n        require(\r\n            _baseRewardTokenDecimals <= 77,\r\n            \"RewarderViaMultiplier::Invalid base reward token decimals\"\r\n        );\r\n\r\n        require(\r\n            _chefV2 != address(0),\r\n            \"RewarderViaMultiplier::Invalid chef address\"\r\n        );\r\n\r\n        for (uint256 i; i < _rewardTokens.length; ++i) {\r\n            require(address(_rewardTokens[i]).code.length != 0, \"RewarderViaMultiplier::Cannot reward zero address\");\r\n            require(_rewardMultipliers[i] > 0, \"RewarderViaMultiplier::Invalid multiplier\");\r\n        }\r\n\r\n        rewardTokens = _rewardTokens;\r\n        rewardMultipliers = _rewardMultipliers;\r\n        BASE_REWARD_TOKEN_DIVISOR = 10 ** _baseRewardTokenDecimals;\r\n        CHEF_V2 = _chefV2;\r\n    }\r\n\r\n    function onReward(\r\n        uint256 pid,\r\n        address user,\r\n        bool destructiveAction,\r\n        uint256 rewardAmount,\r\n        uint256 newBalance\r\n    ) onlyMCV2 override external {\r\n\r\n        // In Songbird PangoChef, `compoundToPoolZero` calls `onReward` with `destructiveAction == true`. This is invalid.\r\n        // The following block detects the improper `destructiveAction == true`, and overrides it with `false`.\r\n        PangoChef.ValueVariables memory newUserValueVariables = PangoChef(CHEF_V2).getUser(pid, user).valueVariables;\r\n        PangoChef.ValueVariables memory previousUserValueVariables = usersValueVariables[pid][user];\r\n        usersValueVariables[pid][user] = newUserValueVariables;\r\n        if (destructiveAction && newBalance != 0) {\r\n            bool equalBalance = newUserValueVariables.balance == previousUserValueVariables.balance;\r\n            bool equalSumOfEntryTimes = newUserValueVariables.sumOfEntryTimes == previousUserValueVariables.sumOfEntryTimes;\r\n            if (previousUserValueVariables.balance == 0 || (equalBalance && equalSumOfEntryTimes)) destructiveAction = false;\r\n        }\r\n\r\n        for (uint256 i; i < rewardTokens.length; ++i) {\r\n            uint256 pendingReward = rewardDebts[user][i] + (rewardAmount * rewardMultipliers[i] / BASE_REWARD_TOKEN_DIVISOR);\r\n            uint256 rewardBal = rewardTokens[i].balanceOf(address(this));\r\n            if (!destructiveAction) {\r\n                rewardDebts[user][i] = pendingReward;\r\n            } else if (pendingReward > rewardBal) {\r\n                rewardDebts[user][i] = pendingReward - rewardBal;\r\n                rewardTokens[i].safeTransfer(user, rewardBal);\r\n            } else {\r\n                rewardDebts[user][i] = 0;\r\n                rewardTokens[i].safeTransfer(user, pendingReward);\r\n            }\r\n        }\r\n    }\r\n\r\n    /// @notice Shows pending tokens that can be currently claimed\r\n    function pendingTokens(uint256, address user, uint256 rewardAmount) external view returns (ERC20[] memory tokens, uint256[] memory amounts) {\r\n        amounts = new uint256[](rewardTokens.length);\r\n        for (uint256 i; i < rewardTokens.length; ++i) {\r\n            uint256 pendingReward = rewardDebts[user][i] + (rewardAmount * rewardMultipliers[i] / BASE_REWARD_TOKEN_DIVISOR);\r\n            uint256 rewardBal = rewardTokens[i].balanceOf(address(this));\r\n            if (pendingReward > rewardBal) {\r\n                amounts[i] = rewardBal;\r\n            } else {\r\n                amounts[i] = pendingReward;\r\n            }\r\n        }\r\n        return (rewardTokens, amounts);\r\n    }\r\n\r\n    /// @notice Shows pending tokens including rewards accrued after the funding has been exhausted\r\n    /// @notice these extra rewards could be claimed if more funding is added to the contract\r\n    function pendingTokensDebt(uint256, address user, uint256 rewardAmount) external view returns (ERC20[] memory tokens, uint256[] memory amounts) {\r\n        amounts = new uint256[](rewardTokens.length);\r\n        for (uint256 i; i < rewardTokens.length; ++i) {\r\n            uint256 pendingReward = rewardDebts[user][i] + (rewardAmount * rewardMultipliers[i] / BASE_REWARD_TOKEN_DIVISOR);\r\n            amounts[i] = pendingReward;\r\n        }\r\n        return (rewardTokens, amounts);\r\n    }\r\n\r\n    /// @notice Overloaded getter for easy access to the reward tokens\r\n    function getRewardTokens() external view returns (ERC20[] memory) {\r\n        return rewardTokens;\r\n    }\r\n\r\n    /// @notice Overloaded getter for easy access to the reward multipliers\r\n    function getRewardMultipliers() external view returns (uint256[] memory) {\r\n        return rewardMultipliers;\r\n    }\r\n\r\n    modifier onlyMCV2 {\r\n        require(\r\n            msg.sender == CHEF_V2,\r\n            \"Only MCV2 can call this function.\"\r\n        );\r\n        _;\r\n    }\r\n\r\n}\r\n"},"contracts/staking-positions/RewardFundingForwarder.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\n\r\ninterface IPangoChef {\r\n    function rewardsToken() external view returns (address);\r\n\r\n    function addReward(uint256 amount) external;\r\n\r\n    function hasRole(bytes32 role, address account) external view returns (bool);\r\n}\r\n\r\n/**\r\n * @author shung for Pangolin\r\n * @notice\r\n *\r\n * Funder -> RewardFundingForwarder -> PangoChef\r\n *               OR\r\n * Funder -> RewardFundingForwarder -> PangolinStakingPositions\r\n *\r\n * Funder is any contract that was written for Synthetix' StakingRewards, or for MiniChef.\r\n * RewardFundingForwarder provides compatibility for these old funding contracts.\r\n */\r\ncontract RewardFundingForwarder {\r\n    IPangoChef public immutable pangoChef;\r\n    address public immutable rewardsToken;\r\n    bytes32 private constant FUNDER_ROLE = keccak256(\"FUNDER_ROLE\");\r\n\r\n    modifier onlyFunder() {\r\n        require(pangoChef.hasRole(FUNDER_ROLE, msg.sender), \"unauthorized\");\r\n        _;\r\n    }\r\n\r\n    constructor(address newPangoChef) {\r\n        require(newPangoChef.code.length != 0, \"empty contract\");\r\n        address newRewardsToken = IPangoChef(newPangoChef).rewardsToken();\r\n        IERC20(newRewardsToken).approve(newPangoChef, type(uint256).max);\r\n        pangoChef = IPangoChef(newPangoChef);\r\n        rewardsToken = newRewardsToken;\r\n    }\r\n\r\n    function notifyRewardAmount(uint256 amount) external onlyFunder {\r\n        pangoChef.addReward(amount);\r\n    }\r\n\r\n    function fundRewards(uint256 amount, uint256) external {\r\n        addReward(amount);\r\n    }\r\n\r\n    function addReward(uint256 amount) public onlyFunder {\r\n        IERC20(rewardsToken).transferFrom(msg.sender, address(this), amount);\r\n        pangoChef.addReward(amount);\r\n    }\r\n}\r\n"},"contracts/staking-positions/TokenMetadata.sol":{"content":"// SPDX-License-Identifier: GPLv3\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/utils/Base64.sol\";\r\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\r\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\r\n\r\ninterface IPangolinStakingPositions {\r\n    struct ValueVariables {\r\n        uint96 balance;\r\n        uint160 sumOfEntryTimes;\r\n    }\r\n\r\n    struct RewardSummations {\r\n        uint256 idealPosition;\r\n        uint256 rewardPerValue;\r\n    }\r\n\r\n    struct Position {\r\n        ValueVariables valueVariables;\r\n        RewardSummations rewardSummationsPaid;\r\n        uint160 previousValues;\r\n        uint48 lastUpdate;\r\n        uint48 lastDevaluation;\r\n    }\r\n\r\n    function positions(uint256 positionId) external view returns (Position memory);\r\n\r\n    function positionPendingRewards(uint256 positionId) external view returns (uint256);\r\n\r\n    function positionRewardRate(uint256 positionId) external view returns (uint256);\r\n}\r\n\r\ncontract TokenMetadata is AccessControlEnumerable {\r\n    using Strings for uint256;\r\n\r\n    bytes32 public constant METADATA_ROLE = keccak256(\"METADATA_ROLE\");\r\n    uint256[10] private exponents = [ 0, 2_718, 7_389, 20_086, 54_598, 148_413, 403_429, 1096_633, 2980_958, 8103_084 ];\r\n    uint256 private constant DENOMINATOR = 1_000;\r\n\r\n    bytes1 public thousandSeparator = \",\";\r\n    string public description =\r\n        \"This NFT perpetually receives share from the revenue generated by Pangolin. The share of the position is positively correlated to its staked balance and staking duration.\";\r\n    string public externalUri = \"https://app.pangolin.exchange/#/stakev2\";\r\n    string public regularFontUri =\r\n        \"https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecg.woff2\";\r\n    string public boldFontUri =\r\n        \"https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2\";\r\n    string public imageBaseUri = \"https://static.pangolin.exchange/panguardian/\";\r\n    string public imageExtension = \".png\";\r\n    string public tokenSymbol;\r\n\r\n    constructor(address newAdmin, string memory newTokenSymbol) {\r\n        require(newAdmin != address(0));\r\n        _grantRole(DEFAULT_ADMIN_ROLE, newAdmin);\r\n        _grantRole(METADATA_ROLE, newAdmin);\r\n        require(bytes(newTokenSymbol).length <= 32);\r\n        tokenSymbol = newTokenSymbol;\r\n    }\r\n\r\n    function setThousandSeparator(bytes1 newThousandSeparator) external onlyRole(METADATA_ROLE) {\r\n        thousandSeparator = newThousandSeparator;\r\n    }\r\n\r\n    function setDescription(string memory newDescription) external onlyRole(METADATA_ROLE) {\r\n        description = newDescription;\r\n    }\r\n\r\n    function setExternalUri(string memory newExternalUri) external onlyRole(METADATA_ROLE) {\r\n        externalUri = newExternalUri;\r\n    }\r\n\r\n    function setFont(string memory newRegularFontUri, string memory newBoldFontUri)\r\n        external\r\n        onlyRole(METADATA_ROLE)\r\n    {\r\n        regularFontUri = newRegularFontUri;\r\n        boldFontUri = newBoldFontUri;\r\n    }\r\n\r\n    function setImage(string memory newImageBaseUri, string memory newImageExtension)\r\n        external\r\n        onlyRole(METADATA_ROLE)\r\n    {\r\n        imageBaseUri = newImageBaseUri;\r\n        imageExtension = newImageExtension;\r\n    }\r\n\r\n    function tokenURI(IPangolinStakingPositions pangolinStakingPositions, uint256 positionId)\r\n        external\r\n        view\r\n        returns (string memory)\r\n    {\r\n        IPangolinStakingPositions.ValueVariables\r\n            memory positionValueVariables = pangolinStakingPositions\r\n                .positions(positionId)\r\n                .valueVariables;\r\n\r\n        uint256 balance = positionValueVariables.balance;\r\n        uint256 entryTime = balance == 0 ? block.timestamp : positionValueVariables.sumOfEntryTimes / balance;\r\n        uint256 apr = balance == 0\r\n            ? 0\r\n            : (pangolinStakingPositions.positionRewardRate(positionId) * 365 days * 100) / balance;\r\n        uint256 earned = parseEther(pangolinStakingPositions.positionPendingRewards(positionId));\r\n        balance = parseEther(balance);\r\n\r\n        uint256 balanceLevel = getExponent(balance, 404); // level 6 is reached at ~60k PNG.\r\n        uint256 durationLevel = getExponent((block.timestamp - entryTime), 2 hours + 40 minutes); // level 10 is reached in ~900 days.\r\n\r\n        string memory svg;\r\n        {\r\n            bytes memory svgPart1 = abi.encodePacked(\r\n                '<svg width=\"663\" height=\"1080\" viewbox=\"0 0 663 1080\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"> <style type=\"text/css\"> @font-face { font-family: \"Poppins\"; src: url(',\r\n                regularFontUri,\r\n                ') format(\"woff2\"); } @font-face { font-family: \"Poppins\"; font-weight: bold; src: url(',\r\n                boldFontUri,\r\n                ') format(\"woff2\"); } text { color:#1a1a1a; font-family:Poppins, sans-serif; font-size:24.73px; } .data_span { font-weight:bold; font-size:37.09px } .text_bottom .info_span { font-size: 28.81px } .text_bottom .data_span { font-size: 43.21px } </style> <image preserveAspectRatio=\"xMidYMid slice\" width=\"100%\" height=\"100%\" xlink:href=\"'\r\n            );\r\n            bytes memory svgPart2 = abi.encodePacked(\r\n                getImageUri(balanceLevel, durationLevel),\r\n                '\"></image> <text x=\"27.3\" y=\"54.9\" text-anchor=\"start\" class=\"text_top\"><tspan class=\"info_span\">&#36;',\r\n                tokenSymbol,\r\n                ': </tspan><tspan class=\"data_span\">',\r\n                addThousandSeparator(balance),\r\n                '</tspan></text> <text x=\"635.7\" y=\"54.9\" text-anchor=\"end\" class=\"text_top\"><tspan class=\"info_span\">APR: </tspan><tspan class=\"data_span\">',\r\n                addThousandSeparator(apr),\r\n                '%</tspan></text> <text x=\"331.5\" y=\"1001.97\" text-anchor=\"middle\" class=\"text_bottom\"><tspan class=\"info_span\">EARNED: </tspan><tspan class=\"data_span\" x=\"331.5\" dy=\"51.85\">&#36;',\r\n                tokenSymbol,\r\n                ' ',\r\n                addThousandSeparator(earned),\r\n                \"</tspan></text> </svg>\"\r\n            );\r\n            svg = Base64.encode(abi.encodePacked(svgPart1, svgPart2));\r\n        }\r\n\r\n        string memory json;\r\n        {\r\n            json = Base64.encode(\r\n                abi.encodePacked(\r\n                    '{\"name\":\"Pangolin Staking Position #',\r\n                    positionId.toString(),\r\n                    '\",\"description\":\"',\r\n                    description,\r\n                    '\",\"external_url\":\"',\r\n                    externalUri,\r\n                    '\",\"attributes\":[{\"trait_type\":\"Balance\",\"value\":',\r\n                    balance.toString(),\r\n                    '},{\"display_type\":\"date\",\"trait_type\":\"Entry Time\",\"value\":',\r\n                    entryTime.toString(),\r\n                    '},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Balance Level\",\"value\":',\r\n                    balanceLevel.toString(),\r\n                    '},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Duration Level\",\"value\":',\r\n                    durationLevel.toString(),\r\n                    '}],\"image\":\"data:image/svg+xml;base64,',\r\n                    svg,\r\n                    '\"}\\n'\r\n                )\r\n            );\r\n        }\r\n\r\n        return string(abi.encodePacked(\"data:application/json;base64,\", json));\r\n    }\r\n\r\n    function addThousandSeparator(uint256 value) private view returns (string memory) {\r\n        bytes memory digits = bytes(value.toString());\r\n        uint256 digitsLength = digits.length;\r\n        uint256 separatorsLength = digitsLength <= 3 ? 0 : (digitsLength - 1) / 3;\r\n        uint256 shift = digitsLength % 3;\r\n        uint256 separatorCount = 0;\r\n        bytes memory buffer = new bytes(digitsLength + separatorsLength);\r\n        for (uint256 i = 0; i < digitsLength; ++i) {\r\n            if (i != 0 && i >= shift && i % 3 == shift) {\r\n                ++separatorCount;\r\n                buffer[i + separatorCount - 1] = thousandSeparator;\r\n            }\r\n            buffer[i + separatorCount] = digits[i];\r\n        }\r\n        return string(buffer);\r\n    }\r\n\r\n    function getImageUri(uint256 balanceLevel, uint256 durationLevel)\r\n        private\r\n        view\r\n        returns (string memory)\r\n    {\r\n        return\r\n            string(\r\n                abi.encodePacked(\r\n                    imageBaseUri,\r\n                    balanceLevel.toString(),\r\n                    durationLevel.toString(),\r\n                    imageExtension\r\n                )\r\n            );\r\n    }\r\n\r\n    function getExponent(uint256 value, uint256 multiplier) private view returns (uint256) {\r\n        if (value * DENOMINATOR >= exponents[9] * multiplier) return 9;\r\n        if (value * DENOMINATOR >= exponents[8] * multiplier) return 8;\r\n        if (value * DENOMINATOR >= exponents[7] * multiplier) return 7;\r\n        if (value * DENOMINATOR >= exponents[6] * multiplier) return 6;\r\n        if (value * DENOMINATOR >= exponents[5] * multiplier) return 5;\r\n        if (value * DENOMINATOR >= exponents[4] * multiplier) return 4;\r\n        if (value * DENOMINATOR >= exponents[3] * multiplier) return 3;\r\n        if (value * DENOMINATOR >= exponents[2] * multiplier) return 2;\r\n        if (value * DENOMINATOR >= exponents[1] * multiplier) return 1;\r\n        return 0;\r\n    }\r\n\r\n    function parseEther(uint256 a) private pure returns (uint256) {\r\n        return a % 1 ether >= 1 ether / 2 ? a / 1 ether + 1 : a / 1 ether;\r\n    }\r\n}\r\n"},"contracts/treasury-vester/TreasuryVesterLinear.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.15;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\ninterface IMiniChefV2 {\r\n    function fundRewards(uint256 newFunding, uint256 duration) external;\r\n}\r\n\r\ninterface IPng is IERC20 {\r\n    function mint(address dst, uint rawAmount) external;\r\n}\r\n\r\n/**\r\n * @notice A contract that vests & distributes tokens.\r\n * It only distributes a single token with a `mint` function.\r\n */\r\ncontract TreasuryVesterLinear is Ownable {\r\n    using SafeERC20 for IPng;\r\n\r\n    struct Recipient{\r\n        address account;\r\n        uint allocation;\r\n        bool isMiniChef;\r\n    }\r\n\r\n    /// @notice The list of recipients who have an allocation\r\n    Recipient[] public recipients;\r\n\r\n    /// @notice The multisig who can initialize the vesting\r\n    address public guardian;\r\n\r\n    /// @notice The token to be vested/minted\r\n    IPng public immutable vestedToken;\r\n\r\n    /// @notice Whether the vesting is enabled or not\r\n    bool public vestingEnabled;\r\n\r\n    /// @notice The time stamp of the last vesting\r\n    uint public lastUpdate;\r\n\r\n    /// @notice The amount of tokens distributed on each vesting\r\n    uint public immutable dailyVestingAmount;\r\n\r\n    /// @notice The denominator for both the allocations and the vesting percentages\r\n    uint private constant DENOMINATOR = 10000;\r\n\r\n    /// @notice The minimum duration between two vestings (i.e.: 1 day)\r\n    uint private constant VESTING_CLIFF = 86400;\r\n\r\n    /**\r\n     * @notice Construct a new TreasuryVester contract\r\n     * @param newVestedToken The token that is being vested & distributed\r\n     * @param newRecipients Recipients with an allocation\r\n     * @param newGuardian An authorized address that can initialize the vesting\r\n     * @param newDailyVestingAmount The total number of tokens to be distributed\r\n     */\r\n    constructor(\r\n        address newVestedToken,\r\n        Recipient[] memory newRecipients,\r\n        address newGuardian,\r\n        uint newDailyVestingAmount\r\n    ) {\r\n        require(newDailyVestingAmount > DENOMINATOR, \"TreasuryVester::Constructor: low vesting amount\");\r\n        require(newGuardian != address(0), \"TreasuryVester::Constructor: invalid guardian address\");\r\n        require(newVestedToken.code.length > 0, \"TreasuryVester::Constructor: invalid token address\");\r\n        guardian = newGuardian;\r\n        vestedToken = IPng(newVestedToken);\r\n        dailyVestingAmount = newDailyVestingAmount;\r\n        setRecipients(newRecipients);\r\n    }\r\n\r\n    /**\r\n     * @notice Distributes the tokens to recipients based on their allocation\r\n     * @dev If the vesting is enabled, anyone can call this function with 1 day intervals\r\n     */\r\n    function distribute() external {\r\n        require(vestingEnabled, \"TreasuryVester::distribute: vesting is not enabled\");\r\n        require(\r\n            block.timestamp >= lastUpdate + VESTING_CLIFF,\r\n            \"TreasuryVester::distribute: it is too early to distribute\"\r\n        );\r\n        lastUpdate = block.timestamp;\r\n\r\n        // distributes vestingAmount of tokens to recipients based on their allocation\r\n        uint length = recipients.length;\r\n        for (uint i; i < length; ++i) {\r\n            Recipient memory recipient = recipients[i];\r\n            uint amount = recipient.allocation * dailyVestingAmount / DENOMINATOR;\r\n            if (recipient.isMiniChef) {\r\n                // calls fund rewards of minichef after minting tokens to self\r\n                vestedToken.mint(address(this), amount);\r\n                vestedToken.approve(recipient.account, amount);\r\n                IMiniChefV2(recipient.account).fundRewards(amount, VESTING_CLIFF);\r\n            } else {\r\n                // simply mints or transfer tokens to regular recipients\r\n                vestedToken.mint(recipient.account, amount);\r\n            }\r\n        }\r\n        emit TokensVested();\r\n    }\r\n\r\n    /**\r\n     * @notice Adds new recipients by overriding old recipients\r\n     * @dev Only callable by the owner (i.e.: governance)\r\n     * @param newRecipients An array of new recipients with allocation\r\n     */\r\n    function setRecipients(Recipient[] memory newRecipients) public onlyOwner {\r\n        delete recipients;\r\n        uint length = newRecipients.length;\r\n        require(\r\n            length != 0 && length < 41,\r\n            \"TreasuryVester::setRecipients: invalid recipient number\"\r\n        );\r\n        uint allocations;\r\n        for (uint i; i < length; ++i) {\r\n            Recipient memory recipient = newRecipients[i];\r\n            require(\r\n                recipient.account != address(0),\r\n                \"TreasuryVester::setRecipients: invalid recipient address\"\r\n            );\r\n            require(\r\n                recipient.allocation != 0,\r\n                \"TreasuryVester::setRecipients: invalid recipient allocation\"\r\n            );\r\n            recipients.push(recipient);\r\n            allocations += recipient.allocation;\r\n        }\r\n        require(\r\n            allocations == DENOMINATOR,\r\n            \"TreasuryVester::setRecipients: invalid total allocation\"\r\n        );\r\n        emit RecipientsChanged(newRecipients);\r\n    }\r\n\r\n    /**\r\n     * @notice Enables distribution of the tokens\r\n     * @dev Callable by either the owner (i.e.: governance) or guardian\r\n     */\r\n    function startVesting() external {\r\n        require(\r\n            msg.sender == guardian || msg.sender == owner(),\r\n            \"TreasuryVester::startVesting: unauthorized message sender\"\r\n        );\r\n        require(\r\n            !vestingEnabled,\r\n            \"TreasuryVester::startVesting: vesting is already enabled\"\r\n        );\r\n        vestingEnabled = true;\r\n        emit VestingEnabled();\r\n    }\r\n\r\n    /// @notice An event that is emitted when vesting is enabled\r\n    event VestingEnabled();\r\n\r\n    /// @notice An event that is emitted when tokens are distributed\r\n    event TokensVested();\r\n\r\n    /// @notice An event that is emitted when recipients are changed\r\n    event RecipientsChanged(Recipient[] newRecipients);\r\n}\r\n"}},"settings":{"optimizer":{"enabled":true,"runs":2000},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[315],"Context":[4686],"ERC165":[5976],"IAccessControl":[513],"IERC165":[5988],"Math":[6853],"Strings":[4935]},"id":316,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:0"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":514,"src":"133:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":4687,"src":"164:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":4,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":4936,"src":"195:30:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":316,"sourceUnit":5977,"src":"226:43:0","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":4686,"src":"1841:7:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"1841:7:0"},{"baseName":{"id":9,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":513,"src":"1850:14:0"},"id":10,"nodeType":"InheritanceSpecifier","src":"1850:14:0"},{"baseName":{"id":11,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":5976,"src":"1866:6:0"},"id":12,"nodeType":"InheritanceSpecifier","src":"1866:6:0"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"271:1534:0","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it."},"fullyImplemented":true,"id":315,"linearizedBaseContracts":[315,5976,5988,513,4686],"name":"AccessControl","nameLocation":"1824:13:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":19,"members":[{"constant":false,"id":16,"mutability":"mutable","name":"members","nameLocation":"1930:7:0","nodeType":"VariableDeclaration","scope":19,"src":"1905:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":15,"keyType":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"1913:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1905:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":14,"name":"bool","nodeType":"ElementaryTypeName","src":"1924:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":18,"mutability":"mutable","name":"adminRole","nameLocation":"1955:9:0","nodeType":"VariableDeclaration","scope":19,"src":"1947:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1947:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"1886:8:0","nodeType":"StructDefinition","scope":315,"src":"1879:92:0","visibility":"public"},{"constant":false,"id":24,"mutability":"mutable","name":"_roles","nameLocation":"2014:6:0","nodeType":"VariableDeclaration","scope":315,"src":"1977:43:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":23,"keyType":{"id":20,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1985:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1977:28:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueType":{"id":22,"nodeType":"UserDefinedTypeName","pathNode":{"id":21,"name":"RoleData","nodeType":"IdentifierPath","referencedDeclaration":19,"src":"1996:8:0"},"referencedDeclaration":19,"src":"1996:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":27,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2051:18:0","nodeType":"VariableDeclaration","scope":315,"src":"2027:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2027:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":26,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:4:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":37,"nodeType":"Block","src":"2495:44:0","statements":[{"expression":{"arguments":[{"id":33,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2516:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,131],"referencedDeclaration":92,"src":"2505:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":34,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2505:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35,"nodeType":"ExpressionStatement","src":"2505:16:0"},{"id":36,"nodeType":"PlaceholderStatement","src":"2531:1:0"}]},"documentation":{"id":28,"nodeType":"StructuredDocumentation","src":"2083:375:0","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":38,"name":"onlyRole","nameLocation":"2472:8:0","nodeType":"ModifierDefinition","parameters":{"id":31,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30,"mutability":"mutable","name":"role","nameLocation":"2489:4:0","nodeType":"VariableDeclaration","scope":38,"src":"2481:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:14:0"},"src":"2463:76:0","virtual":false,"visibility":"internal"},{"baseFunctions":[5975],"body":{"id":59,"nodeType":"Block","src":"2697:111:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2714:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":49,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"2734:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$513_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$513_$","typeString":"type(contract IAccessControl)"}],"id":48,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":50,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2729:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$513","typeString":"type(contract IAccessControl)"}},"id":51,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2729:32:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2714:47:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":55,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"2789:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":53,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2765:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$315_$","typeString":"type(contract super AccessControl)"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":5975,"src":"2765:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2714:87:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46,"id":58,"nodeType":"Return","src":"2707:94:0"}]},"documentation":{"id":39,"nodeType":"StructuredDocumentation","src":"2545:56:0","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":60,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2615:17:0","nodeType":"FunctionDefinition","overrides":{"id":43,"nodeType":"OverrideSpecifier","overrides":[],"src":"2673:8:0"},"parameters":{"id":42,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41,"mutability":"mutable","name":"interfaceId","nameLocation":"2640:11:0","nodeType":"VariableDeclaration","scope":60,"src":"2633:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2633:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2632:20:0"},"returnParameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60,"src":"2691:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44,"name":"bool","nodeType":"ElementaryTypeName","src":"2691:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2690:6:0"},"scope":315,"src":"2606:202:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[480],"body":{"id":78,"nodeType":"Block","src":"2987:53:0","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":71,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":73,"indexExpression":{"id":72,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"3011:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":74,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"3004:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76,"indexExpression":{"id":75,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"3025:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":70,"id":77,"nodeType":"Return","src":"2997:36:0"}]},"documentation":{"id":61,"nodeType":"StructuredDocumentation","src":"2814:76:0","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":79,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2904:7:0","nodeType":"FunctionDefinition","overrides":{"id":67,"nodeType":"OverrideSpecifier","overrides":[],"src":"2963:8:0"},"parameters":{"id":66,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63,"mutability":"mutable","name":"role","nameLocation":"2920:4:0","nodeType":"VariableDeclaration","scope":79,"src":"2912:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":62,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":65,"mutability":"mutable","name":"account","nameLocation":"2934:7:0","nodeType":"VariableDeclaration","scope":79,"src":"2926:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64,"name":"address","nodeType":"ElementaryTypeName","src":"2926:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2911:31:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79,"src":"2981:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":68,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2980:6:0"},"scope":315,"src":"2895:145:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":91,"nodeType":"Block","src":"3390:47:0","statements":[{"expression":{"arguments":[{"id":86,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"3411:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":87,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"3417:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":88,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3417:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":85,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[92,131],"referencedDeclaration":131,"src":"3400:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":89,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3400:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90,"nodeType":"ExpressionStatement","src":"3400:30:0"}]},"documentation":{"id":80,"nodeType":"StructuredDocumentation","src":"3046:283:0","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":92,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3343:10:0","nodeType":"FunctionDefinition","parameters":{"id":83,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82,"mutability":"mutable","name":"role","nameLocation":"3362:4:0","nodeType":"VariableDeclaration","scope":92,"src":"3354:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3354:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3353:14:0"},"returnParameters":{"id":84,"nodeType":"ParameterList","parameters":[],"src":"3390:0:0"},"scope":315,"src":"3334:103:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":130,"nodeType":"Block","src":"3791:406:0","statements":[{"condition":{"id":104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3805:23:0","subExpression":{"arguments":[{"id":101,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"3814:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":102,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"3820:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":100,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"3806:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3806:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":129,"nodeType":"IfStatement","src":"3801:390:0","trueBody":{"id":128,"nodeType":"Block","src":"3830:361:0","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":113,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"4009:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":111,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4935,"src":"3989:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$4935_$","typeString":"type(library Strings)"}},"id":112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":4934,"src":"3989:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3989:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4043:19:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":120,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95,"src":"4116:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4108:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":118,"name":"uint256","nodeType":"ElementaryTypeName","src":"4108:7:0","typeDescriptions":{}}},"id":121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4108:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4123:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":116,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4935,"src":"4088:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$4935_$","typeString":"type(library Strings)"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"4088:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4088:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":108,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3896:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3896:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3896:252:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":106,"name":"string","nodeType":"ElementaryTypeName","src":"3868:6:0","typeDescriptions":{}}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3868:298:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":105,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3844:6:0","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:336:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":127,"nodeType":"ExpressionStatement","src":"3844:336:0"}]}}]},"documentation":{"id":93,"nodeType":"StructuredDocumentation","src":"3443:270:0","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n  /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":131,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3727:10:0","nodeType":"FunctionDefinition","parameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"role","nameLocation":"3746:4:0","nodeType":"VariableDeclaration","scope":131,"src":"3738:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":94,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3738:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"account","nameLocation":"3760:7:0","nodeType":"VariableDeclaration","scope":131,"src":"3752:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3737:31:0"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[],"src":"3791:0:0"},"scope":315,"src":"3718:479:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[488],"body":{"id":145,"nodeType":"Block","src":"4461:46:0","statements":[{"expression":{"expression":{"baseExpression":{"id":140,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"4478:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":142,"indexExpression":{"id":141,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"4485:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4478:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"4478:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":139,"id":144,"nodeType":"Return","src":"4471:29:0"}]},"documentation":{"id":132,"nodeType":"StructuredDocumentation","src":"4203:170:0","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":146,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4387:12:0","nodeType":"FunctionDefinition","overrides":{"id":136,"nodeType":"OverrideSpecifier","overrides":[],"src":"4434:8:0"},"parameters":{"id":135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":134,"mutability":"mutable","name":"role","nameLocation":"4408:4:0","nodeType":"VariableDeclaration","scope":146,"src":"4400:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4400:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4399:14:0"},"returnParameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":146,"src":"4452:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4451:9:0"},"scope":315,"src":"4378:129:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[496],"body":{"id":165,"nodeType":"Block","src":"4906:42:0","statements":[{"expression":{"arguments":[{"id":161,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"4927:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151,"src":"4933:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":160,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"4916:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4916:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":164,"nodeType":"ExpressionStatement","src":"4916:25:0"}]},"documentation":{"id":147,"nodeType":"StructuredDocumentation","src":"4513:285:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":166,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":156,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"4899:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":155,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"4886:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4886:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":158,"kind":"modifierInvocation","modifierName":{"id":154,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4877:8:0"},"nodeType":"ModifierInvocation","src":"4877:28:0"}],"name":"grantRole","nameLocation":"4812:9:0","nodeType":"FunctionDefinition","overrides":{"id":153,"nodeType":"OverrideSpecifier","overrides":[],"src":"4868:8:0"},"parameters":{"id":152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":149,"mutability":"mutable","name":"role","nameLocation":"4830:4:0","nodeType":"VariableDeclaration","scope":166,"src":"4822:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4822:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":151,"mutability":"mutable","name":"account","nameLocation":"4844:7:0","nodeType":"VariableDeclaration","scope":166,"src":"4836:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":150,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4821:31:0"},"returnParameters":{"id":159,"nodeType":"ParameterList","parameters":[],"src":"4906:0:0"},"scope":315,"src":"4803:145:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[504],"body":{"id":185,"nodeType":"Block","src":"5332:43:0","statements":[{"expression":{"arguments":[{"id":181,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"5354:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":182,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5360:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":180,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"5342:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5342:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":184,"nodeType":"ExpressionStatement","src":"5342:26:0"}]},"documentation":{"id":167,"nodeType":"StructuredDocumentation","src":"4954:269:0","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":186,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":176,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"5325:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":175,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"5312:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5312:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":178,"kind":"modifierInvocation","modifierName":{"id":174,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5303:8:0"},"nodeType":"ModifierInvocation","src":"5303:28:0"}],"name":"revokeRole","nameLocation":"5237:10:0","nodeType":"FunctionDefinition","overrides":{"id":173,"nodeType":"OverrideSpecifier","overrides":[],"src":"5294:8:0"},"parameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":169,"mutability":"mutable","name":"role","nameLocation":"5256:4:0","nodeType":"VariableDeclaration","scope":186,"src":"5248:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5248:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":171,"mutability":"mutable","name":"account","nameLocation":"5270:7:0","nodeType":"VariableDeclaration","scope":186,"src":"5262:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"5262:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5247:31:0"},"returnParameters":{"id":179,"nodeType":"ParameterList","parameters":[],"src":"5332:0:0"},"scope":315,"src":"5228:147:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[512],"body":{"id":208,"nodeType":"Block","src":"5989:137:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":196,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":191,"src":"6007:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":197,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"6018:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6018:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6007:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6032:49:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":195,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5999:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5999:83:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":202,"nodeType":"ExpressionStatement","src":"5999:83:0"},{"expression":{"arguments":[{"id":204,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"6105:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":205,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":191,"src":"6111:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":203,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"6093:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6093:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"6093:26:0"}]},"documentation":{"id":187,"nodeType":"StructuredDocumentation","src":"5381:526:0","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":209,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5921:12:0","nodeType":"FunctionDefinition","overrides":{"id":193,"nodeType":"OverrideSpecifier","overrides":[],"src":"5980:8:0"},"parameters":{"id":192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":189,"mutability":"mutable","name":"role","nameLocation":"5942:4:0","nodeType":"VariableDeclaration","scope":209,"src":"5934:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5934:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":191,"mutability":"mutable","name":"account","nameLocation":"5956:7:0","nodeType":"VariableDeclaration","scope":209,"src":"5948:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":190,"name":"address","nodeType":"ElementaryTypeName","src":"5948:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5933:31:0"},"returnParameters":{"id":194,"nodeType":"ParameterList","parameters":[],"src":"5989:0:0"},"scope":315,"src":"5912:214:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":222,"nodeType":"Block","src":"6879:42:0","statements":[{"expression":{"arguments":[{"id":218,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":212,"src":"6900:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":219,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"6906:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":217,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"6889:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6889:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":221,"nodeType":"ExpressionStatement","src":"6889:25:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"6132:674:0","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":223,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6820:10:0","nodeType":"FunctionDefinition","parameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":212,"mutability":"mutable","name":"role","nameLocation":"6839:4:0","nodeType":"VariableDeclaration","scope":223,"src":"6831:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6831:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":214,"mutability":"mutable","name":"account","nameLocation":"6853:7:0","nodeType":"VariableDeclaration","scope":223,"src":"6845:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":213,"name":"address","nodeType":"ElementaryTypeName","src":"6845:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6830:31:0"},"returnParameters":{"id":216,"nodeType":"ParameterList","parameters":[],"src":"6879:0:0"},"scope":315,"src":"6811:110:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":250,"nodeType":"Block","src":"7119:174:0","statements":[{"assignments":[232],"declarations":[{"constant":false,"id":232,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7137:17:0","nodeType":"VariableDeclaration","scope":250,"src":"7129:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7129:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":236,"initialValue":{"arguments":[{"id":234,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"7170:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":233,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"7157:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7157:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7129:46:0"},{"expression":{"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":237,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7185:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":239,"indexExpression":{"id":238,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"7192:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7185:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":18,"src":"7185:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":241,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"7210:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7185:34:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":243,"nodeType":"ExpressionStatement","src":"7185:34:0"},{"eventCall":{"arguments":[{"id":245,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"7251:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":246,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"7257:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":247,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"7276:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":244,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"7234:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7234:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":249,"nodeType":"EmitStatement","src":"7229:57:0"}]},"documentation":{"id":224,"nodeType":"StructuredDocumentation","src":"6927:114:0","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":251,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7055:13:0","nodeType":"FunctionDefinition","parameters":{"id":229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226,"mutability":"mutable","name":"role","nameLocation":"7077:4:0","nodeType":"VariableDeclaration","scope":251,"src":"7069:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7069:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":228,"mutability":"mutable","name":"adminRole","nameLocation":"7091:9:0","nodeType":"VariableDeclaration","scope":251,"src":"7083:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7083:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7068:33:0"},"returnParameters":{"id":230,"nodeType":"ParameterList","parameters":[],"src":"7119:0:0"},"scope":315,"src":"7046:247:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":282,"nodeType":"Block","src":"7529:165:0","statements":[{"condition":{"id":263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7543:23:0","subExpression":{"arguments":[{"id":260,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"7552:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":261,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"7558:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":259,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"7544:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7544:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":281,"nodeType":"IfStatement","src":"7539:149:0","trueBody":{"id":280,"nodeType":"Block","src":"7568:120:0","statements":[{"expression":{"id":271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":264,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7582:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":266,"indexExpression":{"id":265,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"7589:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7582:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"7582:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":269,"indexExpression":{"id":268,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"7603:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7582:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7614:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7582:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":272,"nodeType":"ExpressionStatement","src":"7582:36:0"},{"eventCall":{"arguments":[{"id":274,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"7649:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":275,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"7655:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":276,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"7664:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7664:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":273,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"7637:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7637:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":279,"nodeType":"EmitStatement","src":"7632:45:0"}]}}]},"documentation":{"id":252,"nodeType":"StructuredDocumentation","src":"7299:157:0","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":283,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7470:10:0","nodeType":"FunctionDefinition","parameters":{"id":257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"mutability":"mutable","name":"role","nameLocation":"7489:4:0","nodeType":"VariableDeclaration","scope":283,"src":"7481:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7481:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":256,"mutability":"mutable","name":"account","nameLocation":"7503:7:0","nodeType":"VariableDeclaration","scope":283,"src":"7495:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":255,"name":"address","nodeType":"ElementaryTypeName","src":"7495:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7480:31:0"},"returnParameters":{"id":258,"nodeType":"ParameterList","parameters":[],"src":"7529:0:0"},"scope":315,"src":"7461:233:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":313,"nodeType":"Block","src":"7934:165:0","statements":[{"condition":{"arguments":[{"id":292,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":286,"src":"7956:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":293,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"7962:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":291,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"7948:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7948:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":312,"nodeType":"IfStatement","src":"7944:149:0","trueBody":{"id":311,"nodeType":"Block","src":"7972:121:0","statements":[{"expression":{"id":302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":295,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"7986:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$19_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":297,"indexExpression":{"id":296,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":286,"src":"7993:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7986:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$19_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":16,"src":"7986:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":300,"indexExpression":{"id":299,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"8007:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7986:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8018:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7986:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":303,"nodeType":"ExpressionStatement","src":"7986:37:0"},{"eventCall":{"arguments":[{"id":305,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":286,"src":"8054:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":306,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"8060:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":307,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"8069:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8069:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":304,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":470,"src":"8042:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8042:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":310,"nodeType":"EmitStatement","src":"8037:45:0"}]}}]},"documentation":{"id":284,"nodeType":"StructuredDocumentation","src":"7700:160:0","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":314,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7874:11:0","nodeType":"FunctionDefinition","parameters":{"id":289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":286,"mutability":"mutable","name":"role","nameLocation":"7894:4:0","nodeType":"VariableDeclaration","scope":314,"src":"7886:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7886:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":288,"mutability":"mutable","name":"account","nameLocation":"7908:7:0","nodeType":"VariableDeclaration","scope":314,"src":"7900:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":287,"name":"address","nodeType":"ElementaryTypeName","src":"7900:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7885:31:0"},"returnParameters":{"id":290,"nodeType":"ParameterList","parameters":[],"src":"7934:0:0"},"scope":315,"src":"7865:234:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":316,"src":"1806:6295:0","usedErrors":[]}],"src":"108:7994:0"},"id":0},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Context":[4686],"ERC165":[5976],"EnumerableSet":[9007],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"Math":[6853],"Strings":[4935]},"id":441,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":317,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:1"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","file":"./IAccessControlEnumerable.sol","id":318,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":441,"sourceUnit":539,"src":"143:40:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"./AccessControl.sol","id":319,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":441,"sourceUnit":316,"src":"184:29:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"../utils/structs/EnumerableSet.sol","id":320,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":441,"sourceUnit":9008,"src":"214:44:1","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":322,"name":"IAccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":538,"src":"400:24:1"},"id":323,"nodeType":"InheritanceSpecifier","src":"400:24:1"},{"baseName":{"id":324,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":315,"src":"426:13:1"},"id":325,"nodeType":"InheritanceSpecifier","src":"426:13:1"}],"canonicalName":"AccessControlEnumerable","contractDependencies":[],"contractKind":"contract","documentation":{"id":321,"nodeType":"StructuredDocumentation","src":"260:94:1","text":" @dev Extension of {AccessControl} that allows enumerating the members of each role."},"fullyImplemented":true,"id":440,"linearizedBaseContracts":[440,315,5976,5988,538,513,4686],"name":"AccessControlEnumerable","nameLocation":"373:23:1","nodeType":"ContractDefinition","nodes":[{"global":false,"id":329,"libraryName":{"id":326,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":9007,"src":"452:13:1"},"nodeType":"UsingForDirective","src":"446:49:1","typeName":{"id":328,"nodeType":"UserDefinedTypeName","pathNode":{"id":327,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"470:24:1"},"referencedDeclaration":8720,"src":"470:24:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":334,"mutability":"mutable","name":"_roleMembers","nameLocation":"554:12:1","nodeType":"VariableDeclaration","scope":440,"src":"501:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8720_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"typeName":{"id":333,"keyType":{"id":330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"509:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"501:44:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8720_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"valueType":{"id":332,"nodeType":"UserDefinedTypeName","pathNode":{"id":331,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"520:24:1"},"referencedDeclaration":8720,"src":"520:24:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"baseFunctions":[60],"body":{"id":355,"nodeType":"Block","src":"725:121:1","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":343,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"742:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":345,"name":"IAccessControlEnumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":538,"src":"762:24:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$538_$","typeString":"type(contract IAccessControlEnumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$538_$","typeString":"type(contract IAccessControlEnumerable)"}],"id":344,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"757:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"757:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControlEnumerable_$538","typeString":"type(contract IAccessControlEnumerable)"}},"id":347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"757:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"742:57:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":351,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"827:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":349,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"803:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$440_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":60,"src":"803:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"803:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"742:97:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":342,"id":354,"nodeType":"Return","src":"735:104:1"}]},"documentation":{"id":335,"nodeType":"StructuredDocumentation","src":"573:56:1","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":356,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"643:17:1","nodeType":"FunctionDefinition","overrides":{"id":339,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:1"},"parameters":{"id":338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":337,"mutability":"mutable","name":"interfaceId","nameLocation":"668:11:1","nodeType":"VariableDeclaration","scope":356,"src":"661:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":336,"name":"bytes4","nodeType":"ElementaryTypeName","src":"661:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"660:20:1"},"returnParameters":{"id":342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":356,"src":"719:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":340,"name":"bool","nodeType":"ElementaryTypeName","src":"719:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"718:6:1"},"scope":440,"src":"634:212:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[529],"body":{"id":374,"nodeType":"Block","src":"1530:52:1","statements":[{"expression":{"arguments":[{"id":371,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"1569:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":367,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"1547:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8720_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":369,"indexExpression":{"id":368,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":359,"src":"1560:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1547:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":8843,"src":"1547:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$8720_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$8720_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1547:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":366,"id":373,"nodeType":"Return","src":"1540:35:1"}]},"documentation":{"id":357,"nodeType":"StructuredDocumentation","src":"852:574:1","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":375,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"1440:13:1","nodeType":"FunctionDefinition","overrides":{"id":363,"nodeType":"OverrideSpecifier","overrides":[],"src":"1503:8:1"},"parameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":359,"mutability":"mutable","name":"role","nameLocation":"1462:4:1","nodeType":"VariableDeclaration","scope":375,"src":"1454:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1454:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":361,"mutability":"mutable","name":"index","nameLocation":"1476:5:1","nodeType":"VariableDeclaration","scope":375,"src":"1468:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":360,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1453:29:1"},"returnParameters":{"id":366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":375,"src":"1521:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":364,"name":"address","nodeType":"ElementaryTypeName","src":"1521:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1520:9:1"},"scope":440,"src":"1431:151:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[537],"body":{"id":390,"nodeType":"Block","src":"1839:51:1","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":384,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"1856:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8720_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":386,"indexExpression":{"id":385,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"1869:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1856:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":8816,"src":"1856:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$8720_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$8720_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1856:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":383,"id":389,"nodeType":"Return","src":"1849:34:1"}]},"documentation":{"id":376,"nodeType":"StructuredDocumentation","src":"1588:157:1","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":391,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1759:18:1","nodeType":"FunctionDefinition","overrides":{"id":380,"nodeType":"OverrideSpecifier","overrides":[],"src":"1812:8:1"},"parameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":378,"mutability":"mutable","name":"role","nameLocation":"1786:4:1","nodeType":"VariableDeclaration","scope":391,"src":"1778:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1778:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1777:14:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":391,"src":"1830:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":381,"name":"uint256","nodeType":"ElementaryTypeName","src":"1830:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1829:9:1"},"scope":440,"src":"1750:140:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[283],"body":{"id":414,"nodeType":"Block","src":"2055:89:1","statements":[{"expression":{"arguments":[{"id":403,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"2082:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":404,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"2088:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":400,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2065:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$440_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_grantRole","nodeType":"MemberAccess","referencedDeclaration":283,"src":"2065:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2065:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":406,"nodeType":"ExpressionStatement","src":"2065:31:1"},{"expression":{"arguments":[{"id":411,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"2129:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":407,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"2106:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8720_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":409,"indexExpression":{"id":408,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"2119:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2106:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":8747,"src":"2106:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$8720_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$8720_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2106:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":413,"nodeType":"ExpressionStatement","src":"2106:31:1"}]},"documentation":{"id":392,"nodeType":"StructuredDocumentation","src":"1896:77:1","text":" @dev Overload {_grantRole} to track enumerable memberships"},"id":415,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"1987:10:1","nodeType":"FunctionDefinition","overrides":{"id":398,"nodeType":"OverrideSpecifier","overrides":[],"src":"2046:8:1"},"parameters":{"id":397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":394,"mutability":"mutable","name":"role","nameLocation":"2006:4:1","nodeType":"VariableDeclaration","scope":415,"src":"1998:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1998:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":396,"mutability":"mutable","name":"account","nameLocation":"2020:7:1","nodeType":"VariableDeclaration","scope":415,"src":"2012:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":395,"name":"address","nodeType":"ElementaryTypeName","src":"2012:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:31:1"},"returnParameters":{"id":399,"nodeType":"ParameterList","parameters":[],"src":"2055:0:1"},"scope":440,"src":"1978:166:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[314],"body":{"id":438,"nodeType":"Block","src":"2311:93:1","statements":[{"expression":{"arguments":[{"id":427,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"2339:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":428,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"2345:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":424,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2321:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$440_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_revokeRole","nodeType":"MemberAccess","referencedDeclaration":314,"src":"2321:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":430,"nodeType":"ExpressionStatement","src":"2321:32:1"},{"expression":{"arguments":[{"id":435,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"2389:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":431,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"2363:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8720_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":433,"indexExpression":{"id":432,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"2376:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2363:18:1","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":8774,"src":"2363:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$8720_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$8720_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2363:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":437,"nodeType":"ExpressionStatement","src":"2363:34:1"}]},"documentation":{"id":416,"nodeType":"StructuredDocumentation","src":"2150:78:1","text":" @dev Overload {_revokeRole} to track enumerable memberships"},"id":439,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"2242:11:1","nodeType":"FunctionDefinition","overrides":{"id":422,"nodeType":"OverrideSpecifier","overrides":[],"src":"2302:8:1"},"parameters":{"id":421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":418,"mutability":"mutable","name":"role","nameLocation":"2262:4:1","nodeType":"VariableDeclaration","scope":439,"src":"2254:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2254:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":420,"mutability":"mutable","name":"account","nameLocation":"2276:7:1","nodeType":"VariableDeclaration","scope":439,"src":"2268:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2253:31:1"},"returnParameters":{"id":423,"nodeType":"ParameterList","parameters":[],"src":"2311:0:1"},"scope":440,"src":"2233:171:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":441,"src":"355:2051:1","usedErrors":[]}],"src":"118:2289:1"},"id":1},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[513]},"id":514,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":442,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:2"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":443,"nodeType":"StructuredDocumentation","src":"119:89:2","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":513,"linearizedBaseContracts":[513],"name":"IAccessControl","nameLocation":"219:14:2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":444,"nodeType":"StructuredDocumentation","src":"240:292:2","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":452,"name":"RoleAdminChanged","nameLocation":"543:16:2","nodeType":"EventDefinition","parameters":{"id":451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":446,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:2","nodeType":"VariableDeclaration","scope":452,"src":"560:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":448,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:2","nodeType":"VariableDeclaration","scope":452,"src":"582:33:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":450,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:2","nodeType":"VariableDeclaration","scope":452,"src":"617:28:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:2"},"src":"537:110:2"},{"anonymous":false,"documentation":{"id":453,"nodeType":"StructuredDocumentation","src":"653:212:2","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":461,"name":"RoleGranted","nameLocation":"876:11:2","nodeType":"EventDefinition","parameters":{"id":460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":455,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:2","nodeType":"VariableDeclaration","scope":461,"src":"888:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":457,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:2","nodeType":"VariableDeclaration","scope":461,"src":"910:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":456,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":459,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:2","nodeType":"VariableDeclaration","scope":461,"src":"935:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":458,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:2"},"src":"870:89:2"},{"anonymous":false,"documentation":{"id":462,"nodeType":"StructuredDocumentation","src":"965:275:2","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":470,"name":"RoleRevoked","nameLocation":"1251:11:2","nodeType":"EventDefinition","parameters":{"id":469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:2","nodeType":"VariableDeclaration","scope":470,"src":"1263:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":466,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:2","nodeType":"VariableDeclaration","scope":470,"src":"1285:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":465,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":468,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:2","nodeType":"VariableDeclaration","scope":470,"src":"1310:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":467,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:2"},"src":"1245:89:2"},{"documentation":{"id":471,"nodeType":"StructuredDocumentation","src":"1340:76:2","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":480,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:2","nodeType":"FunctionDefinition","parameters":{"id":476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":473,"mutability":"mutable","name":"role","nameLocation":"1446:4:2","nodeType":"VariableDeclaration","scope":480,"src":"1438:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":475,"mutability":"mutable","name":"account","nameLocation":"1460:7:2","nodeType":"VariableDeclaration","scope":480,"src":"1452:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":474,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:2"},"returnParameters":{"id":479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":480,"src":"1492:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":477,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:2"},"scope":513,"src":"1421:77:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":481,"nodeType":"StructuredDocumentation","src":"1504:184:2","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":488,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:2","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":483,"mutability":"mutable","name":"role","nameLocation":"1723:4:2","nodeType":"VariableDeclaration","scope":488,"src":"1715:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:2"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":488,"src":"1752:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:2"},"scope":513,"src":"1693:68:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":489,"nodeType":"StructuredDocumentation","src":"1767:239:2","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":496,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:2","nodeType":"FunctionDefinition","parameters":{"id":494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":491,"mutability":"mutable","name":"role","nameLocation":"2038:4:2","nodeType":"VariableDeclaration","scope":496,"src":"2030:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":493,"mutability":"mutable","name":"account","nameLocation":"2052:7:2","nodeType":"VariableDeclaration","scope":496,"src":"2044:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":492,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:2"},"returnParameters":{"id":495,"nodeType":"ParameterList","parameters":[],"src":"2069:0:2"},"scope":513,"src":"2011:59:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":497,"nodeType":"StructuredDocumentation","src":"2076:223:2","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":504,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:2","nodeType":"FunctionDefinition","parameters":{"id":502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":499,"mutability":"mutable","name":"role","nameLocation":"2332:4:2","nodeType":"VariableDeclaration","scope":504,"src":"2324:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":501,"mutability":"mutable","name":"account","nameLocation":"2346:7:2","nodeType":"VariableDeclaration","scope":504,"src":"2338:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:2"},"returnParameters":{"id":503,"nodeType":"ParameterList","parameters":[],"src":"2363:0:2"},"scope":513,"src":"2304:60:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":505,"nodeType":"StructuredDocumentation","src":"2370:480:2","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":512,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:2","nodeType":"FunctionDefinition","parameters":{"id":510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":507,"mutability":"mutable","name":"role","nameLocation":"2885:4:2","nodeType":"VariableDeclaration","scope":512,"src":"2877:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":509,"mutability":"mutable","name":"account","nameLocation":"2899:7:2","nodeType":"VariableDeclaration","scope":512,"src":"2891:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":508,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:2"},"returnParameters":{"id":511,"nodeType":"ParameterList","parameters":[],"src":"2916:0:2"},"scope":513,"src":"2855:62:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":514,"src":"209:2710:2","usedErrors":[]}],"src":"94:2826:2"},"id":2},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","exportedSymbols":{"IAccessControl":[513],"IAccessControlEnumerable":[538]},"id":539,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":515,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:3"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":516,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":539,"sourceUnit":514,"src":"129:30:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":518,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":513,"src":"299:14:3"},"id":519,"nodeType":"InheritanceSpecifier","src":"299:14:3"}],"canonicalName":"IAccessControlEnumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":517,"nodeType":"StructuredDocumentation","src":"161:99:3","text":" @dev External interface of AccessControlEnumerable declared to support ERC165 detection."},"fullyImplemented":false,"id":538,"linearizedBaseContracts":[538,513],"name":"IAccessControlEnumerable","nameLocation":"271:24:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":520,"nodeType":"StructuredDocumentation","src":"320:574:3","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":529,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"908:13:3","nodeType":"FunctionDefinition","parameters":{"id":525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":522,"mutability":"mutable","name":"role","nameLocation":"930:4:3","nodeType":"VariableDeclaration","scope":529,"src":"922:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":524,"mutability":"mutable","name":"index","nameLocation":"944:5:3","nodeType":"VariableDeclaration","scope":529,"src":"936:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":523,"name":"uint256","nodeType":"ElementaryTypeName","src":"936:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"921:29:3"},"returnParameters":{"id":528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":529,"src":"974:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":526,"name":"address","nodeType":"ElementaryTypeName","src":"974:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:9:3"},"scope":538,"src":"899:84:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":530,"nodeType":"StructuredDocumentation","src":"989:157:3","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":537,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1160:18:3","nodeType":"FunctionDefinition","parameters":{"id":533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":532,"mutability":"mutable","name":"role","nameLocation":"1187:4:3","nodeType":"VariableDeclaration","scope":537,"src":"1179:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1179:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1178:14:3"},"returnParameters":{"id":536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":537,"src":"1216:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":534,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:9:3"},"scope":538,"src":"1151:74:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":539,"src":"261:966:3","usedErrors":[]}],"src":"104:1124:3"},"id":3},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[4686],"Ownable":[651]},"id":652,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":540,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:4"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":541,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":652,"sourceUnit":4687,"src":"127:30:4","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":543,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":4686,"src":"683:7:4"},"id":544,"nodeType":"InheritanceSpecifier","src":"683:7:4"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":542,"nodeType":"StructuredDocumentation","src":"159:494:4","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":651,"linearizedBaseContracts":[651,4686],"name":"Ownable","nameLocation":"672:7:4","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":546,"mutability":"mutable","name":"_owner","nameLocation":"713:6:4","nodeType":"VariableDeclaration","scope":651,"src":"697:22:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":545,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":552,"name":"OwnershipTransferred","nameLocation":"732:20:4","nodeType":"EventDefinition","parameters":{"id":551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":548,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:4","nodeType":"VariableDeclaration","scope":552,"src":"753:29:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":547,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":550,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:4","nodeType":"VariableDeclaration","scope":552,"src":"784:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":549,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:4"},"src":"726:84:4"},{"body":{"id":561,"nodeType":"Block","src":"926:49:4","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":557,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"955:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":556,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"936:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":560,"nodeType":"ExpressionStatement","src":"936:32:4"}]},"documentation":{"id":553,"nodeType":"StructuredDocumentation","src":"816:91:4","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":562,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":554,"nodeType":"ParameterList","parameters":[],"src":"923:2:4"},"returnParameters":{"id":555,"nodeType":"ParameterList","parameters":[],"src":"926:0:4"},"scope":651,"src":"912:63:4","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":569,"nodeType":"Block","src":"1084:41:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":565,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"1094:11:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":567,"nodeType":"ExpressionStatement","src":"1094:13:4"},{"id":568,"nodeType":"PlaceholderStatement","src":"1117:1:4"}]},"documentation":{"id":563,"nodeType":"StructuredDocumentation","src":"981:77:4","text":" @dev Throws if called by any account other than the owner."},"id":570,"name":"onlyOwner","nameLocation":"1072:9:4","nodeType":"ModifierDefinition","parameters":{"id":564,"nodeType":"ParameterList","parameters":[],"src":"1081:2:4"},"src":"1063:62:4","virtual":false,"visibility":"internal"},{"body":{"id":578,"nodeType":"Block","src":"1256:30:4","statements":[{"expression":{"id":576,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"1273:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":575,"id":577,"nodeType":"Return","src":"1266:13:4"}]},"documentation":{"id":571,"nodeType":"StructuredDocumentation","src":"1131:65:4","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":579,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:4","nodeType":"FunctionDefinition","parameters":{"id":572,"nodeType":"ParameterList","parameters":[],"src":"1215:2:4"},"returnParameters":{"id":575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":574,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":579,"src":"1247:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":573,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:4"},"scope":651,"src":"1201:85:4","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":592,"nodeType":"Block","src":"1404:85:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":584,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":579,"src":"1422:5:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":586,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"1433:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":591,"nodeType":"ExpressionStatement","src":"1414:68:4"}]},"documentation":{"id":580,"nodeType":"StructuredDocumentation","src":"1292:62:4","text":" @dev Throws if the sender is not the owner."},"id":593,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:4","nodeType":"FunctionDefinition","parameters":{"id":581,"nodeType":"ParameterList","parameters":[],"src":"1379:2:4"},"returnParameters":{"id":582,"nodeType":"ParameterList","parameters":[],"src":"1404:0:4"},"scope":651,"src":"1359:130:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":606,"nodeType":"Block","src":"1885:47:4","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":600,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:4","typeDescriptions":{}}},"id":603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":599,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"1895:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":605,"nodeType":"ExpressionStatement","src":"1895:30:4"}]},"documentation":{"id":594,"nodeType":"StructuredDocumentation","src":"1495:331:4","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":607,"implemented":true,"kind":"function","modifiers":[{"id":597,"kind":"modifierInvocation","modifierName":{"id":596,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"1875:9:4"},"nodeType":"ModifierInvocation","src":"1875:9:4"}],"name":"renounceOwnership","nameLocation":"1840:17:4","nodeType":"FunctionDefinition","parameters":{"id":595,"nodeType":"ParameterList","parameters":[],"src":"1857:2:4"},"returnParameters":{"id":598,"nodeType":"ParameterList","parameters":[],"src":"1885:0:4"},"scope":651,"src":"1831:101:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":629,"nodeType":"Block","src":"2151:128:4","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":616,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"2169:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":617,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:4","typeDescriptions":{}}},"id":620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":624,"nodeType":"ExpressionStatement","src":"2161:73:4"},{"expression":{"arguments":[{"id":626,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"2263:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":625,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"2244:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":628,"nodeType":"ExpressionStatement","src":"2244:28:4"}]},"documentation":{"id":608,"nodeType":"StructuredDocumentation","src":"1938:138:4","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":630,"implemented":true,"kind":"function","modifiers":[{"id":613,"kind":"modifierInvocation","modifierName":{"id":612,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"2141:9:4"},"nodeType":"ModifierInvocation","src":"2141:9:4"}],"name":"transferOwnership","nameLocation":"2090:17:4","nodeType":"FunctionDefinition","parameters":{"id":611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":610,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:4","nodeType":"VariableDeclaration","scope":630,"src":"2108:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":609,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:4"},"returnParameters":{"id":614,"nodeType":"ParameterList","parameters":[],"src":"2151:0:4"},"scope":651,"src":"2081:198:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":649,"nodeType":"Block","src":"2496:124:4","statements":[{"assignments":[637],"declarations":[{"constant":false,"id":637,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:4","nodeType":"VariableDeclaration","scope":649,"src":"2506:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":636,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":639,"initialValue":{"id":638,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"2525:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:4"},{"expression":{"id":642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":640,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"2541:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":641,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":633,"src":"2550:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":643,"nodeType":"ExpressionStatement","src":"2541:17:4"},{"eventCall":{"arguments":[{"id":645,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"2594:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":646,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":633,"src":"2604:8:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":644,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"2573:20:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":648,"nodeType":"EmitStatement","src":"2568:45:4"}]},"documentation":{"id":631,"nodeType":"StructuredDocumentation","src":"2285:143:4","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":650,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:4","nodeType":"FunctionDefinition","parameters":{"id":634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":633,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:4","nodeType":"VariableDeclaration","scope":650,"src":"2461:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":632,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:4"},"returnParameters":{"id":635,"nodeType":"ParameterList","parameters":[],"src":"2496:0:4"},"scope":651,"src":"2433:187:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":652,"src":"654:1968:4","usedErrors":[]}],"src":"102:2521:4"},"id":4},"@openzeppelin/contracts/governance/utils/IVotes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","exportedSymbols":{"IVotes":[729]},"id":730,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":653,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:5"},{"abstract":false,"baseContracts":[],"canonicalName":"IVotes","contractDependencies":[],"contractKind":"interface","documentation":{"id":654,"nodeType":"StructuredDocumentation","src":"135:132:5","text":" @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.\n _Available since v4.5._"},"fullyImplemented":false,"id":729,"linearizedBaseContracts":[729],"name":"IVotes","nameLocation":"278:6:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":655,"nodeType":"StructuredDocumentation","src":"291:71:5","text":" @dev Emitted when an account changes their delegate."},"eventSelector":"3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f","id":663,"name":"DelegateChanged","nameLocation":"373:15:5","nodeType":"EventDefinition","parameters":{"id":662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":657,"indexed":true,"mutability":"mutable","name":"delegator","nameLocation":"405:9:5","nodeType":"VariableDeclaration","scope":663,"src":"389:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":656,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":659,"indexed":true,"mutability":"mutable","name":"fromDelegate","nameLocation":"432:12:5","nodeType":"VariableDeclaration","scope":663,"src":"416:28:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":661,"indexed":true,"mutability":"mutable","name":"toDelegate","nameLocation":"462:10:5","nodeType":"VariableDeclaration","scope":663,"src":"446:26:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":660,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"388:85:5"},"src":"367:107:5"},{"anonymous":false,"documentation":{"id":664,"nodeType":"StructuredDocumentation","src":"480:124:5","text":" @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."},"eventSelector":"dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724","id":672,"name":"DelegateVotesChanged","nameLocation":"615:20:5","nodeType":"EventDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":666,"indexed":true,"mutability":"mutable","name":"delegate","nameLocation":"652:8:5","nodeType":"VariableDeclaration","scope":672,"src":"636:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":665,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":668,"indexed":false,"mutability":"mutable","name":"previousBalance","nameLocation":"670:15:5","nodeType":"VariableDeclaration","scope":672,"src":"662:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":667,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":670,"indexed":false,"mutability":"mutable","name":"newBalance","nameLocation":"695:10:5","nodeType":"VariableDeclaration","scope":672,"src":"687:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":669,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"635:71:5"},"src":"609:98:5"},{"documentation":{"id":673,"nodeType":"StructuredDocumentation","src":"713:79:5","text":" @dev Returns the current amount of votes that `account` has."},"functionSelector":"9ab24eb0","id":680,"implemented":false,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"806:8:5","nodeType":"FunctionDefinition","parameters":{"id":676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":675,"mutability":"mutable","name":"account","nameLocation":"823:7:5","nodeType":"VariableDeclaration","scope":680,"src":"815:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":674,"name":"address","nodeType":"ElementaryTypeName","src":"815:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"814:17:5"},"returnParameters":{"id":679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":678,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":680,"src":"855:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":677,"name":"uint256","nodeType":"ElementaryTypeName","src":"855:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"854:9:5"},"scope":729,"src":"797:67:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":681,"nodeType":"StructuredDocumentation","src":"870:114:5","text":" @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"functionSelector":"3a46b1a8","id":690,"implemented":false,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"998:12:5","nodeType":"FunctionDefinition","parameters":{"id":686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":683,"mutability":"mutable","name":"account","nameLocation":"1019:7:5","nodeType":"VariableDeclaration","scope":690,"src":"1011:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":682,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":685,"mutability":"mutable","name":"blockNumber","nameLocation":"1036:11:5","nodeType":"VariableDeclaration","scope":690,"src":"1028:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":684,"name":"uint256","nodeType":"ElementaryTypeName","src":"1028:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:38:5"},"returnParameters":{"id":689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":690,"src":"1072:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1071:9:5"},"scope":729,"src":"989:92:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":691,"nodeType":"StructuredDocumentation","src":"1087:365:5","text":" @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).\n NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.\n Votes that have not been delegated are still part of total supply, even though they would not participate in a\n vote."},"functionSelector":"8e539e8c","id":698,"implemented":false,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"1466:18:5","nodeType":"FunctionDefinition","parameters":{"id":694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":693,"mutability":"mutable","name":"blockNumber","nameLocation":"1493:11:5","nodeType":"VariableDeclaration","scope":698,"src":"1485:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":692,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1484:21:5"},"returnParameters":{"id":697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":696,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":698,"src":"1529:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1528:9:5"},"scope":729,"src":"1457:81:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":699,"nodeType":"StructuredDocumentation","src":"1544:71:5","text":" @dev Returns the delegate that `account` has chosen."},"functionSelector":"587cde1e","id":706,"implemented":false,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"1629:9:5","nodeType":"FunctionDefinition","parameters":{"id":702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":701,"mutability":"mutable","name":"account","nameLocation":"1647:7:5","nodeType":"VariableDeclaration","scope":706,"src":"1639:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1638:17:5"},"returnParameters":{"id":705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":706,"src":"1679:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":703,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:9:5"},"scope":729,"src":"1620:68:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"1694:71:5","text":" @dev Delegates votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","id":712,"implemented":false,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"1779:8:5","nodeType":"FunctionDefinition","parameters":{"id":710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"delegatee","nameLocation":"1796:9:5","nodeType":"VariableDeclaration","scope":712,"src":"1788:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1787:19:5"},"returnParameters":{"id":711,"nodeType":"ParameterList","parameters":[],"src":"1815:0:5"},"scope":729,"src":"1770:46:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":713,"nodeType":"StructuredDocumentation","src":"1822:67:5","text":" @dev Delegates votes from signer to `delegatee`."},"functionSelector":"c3cda520","id":728,"implemented":false,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"1903:13:5","nodeType":"FunctionDefinition","parameters":{"id":726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":715,"mutability":"mutable","name":"delegatee","nameLocation":"1934:9:5","nodeType":"VariableDeclaration","scope":728,"src":"1926:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":714,"name":"address","nodeType":"ElementaryTypeName","src":"1926:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":717,"mutability":"mutable","name":"nonce","nameLocation":"1961:5:5","nodeType":"VariableDeclaration","scope":728,"src":"1953:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":716,"name":"uint256","nodeType":"ElementaryTypeName","src":"1953:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":719,"mutability":"mutable","name":"expiry","nameLocation":"1984:6:5","nodeType":"VariableDeclaration","scope":728,"src":"1976:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":718,"name":"uint256","nodeType":"ElementaryTypeName","src":"1976:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":721,"mutability":"mutable","name":"v","nameLocation":"2006:1:5","nodeType":"VariableDeclaration","scope":728,"src":"2000:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":720,"name":"uint8","nodeType":"ElementaryTypeName","src":"2000:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":723,"mutability":"mutable","name":"r","nameLocation":"2025:1:5","nodeType":"VariableDeclaration","scope":728,"src":"2017:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":722,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2017:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":725,"mutability":"mutable","name":"s","nameLocation":"2044:1:5","nodeType":"VariableDeclaration","scope":728,"src":"2036:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2036:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1916:135:5"},"returnParameters":{"id":727,"nodeType":"ParameterList","parameters":[],"src":"2060:0:5"},"scope":729,"src":"1894:167:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":730,"src":"268:1795:5","usedErrors":[]}],"src":"110:1954:5"},"id":5},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[4686],"Pausable":[837]},"id":838,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":731,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:6"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":732,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":838,"sourceUnit":4687,"src":"130:30:6","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":734,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":4686,"src":"632:7:6"},"id":735,"nodeType":"InheritanceSpecifier","src":"632:7:6"}],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":733,"nodeType":"StructuredDocumentation","src":"162:439:6","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":837,"linearizedBaseContracts":[837,4686],"name":"Pausable","nameLocation":"620:8:6","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":736,"nodeType":"StructuredDocumentation","src":"646:73:6","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":740,"name":"Paused","nameLocation":"730:6:6","nodeType":"EventDefinition","parameters":{"id":739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":738,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:6","nodeType":"VariableDeclaration","scope":740,"src":"737:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":737,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:6"},"src":"724:30:6"},{"anonymous":false,"documentation":{"id":741,"nodeType":"StructuredDocumentation","src":"760:70:6","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":745,"name":"Unpaused","nameLocation":"841:8:6","nodeType":"EventDefinition","parameters":{"id":744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":743,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:6","nodeType":"VariableDeclaration","scope":745,"src":"850:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":742,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:6"},"src":"835:32:6"},{"constant":false,"id":747,"mutability":"mutable","name":"_paused","nameLocation":"886:7:6","nodeType":"VariableDeclaration","scope":837,"src":"873:20:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":746,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":755,"nodeType":"Block","src":"986:32:6","statements":[{"expression":{"id":753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":751,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"996:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":754,"nodeType":"ExpressionStatement","src":"996:15:6"}]},"documentation":{"id":748,"nodeType":"StructuredDocumentation","src":"900:67:6","text":" @dev Initializes the contract in unpaused state."},"id":756,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":749,"nodeType":"ParameterList","parameters":[],"src":"983:2:6"},"returnParameters":{"id":750,"nodeType":"ParameterList","parameters":[],"src":"986:0:6"},"scope":837,"src":"972:46:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":763,"nodeType":"Block","src":"1229:47:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":759,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":793,"src":"1239:17:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1239:19:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":761,"nodeType":"ExpressionStatement","src":"1239:19:6"},{"id":762,"nodeType":"PlaceholderStatement","src":"1268:1:6"}]},"documentation":{"id":757,"nodeType":"StructuredDocumentation","src":"1024:175:6","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":764,"name":"whenNotPaused","nameLocation":"1213:13:6","nodeType":"ModifierDefinition","parameters":{"id":758,"nodeType":"ParameterList","parameters":[],"src":"1226:2:6"},"src":"1204:72:6","virtual":false,"visibility":"internal"},{"body":{"id":771,"nodeType":"Block","src":"1476:44:6","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":767,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"1486:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1486:16:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":769,"nodeType":"ExpressionStatement","src":"1486:16:6"},{"id":770,"nodeType":"PlaceholderStatement","src":"1512:1:6"}]},"documentation":{"id":765,"nodeType":"StructuredDocumentation","src":"1282:167:6","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":772,"name":"whenPaused","nameLocation":"1463:10:6","nodeType":"ModifierDefinition","parameters":{"id":766,"nodeType":"ParameterList","parameters":[],"src":"1473:2:6"},"src":"1454:66:6","virtual":false,"visibility":"internal"},{"body":{"id":780,"nodeType":"Block","src":"1668:31:6","statements":[{"expression":{"id":778,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"1685:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":777,"id":779,"nodeType":"Return","src":"1678:14:6"}]},"documentation":{"id":773,"nodeType":"StructuredDocumentation","src":"1526:84:6","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":781,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:6","nodeType":"FunctionDefinition","parameters":{"id":774,"nodeType":"ParameterList","parameters":[],"src":"1630:2:6"},"returnParameters":{"id":777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":781,"src":"1662:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":775,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:6"},"scope":837,"src":"1615:84:6","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":792,"nodeType":"Block","src":"1818:55:6","statements":[{"expression":{"arguments":[{"id":788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:6","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":786,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"1837:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:8:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":785,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1828:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1828:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":791,"nodeType":"ExpressionStatement","src":"1828:38:6"}]},"documentation":{"id":782,"nodeType":"StructuredDocumentation","src":"1705:57:6","text":" @dev Throws if the contract is paused."},"id":793,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:6","nodeType":"FunctionDefinition","parameters":{"id":783,"nodeType":"ParameterList","parameters":[],"src":"1793:2:6"},"returnParameters":{"id":784,"nodeType":"ParameterList","parameters":[],"src":"1818:0:6"},"scope":837,"src":"1767:106:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":803,"nodeType":"Block","src":"1993:58:6","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":798,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"2011:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:8:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":797,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2003:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2003:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":802,"nodeType":"ExpressionStatement","src":"2003:41:6"}]},"documentation":{"id":794,"nodeType":"StructuredDocumentation","src":"1879:61:6","text":" @dev Throws if the contract is not paused."},"id":804,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:6","nodeType":"FunctionDefinition","parameters":{"id":795,"nodeType":"ParameterList","parameters":[],"src":"1968:2:6"},"returnParameters":{"id":796,"nodeType":"ParameterList","parameters":[],"src":"1993:0:6"},"scope":837,"src":"1945:106:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":819,"nodeType":"Block","src":"2235:66:6","statements":[{"expression":{"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":810,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"2245:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":813,"nodeType":"ExpressionStatement","src":"2245:14:6"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":815,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"2281:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2281:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":814,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":740,"src":"2274:6:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2274:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":818,"nodeType":"EmitStatement","src":"2269:25:6"}]},"documentation":{"id":805,"nodeType":"StructuredDocumentation","src":"2057:124:6","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":820,"implemented":true,"kind":"function","modifiers":[{"id":808,"kind":"modifierInvocation","modifierName":{"id":807,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":764,"src":"2221:13:6"},"nodeType":"ModifierInvocation","src":"2221:13:6"}],"name":"_pause","nameLocation":"2195:6:6","nodeType":"FunctionDefinition","parameters":{"id":806,"nodeType":"ParameterList","parameters":[],"src":"2201:2:6"},"returnParameters":{"id":809,"nodeType":"ParameterList","parameters":[],"src":"2235:0:6"},"scope":837,"src":"2186:115:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":835,"nodeType":"Block","src":"2481:69:6","statements":[{"expression":{"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":826,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"2491:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":829,"nodeType":"ExpressionStatement","src":"2491:15:6"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":831,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"2530:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2530:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":830,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"2521:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"EmitStatement","src":"2516:27:6"}]},"documentation":{"id":821,"nodeType":"StructuredDocumentation","src":"2307:121:6","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":836,"implemented":true,"kind":"function","modifiers":[{"id":824,"kind":"modifierInvocation","modifierName":{"id":823,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":772,"src":"2470:10:6"},"nodeType":"ModifierInvocation","src":"2470:10:6"}],"name":"_unpause","nameLocation":"2442:8:6","nodeType":"FunctionDefinition","parameters":{"id":822,"nodeType":"ParameterList","parameters":[],"src":"2450:2:6"},"returnParameters":{"id":825,"nodeType":"ParameterList","parameters":[],"src":"2481:0:6"},"scope":837,"src":"2433:117:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":838,"src":"602:1950:6","usedErrors":[]}],"src":"105:2448:6"},"id":6},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[4686],"ERC20":[1424],"IERC20":[1502],"IERC20Metadata":[2325]},"id":1425,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":839,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:7"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":840,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1425,"sourceUnit":1503,"src":"130:22:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":841,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1425,"sourceUnit":2326,"src":"153:41:7","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":842,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1425,"sourceUnit":4687,"src":"195:33:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":844,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":4686,"src":"1419:7:7"},"id":845,"nodeType":"InheritanceSpecifier","src":"1419:7:7"},{"baseName":{"id":846,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"1428:6:7"},"id":847,"nodeType":"InheritanceSpecifier","src":"1428:6:7"},{"baseName":{"id":848,"name":"IERC20Metadata","nodeType":"IdentifierPath","referencedDeclaration":2325,"src":"1436:14:7"},"id":849,"nodeType":"InheritanceSpecifier","src":"1436:14:7"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":843,"nodeType":"StructuredDocumentation","src":"230:1170:7","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":1424,"linearizedBaseContracts":[1424,2325,1502,4686],"name":"ERC20","nameLocation":"1410:5:7","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":853,"mutability":"mutable","name":"_balances","nameLocation":"1493:9:7","nodeType":"VariableDeclaration","scope":1424,"src":"1457:45:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":852,"keyType":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1457:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":851,"name":"uint256","nodeType":"ElementaryTypeName","src":"1476:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":859,"mutability":"mutable","name":"_allowances","nameLocation":"1565:11:7","nodeType":"VariableDeclaration","scope":1424,"src":"1509:67:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":858,"keyType":{"id":854,"name":"address","nodeType":"ElementaryTypeName","src":"1517:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1509:47:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":857,"keyType":{"id":855,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1528:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":856,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":861,"mutability":"mutable","name":"_totalSupply","nameLocation":"1599:12:7","nodeType":"VariableDeclaration","scope":1424,"src":"1583:28:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":860,"name":"uint256","nodeType":"ElementaryTypeName","src":"1583:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":863,"mutability":"mutable","name":"_name","nameLocation":"1633:5:7","nodeType":"VariableDeclaration","scope":1424,"src":"1618:20:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":862,"name":"string","nodeType":"ElementaryTypeName","src":"1618:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":865,"mutability":"mutable","name":"_symbol","nameLocation":"1659:7:7","nodeType":"VariableDeclaration","scope":1424,"src":"1644:22:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":864,"name":"string","nodeType":"ElementaryTypeName","src":"1644:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":881,"nodeType":"Block","src":"2032:57:7","statements":[{"expression":{"id":875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":873,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"2042:5:7","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":874,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":868,"src":"2050:5:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2042:13:7","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":876,"nodeType":"ExpressionStatement","src":"2042:13:7"},{"expression":{"id":879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":877,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"2065:7:7","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":878,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":870,"src":"2075:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2065:17:7","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":880,"nodeType":"ExpressionStatement","src":"2065:17:7"}]},"documentation":{"id":866,"nodeType":"StructuredDocumentation","src":"1673:298:7","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"id":882,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":868,"mutability":"mutable","name":"name_","nameLocation":"2002:5:7","nodeType":"VariableDeclaration","scope":882,"src":"1988:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":867,"name":"string","nodeType":"ElementaryTypeName","src":"1988:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":870,"mutability":"mutable","name":"symbol_","nameLocation":"2023:7:7","nodeType":"VariableDeclaration","scope":882,"src":"2009:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":869,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1987:44:7"},"returnParameters":{"id":872,"nodeType":"ParameterList","parameters":[],"src":"2032:0:7"},"scope":1424,"src":"1976:113:7","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2312],"body":{"id":891,"nodeType":"Block","src":"2223:29:7","statements":[{"expression":{"id":889,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"2240:5:7","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":888,"id":890,"nodeType":"Return","src":"2233:12:7"}]},"documentation":{"id":883,"nodeType":"StructuredDocumentation","src":"2095:54:7","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":892,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2163:4:7","nodeType":"FunctionDefinition","overrides":{"id":885,"nodeType":"OverrideSpecifier","overrides":[],"src":"2190:8:7"},"parameters":{"id":884,"nodeType":"ParameterList","parameters":[],"src":"2167:2:7"},"returnParameters":{"id":888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":892,"src":"2208:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":886,"name":"string","nodeType":"ElementaryTypeName","src":"2208:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2207:15:7"},"scope":1424,"src":"2154:98:7","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2318],"body":{"id":901,"nodeType":"Block","src":"2436:31:7","statements":[{"expression":{"id":899,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"2453:7:7","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":898,"id":900,"nodeType":"Return","src":"2446:14:7"}]},"documentation":{"id":893,"nodeType":"StructuredDocumentation","src":"2258:102:7","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":902,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2374:6:7","nodeType":"FunctionDefinition","overrides":{"id":895,"nodeType":"OverrideSpecifier","overrides":[],"src":"2403:8:7"},"parameters":{"id":894,"nodeType":"ParameterList","parameters":[],"src":"2380:2:7"},"returnParameters":{"id":898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":902,"src":"2421:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":896,"name":"string","nodeType":"ElementaryTypeName","src":"2421:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2420:15:7"},"scope":1424,"src":"2365:102:7","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2324],"body":{"id":911,"nodeType":"Block","src":"3156:26:7","statements":[{"expression":{"hexValue":"3138","id":909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:2:7","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":908,"id":910,"nodeType":"Return","src":"3166:9:7"}]},"documentation":{"id":903,"nodeType":"StructuredDocumentation","src":"2473:613:7","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":912,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3100:8:7","nodeType":"FunctionDefinition","overrides":{"id":905,"nodeType":"OverrideSpecifier","overrides":[],"src":"3131:8:7"},"parameters":{"id":904,"nodeType":"ParameterList","parameters":[],"src":"3108:2:7"},"returnParameters":{"id":908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":912,"src":"3149:5:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":906,"name":"uint8","nodeType":"ElementaryTypeName","src":"3149:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3148:7:7"},"scope":1424,"src":"3091:91:7","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1451],"body":{"id":921,"nodeType":"Block","src":"3312:36:7","statements":[{"expression":{"id":919,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"3329:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":918,"id":920,"nodeType":"Return","src":"3322:19:7"}]},"documentation":{"id":913,"nodeType":"StructuredDocumentation","src":"3188:49:7","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":922,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3251:11:7","nodeType":"FunctionDefinition","overrides":{"id":915,"nodeType":"OverrideSpecifier","overrides":[],"src":"3285:8:7"},"parameters":{"id":914,"nodeType":"ParameterList","parameters":[],"src":"3262:2:7"},"returnParameters":{"id":918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":922,"src":"3303:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":916,"name":"uint256","nodeType":"ElementaryTypeName","src":"3303:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3302:9:7"},"scope":1424,"src":"3242:106:7","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1459],"body":{"id":935,"nodeType":"Block","src":"3489:42:7","statements":[{"expression":{"baseExpression":{"id":931,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"3506:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":933,"indexExpression":{"id":932,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"3516:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3506:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":930,"id":934,"nodeType":"Return","src":"3499:25:7"}]},"documentation":{"id":923,"nodeType":"StructuredDocumentation","src":"3354:47:7","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":936,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3415:9:7","nodeType":"FunctionDefinition","overrides":{"id":927,"nodeType":"OverrideSpecifier","overrides":[],"src":"3462:8:7"},"parameters":{"id":926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":925,"mutability":"mutable","name":"account","nameLocation":"3433:7:7","nodeType":"VariableDeclaration","scope":936,"src":"3425:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":924,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3424:17:7"},"returnParameters":{"id":930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":936,"src":"3480:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":928,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:9:7"},"scope":1424,"src":"3406:125:7","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1469],"body":{"id":960,"nodeType":"Block","src":"3812:104:7","statements":[{"assignments":[948],"declarations":[{"constant":false,"id":948,"mutability":"mutable","name":"owner","nameLocation":"3830:5:7","nodeType":"VariableDeclaration","scope":960,"src":"3822:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":947,"name":"address","nodeType":"ElementaryTypeName","src":"3822:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":951,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":949,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"3838:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3822:28:7"},{"expression":{"arguments":[{"id":953,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":948,"src":"3870:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":954,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":939,"src":"3877:2:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":955,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":941,"src":"3881:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":952,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1184,"src":"3860:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":957,"nodeType":"ExpressionStatement","src":"3860:28:7"},{"expression":{"hexValue":"74727565","id":958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3905:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":946,"id":959,"nodeType":"Return","src":"3898:11:7"}]},"documentation":{"id":937,"nodeType":"StructuredDocumentation","src":"3537:185:7","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":961,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3736:8:7","nodeType":"FunctionDefinition","overrides":{"id":943,"nodeType":"OverrideSpecifier","overrides":[],"src":"3788:8:7"},"parameters":{"id":942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":939,"mutability":"mutable","name":"to","nameLocation":"3753:2:7","nodeType":"VariableDeclaration","scope":961,"src":"3745:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":938,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":941,"mutability":"mutable","name":"amount","nameLocation":"3765:6:7","nodeType":"VariableDeclaration","scope":961,"src":"3757:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":940,"name":"uint256","nodeType":"ElementaryTypeName","src":"3757:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3744:28:7"},"returnParameters":{"id":946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":961,"src":"3806:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":944,"name":"bool","nodeType":"ElementaryTypeName","src":"3806:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3805:6:7"},"scope":1424,"src":"3727:189:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1479],"body":{"id":978,"nodeType":"Block","src":"4072:51:7","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":972,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"4089:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":974,"indexExpression":{"id":973,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"4101:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:18:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":976,"indexExpression":{"id":975,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":966,"src":"4108:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:27:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":971,"id":977,"nodeType":"Return","src":"4082:34:7"}]},"documentation":{"id":962,"nodeType":"StructuredDocumentation","src":"3922:47:7","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":979,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3983:9:7","nodeType":"FunctionDefinition","overrides":{"id":968,"nodeType":"OverrideSpecifier","overrides":[],"src":"4045:8:7"},"parameters":{"id":967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":964,"mutability":"mutable","name":"owner","nameLocation":"4001:5:7","nodeType":"VariableDeclaration","scope":979,"src":"3993:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":963,"name":"address","nodeType":"ElementaryTypeName","src":"3993:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":966,"mutability":"mutable","name":"spender","nameLocation":"4016:7:7","nodeType":"VariableDeclaration","scope":979,"src":"4008:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":965,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3992:32:7"},"returnParameters":{"id":971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":979,"src":"4063:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":969,"name":"uint256","nodeType":"ElementaryTypeName","src":"4063:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4062:9:7"},"scope":1424,"src":"3974:149:7","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1489],"body":{"id":1003,"nodeType":"Block","src":"4520:108:7","statements":[{"assignments":[991],"declarations":[{"constant":false,"id":991,"mutability":"mutable","name":"owner","nameLocation":"4538:5:7","nodeType":"VariableDeclaration","scope":1003,"src":"4530:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":990,"name":"address","nodeType":"ElementaryTypeName","src":"4530:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":994,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":992,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"4546:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4546:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4530:28:7"},{"expression":{"arguments":[{"id":996,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"4577:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":997,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":982,"src":"4584:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":998,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":984,"src":"4593:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":995,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"4568:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4568:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1000,"nodeType":"ExpressionStatement","src":"4568:32:7"},{"expression":{"hexValue":"74727565","id":1001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4617:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":989,"id":1002,"nodeType":"Return","src":"4610:11:7"}]},"documentation":{"id":980,"nodeType":"StructuredDocumentation","src":"4129:297:7","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":1004,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4440:7:7","nodeType":"FunctionDefinition","overrides":{"id":986,"nodeType":"OverrideSpecifier","overrides":[],"src":"4496:8:7"},"parameters":{"id":985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":982,"mutability":"mutable","name":"spender","nameLocation":"4456:7:7","nodeType":"VariableDeclaration","scope":1004,"src":"4448:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":981,"name":"address","nodeType":"ElementaryTypeName","src":"4448:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":984,"mutability":"mutable","name":"amount","nameLocation":"4473:6:7","nodeType":"VariableDeclaration","scope":1004,"src":"4465:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":983,"name":"uint256","nodeType":"ElementaryTypeName","src":"4465:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4447:33:7"},"returnParameters":{"id":989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1004,"src":"4514:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":987,"name":"bool","nodeType":"ElementaryTypeName","src":"4514:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4513:6:7"},"scope":1424,"src":"4431:197:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1501],"body":{"id":1036,"nodeType":"Block","src":"5323:153:7","statements":[{"assignments":[1018],"declarations":[{"constant":false,"id":1018,"mutability":"mutable","name":"spender","nameLocation":"5341:7:7","nodeType":"VariableDeclaration","scope":1036,"src":"5333:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1017,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1021,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1019,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"5351:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5351:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5333:30:7"},{"expression":{"arguments":[{"id":1023,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"5389:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1024,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1018,"src":"5395:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1025,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"5404:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1022,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"5373:15:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5373:38:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1027,"nodeType":"ExpressionStatement","src":"5373:38:7"},{"expression":{"arguments":[{"id":1029,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"5431:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1030,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1009,"src":"5437:2:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1031,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"5441:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1028,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1184,"src":"5421:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5421:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1033,"nodeType":"ExpressionStatement","src":"5421:27:7"},{"expression":{"hexValue":"74727565","id":1034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5465:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1016,"id":1035,"nodeType":"Return","src":"5458:11:7"}]},"documentation":{"id":1005,"nodeType":"StructuredDocumentation","src":"4634:551:7","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":1037,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5199:12:7","nodeType":"FunctionDefinition","overrides":{"id":1013,"nodeType":"OverrideSpecifier","overrides":[],"src":"5299:8:7"},"parameters":{"id":1012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1007,"mutability":"mutable","name":"from","nameLocation":"5229:4:7","nodeType":"VariableDeclaration","scope":1037,"src":"5221:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1006,"name":"address","nodeType":"ElementaryTypeName","src":"5221:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1009,"mutability":"mutable","name":"to","nameLocation":"5251:2:7","nodeType":"VariableDeclaration","scope":1037,"src":"5243:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1008,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1011,"mutability":"mutable","name":"amount","nameLocation":"5271:6:7","nodeType":"VariableDeclaration","scope":1037,"src":"5263:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1010,"name":"uint256","nodeType":"ElementaryTypeName","src":"5263:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5211:72:7"},"returnParameters":{"id":1016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1037,"src":"5317:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1014,"name":"bool","nodeType":"ElementaryTypeName","src":"5317:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5316:6:7"},"scope":1424,"src":"5190:286:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1065,"nodeType":"Block","src":"5965:140:7","statements":[{"assignments":[1048],"declarations":[{"constant":false,"id":1048,"mutability":"mutable","name":"owner","nameLocation":"5983:5:7","nodeType":"VariableDeclaration","scope":1065,"src":"5975:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1047,"name":"address","nodeType":"ElementaryTypeName","src":"5975:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1051,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1049,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"5991:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5991:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5975:28:7"},{"expression":{"arguments":[{"id":1053,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"6022:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1054,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"6029:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1056,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"6048:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1057,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"6055:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1055,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":979,"src":"6038:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6038:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1059,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1042,"src":"6066:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6038:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1052,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"6013:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6013:64:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1062,"nodeType":"ExpressionStatement","src":"6013:64:7"},{"expression":{"hexValue":"74727565","id":1063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6094:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1046,"id":1064,"nodeType":"Return","src":"6087:11:7"}]},"documentation":{"id":1038,"nodeType":"StructuredDocumentation","src":"5482:384:7","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":1066,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5880:17:7","nodeType":"FunctionDefinition","parameters":{"id":1043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1040,"mutability":"mutable","name":"spender","nameLocation":"5906:7:7","nodeType":"VariableDeclaration","scope":1066,"src":"5898:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1039,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1042,"mutability":"mutable","name":"addedValue","nameLocation":"5923:10:7","nodeType":"VariableDeclaration","scope":1066,"src":"5915:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1041,"name":"uint256","nodeType":"ElementaryTypeName","src":"5915:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5897:37:7"},"returnParameters":{"id":1046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1045,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1066,"src":"5959:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1044,"name":"bool","nodeType":"ElementaryTypeName","src":"5959:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5958:6:7"},"scope":1424,"src":"5871:234:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1106,"nodeType":"Block","src":"6691:328:7","statements":[{"assignments":[1077],"declarations":[{"constant":false,"id":1077,"mutability":"mutable","name":"owner","nameLocation":"6709:5:7","nodeType":"VariableDeclaration","scope":1106,"src":"6701:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1076,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1080,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1078,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"6717:10:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6717:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6701:28:7"},{"assignments":[1082],"declarations":[{"constant":false,"id":1082,"mutability":"mutable","name":"currentAllowance","nameLocation":"6747:16:7","nodeType":"VariableDeclaration","scope":1106,"src":"6739:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1081,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1087,"initialValue":{"arguments":[{"id":1084,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"6776:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1085,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"6783:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1083,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":979,"src":"6766:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6766:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6739:52:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1089,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"6809:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1090,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"6829:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6809:35:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":1088,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6801:7:7","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,"names":[],"nodeType":"FunctionCall","src":"6801:85:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1094,"nodeType":"ExpressionStatement","src":"6801:85:7"},{"id":1103,"nodeType":"UncheckedBlock","src":"6896:95:7","statements":[{"expression":{"arguments":[{"id":1096,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"6929:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1097,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"6936:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1098,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"6945:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1099,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"6964:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6945:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1095,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"6920:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6920:60:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1102,"nodeType":"ExpressionStatement","src":"6920:60:7"}]},{"expression":{"hexValue":"74727565","id":1104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7008:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1075,"id":1105,"nodeType":"Return","src":"7001:11:7"}]},"documentation":{"id":1067,"nodeType":"StructuredDocumentation","src":"6111:476:7","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":1107,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6601:17:7","nodeType":"FunctionDefinition","parameters":{"id":1072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1069,"mutability":"mutable","name":"spender","nameLocation":"6627:7:7","nodeType":"VariableDeclaration","scope":1107,"src":"6619:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1068,"name":"address","nodeType":"ElementaryTypeName","src":"6619:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1071,"mutability":"mutable","name":"subtractedValue","nameLocation":"6644:15:7","nodeType":"VariableDeclaration","scope":1107,"src":"6636:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1070,"name":"uint256","nodeType":"ElementaryTypeName","src":"6636:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6618:42:7"},"returnParameters":{"id":1075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1107,"src":"6685:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1073,"name":"bool","nodeType":"ElementaryTypeName","src":"6685:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6684:6:7"},"scope":1424,"src":"6592:427:7","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1183,"nodeType":"Block","src":"7581:710:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1118,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"7599:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7607:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1119,"name":"address","nodeType":"ElementaryTypeName","src":"7607:7:7","typeDescriptions":{}}},"id":1122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7607:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7599:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":1124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7619:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":1117,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7591:7:7","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,"names":[],"nodeType":"FunctionCall","src":"7591:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1126,"nodeType":"ExpressionStatement","src":"7591:68:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1128,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1112,"src":"7677:2:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7691:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7683:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1129,"name":"address","nodeType":"ElementaryTypeName","src":"7683:7:7","typeDescriptions":{}}},"id":1132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7683:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7677:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":1134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7695:37:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":1127,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7669:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7669:64:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1136,"nodeType":"ExpressionStatement","src":"7669:64:7"},{"expression":{"arguments":[{"id":1138,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"7765:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1139,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1112,"src":"7771:2:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1140,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1114,"src":"7775:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1137,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1412,"src":"7744:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7744:38:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1142,"nodeType":"ExpressionStatement","src":"7744:38:7"},{"assignments":[1144],"declarations":[{"constant":false,"id":1144,"mutability":"mutable","name":"fromBalance","nameLocation":"7801:11:7","nodeType":"VariableDeclaration","scope":1183,"src":"7793:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1143,"name":"uint256","nodeType":"ElementaryTypeName","src":"7793:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1148,"initialValue":{"baseExpression":{"id":1145,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"7815:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1147,"indexExpression":{"id":1146,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"7825:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7815:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7793:37:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1150,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"7848:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1151,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1114,"src":"7863:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":1153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:40:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":1149,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7840:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7840:72:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1155,"nodeType":"ExpressionStatement","src":"7840:72:7"},{"id":1170,"nodeType":"UncheckedBlock","src":"7922:273:7","statements":[{"expression":{"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1156,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"7946:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1158,"indexExpression":{"id":1157,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"7956:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7946:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1159,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"7964:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1160,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1114,"src":"7978:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7964:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7946:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1163,"nodeType":"ExpressionStatement","src":"7946:38:7"},{"expression":{"id":1168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1164,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"8161:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1166,"indexExpression":{"id":1165,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1112,"src":"8171:2:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8161:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1167,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1114,"src":"8178:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8161:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1169,"nodeType":"ExpressionStatement","src":"8161:23:7"}]},{"eventCall":{"arguments":[{"id":1172,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"8219:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1173,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1112,"src":"8225:2:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1174,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1114,"src":"8229:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1171,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1436,"src":"8210:8:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8210:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1176,"nodeType":"EmitStatement","src":"8205:31:7"},{"expression":{"arguments":[{"id":1178,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"8267:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1179,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1112,"src":"8273:2:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1180,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1114,"src":"8277:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1177,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"8247:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8247:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1182,"nodeType":"ExpressionStatement","src":"8247:37:7"}]},"documentation":{"id":1108,"nodeType":"StructuredDocumentation","src":"7025:443:7","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":1184,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7482:9:7","nodeType":"FunctionDefinition","parameters":{"id":1115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1110,"mutability":"mutable","name":"from","nameLocation":"7509:4:7","nodeType":"VariableDeclaration","scope":1184,"src":"7501:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1109,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1112,"mutability":"mutable","name":"to","nameLocation":"7531:2:7","nodeType":"VariableDeclaration","scope":1184,"src":"7523:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1111,"name":"address","nodeType":"ElementaryTypeName","src":"7523:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1114,"mutability":"mutable","name":"amount","nameLocation":"7551:6:7","nodeType":"VariableDeclaration","scope":1184,"src":"7543:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1113,"name":"uint256","nodeType":"ElementaryTypeName","src":"7543:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7491:72:7"},"returnParameters":{"id":1116,"nodeType":"ParameterList","parameters":[],"src":"7581:0:7"},"scope":1424,"src":"7473:818:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1240,"nodeType":"Block","src":"8632:470:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1193,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"8650:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8669:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8661:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1194,"name":"address","nodeType":"ElementaryTypeName","src":"8661:7:7","typeDescriptions":{}}},"id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8661:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8650:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":1199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8673:33:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":1192,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8642:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8642:65:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1201,"nodeType":"ExpressionStatement","src":"8642:65:7"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8747:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1203,"name":"address","nodeType":"ElementaryTypeName","src":"8739:7:7","typeDescriptions":{}}},"id":1206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8739:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1207,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"8751:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"8760:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1202,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1412,"src":"8718:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8718:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1210,"nodeType":"ExpressionStatement","src":"8718:49:7"},{"expression":{"id":1213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1211,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"8778:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1212,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"8794:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8778:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1214,"nodeType":"ExpressionStatement","src":"8778:22:7"},{"id":1221,"nodeType":"UncheckedBlock","src":"8810:175:7","statements":[{"expression":{"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1215,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"8946:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1217,"indexExpression":{"id":1216,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"8956:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8946:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1218,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"8968:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8946:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1220,"nodeType":"ExpressionStatement","src":"8946:28:7"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9016:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9008:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1223,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:7","typeDescriptions":{}}},"id":1226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9008:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1227,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"9020:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1228,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"9029:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1222,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1436,"src":"8999:8:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8999:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1230,"nodeType":"EmitStatement","src":"8994:42:7"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9075:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9067:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1232,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:7","typeDescriptions":{}}},"id":1235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9067:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1236,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1187,"src":"9079:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1237,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"9088:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1231,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"9047:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9047:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1239,"nodeType":"ExpressionStatement","src":"9047:48:7"}]},"documentation":{"id":1185,"nodeType":"StructuredDocumentation","src":"8297:265:7","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":1241,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8576:5:7","nodeType":"FunctionDefinition","parameters":{"id":1190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1187,"mutability":"mutable","name":"account","nameLocation":"8590:7:7","nodeType":"VariableDeclaration","scope":1241,"src":"8582:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1186,"name":"address","nodeType":"ElementaryTypeName","src":"8582:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1189,"mutability":"mutable","name":"amount","nameLocation":"8607:6:7","nodeType":"VariableDeclaration","scope":1241,"src":"8599:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1188,"name":"uint256","nodeType":"ElementaryTypeName","src":"8599:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8581:33:7"},"returnParameters":{"id":1191,"nodeType":"ParameterList","parameters":[],"src":"8632:0:7"},"scope":1424,"src":"8567:535:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1312,"nodeType":"Block","src":"9487:594:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1250,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"9505:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1251,"name":"address","nodeType":"ElementaryTypeName","src":"9516:7:7","typeDescriptions":{}}},"id":1254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9516:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9505:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":1256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9528:35:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":1249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9497:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9497:67:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1258,"nodeType":"ExpressionStatement","src":"9497:67:7"},{"expression":{"arguments":[{"id":1260,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"9596:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9613:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9605:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1261,"name":"address","nodeType":"ElementaryTypeName","src":"9605:7:7","typeDescriptions":{}}},"id":1264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9605:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1265,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"9617:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1259,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1412,"src":"9575:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9575:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1267,"nodeType":"ExpressionStatement","src":"9575:49:7"},{"assignments":[1269],"declarations":[{"constant":false,"id":1269,"mutability":"mutable","name":"accountBalance","nameLocation":"9643:14:7","nodeType":"VariableDeclaration","scope":1312,"src":"9635:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1268,"name":"uint256","nodeType":"ElementaryTypeName","src":"9635:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1273,"initialValue":{"baseExpression":{"id":1270,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"9660:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1272,"indexExpression":{"id":1271,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"9670:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9660:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9635:43:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1275,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"9696:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1276,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"9714:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9696:24:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":1278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9722:36:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":1274,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9688:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9688:71:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1280,"nodeType":"ExpressionStatement","src":"9688:71:7"},{"id":1293,"nodeType":"UncheckedBlock","src":"9769:194:7","statements":[{"expression":{"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1281,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"9793:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1283,"indexExpression":{"id":1282,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"9803:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9793:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1284,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"9814:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1285,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"9831:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9814:23:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9793:44:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1288,"nodeType":"ExpressionStatement","src":"9793:44:7"},{"expression":{"id":1291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1289,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"9930:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1290,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"9946:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9930:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1292,"nodeType":"ExpressionStatement","src":"9930:22:7"}]},{"eventCall":{"arguments":[{"id":1295,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"9987:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10004:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9996:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1296,"name":"address","nodeType":"ElementaryTypeName","src":"9996:7:7","typeDescriptions":{}}},"id":1299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9996:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1300,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"10008:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1294,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1436,"src":"9978:8:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9978:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1302,"nodeType":"EmitStatement","src":"9973:42:7"},{"expression":{"arguments":[{"id":1304,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"10046:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10063:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10055:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"10055:7:7","typeDescriptions":{}}},"id":1308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10055:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1309,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"10067:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1303,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1423,"src":"10026:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10026:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1311,"nodeType":"ExpressionStatement","src":"10026:48:7"}]},"documentation":{"id":1242,"nodeType":"StructuredDocumentation","src":"9108:309:7","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":1313,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9431:5:7","nodeType":"FunctionDefinition","parameters":{"id":1247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"mutability":"mutable","name":"account","nameLocation":"9445:7:7","nodeType":"VariableDeclaration","scope":1313,"src":"9437:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"9437:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1246,"mutability":"mutable","name":"amount","nameLocation":"9462:6:7","nodeType":"VariableDeclaration","scope":1313,"src":"9454:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1245,"name":"uint256","nodeType":"ElementaryTypeName","src":"9454:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9436:33:7"},"returnParameters":{"id":1248,"nodeType":"ParameterList","parameters":[],"src":"9487:0:7"},"scope":1424,"src":"9422:659:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1357,"nodeType":"Block","src":"10617:257:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1324,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1316,"src":"10635:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10652:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10644:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1325,"name":"address","nodeType":"ElementaryTypeName","src":"10644:7:7","typeDescriptions":{}}},"id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10644:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10635:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":1330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10656:38:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":1323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10627:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10627:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1332,"nodeType":"ExpressionStatement","src":"10627:68:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1334,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"10713:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10732:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10724:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1335,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:7","typeDescriptions":{}}},"id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10724:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10713:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":1340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10736:36:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":1333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10705:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10705:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1342,"nodeType":"ExpressionStatement","src":"10705:68:7"},{"expression":{"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1343,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"10784:11:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":1346,"indexExpression":{"id":1344,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1316,"src":"10796:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10784:18:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1347,"indexExpression":{"id":1345,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"10803:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10784:27:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1348,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"10814:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10784:36:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1350,"nodeType":"ExpressionStatement","src":"10784:36:7"},{"eventCall":{"arguments":[{"id":1352,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1316,"src":"10844:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1353,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"10851:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1354,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"10860:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1351,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"10835:8:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10835:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1356,"nodeType":"EmitStatement","src":"10830:37:7"}]},"documentation":{"id":1314,"nodeType":"StructuredDocumentation","src":"10087:412:7","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":1358,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10513:8:7","nodeType":"FunctionDefinition","parameters":{"id":1321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1316,"mutability":"mutable","name":"owner","nameLocation":"10539:5:7","nodeType":"VariableDeclaration","scope":1358,"src":"10531:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1315,"name":"address","nodeType":"ElementaryTypeName","src":"10531:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1318,"mutability":"mutable","name":"spender","nameLocation":"10562:7:7","nodeType":"VariableDeclaration","scope":1358,"src":"10554:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1317,"name":"address","nodeType":"ElementaryTypeName","src":"10554:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1320,"mutability":"mutable","name":"amount","nameLocation":"10587:6:7","nodeType":"VariableDeclaration","scope":1358,"src":"10579:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1319,"name":"uint256","nodeType":"ElementaryTypeName","src":"10579:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10521:78:7"},"returnParameters":{"id":1322,"nodeType":"ParameterList","parameters":[],"src":"10617:0:7"},"scope":1424,"src":"10504:370:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1400,"nodeType":"Block","src":"11275:321:7","statements":[{"assignments":[1369],"declarations":[{"constant":false,"id":1369,"mutability":"mutable","name":"currentAllowance","nameLocation":"11293:16:7","nodeType":"VariableDeclaration","scope":1400,"src":"11285:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1368,"name":"uint256","nodeType":"ElementaryTypeName","src":"11285:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1374,"initialValue":{"arguments":[{"id":1371,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1361,"src":"11322:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1372,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1363,"src":"11329:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1370,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":979,"src":"11312:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11312:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11285:52:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1375,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"11351:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":1378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11376:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1377,"name":"uint256","nodeType":"ElementaryTypeName","src":"11376:7:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1376,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11371:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11371:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11371:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11351:37:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1399,"nodeType":"IfStatement","src":"11347:243:7","trueBody":{"id":1398,"nodeType":"Block","src":"11390:200:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1383,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"11412:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1384,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"11432:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11412:26:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":1386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11440:31:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":1382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11404:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11404:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1388,"nodeType":"ExpressionStatement","src":"11404:68:7"},{"id":1397,"nodeType":"UncheckedBlock","src":"11486:94:7","statements":[{"expression":{"arguments":[{"id":1390,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1361,"src":"11523:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1391,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1363,"src":"11530:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1392,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"11539:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1393,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"11558:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11539:25:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1389,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"11514:8:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11514:51:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1396,"nodeType":"ExpressionStatement","src":"11514:51:7"}]}]}}]},"documentation":{"id":1359,"nodeType":"StructuredDocumentation","src":"10880:270:7","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":1401,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11164:15:7","nodeType":"FunctionDefinition","parameters":{"id":1366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1361,"mutability":"mutable","name":"owner","nameLocation":"11197:5:7","nodeType":"VariableDeclaration","scope":1401,"src":"11189:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1360,"name":"address","nodeType":"ElementaryTypeName","src":"11189:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1363,"mutability":"mutable","name":"spender","nameLocation":"11220:7:7","nodeType":"VariableDeclaration","scope":1401,"src":"11212:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1362,"name":"address","nodeType":"ElementaryTypeName","src":"11212:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1365,"mutability":"mutable","name":"amount","nameLocation":"11245:6:7","nodeType":"VariableDeclaration","scope":1401,"src":"11237:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1364,"name":"uint256","nodeType":"ElementaryTypeName","src":"11237:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11179:78:7"},"returnParameters":{"id":1367,"nodeType":"ParameterList","parameters":[],"src":"11275:0:7"},"scope":1424,"src":"11155:441:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1411,"nodeType":"Block","src":"12299:2:7","statements":[]},"documentation":{"id":1402,"nodeType":"StructuredDocumentation","src":"11602:573:7","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":1412,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12189:20:7","nodeType":"FunctionDefinition","parameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1404,"mutability":"mutable","name":"from","nameLocation":"12227:4:7","nodeType":"VariableDeclaration","scope":1412,"src":"12219:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1403,"name":"address","nodeType":"ElementaryTypeName","src":"12219:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1406,"mutability":"mutable","name":"to","nameLocation":"12249:2:7","nodeType":"VariableDeclaration","scope":1412,"src":"12241:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1405,"name":"address","nodeType":"ElementaryTypeName","src":"12241:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1408,"mutability":"mutable","name":"amount","nameLocation":"12269:6:7","nodeType":"VariableDeclaration","scope":1412,"src":"12261:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1407,"name":"uint256","nodeType":"ElementaryTypeName","src":"12261:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:72:7"},"returnParameters":{"id":1410,"nodeType":"ParameterList","parameters":[],"src":"12299:0:7"},"scope":1424,"src":"12180:121:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1422,"nodeType":"Block","src":"13007:2:7","statements":[]},"documentation":{"id":1413,"nodeType":"StructuredDocumentation","src":"12307:577:7","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":1423,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12898:19:7","nodeType":"FunctionDefinition","parameters":{"id":1420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1415,"mutability":"mutable","name":"from","nameLocation":"12935:4:7","nodeType":"VariableDeclaration","scope":1423,"src":"12927:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1414,"name":"address","nodeType":"ElementaryTypeName","src":"12927:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1417,"mutability":"mutable","name":"to","nameLocation":"12957:2:7","nodeType":"VariableDeclaration","scope":1423,"src":"12949:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1416,"name":"address","nodeType":"ElementaryTypeName","src":"12949:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1419,"mutability":"mutable","name":"amount","nameLocation":"12977:6:7","nodeType":"VariableDeclaration","scope":1423,"src":"12969:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1418,"name":"uint256","nodeType":"ElementaryTypeName","src":"12969:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12917:72:7"},"returnParameters":{"id":1421,"nodeType":"ParameterList","parameters":[],"src":"13007:0:7"},"scope":1424,"src":"12889:120:7","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1425,"src":"1401:11610:7","usedErrors":[]}],"src":"105:12907:7"},"id":7},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[1502]},"id":1503,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1426,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:8"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":1427,"nodeType":"StructuredDocumentation","src":"131:70:8","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":1502,"linearizedBaseContracts":[1502],"name":"IERC20","nameLocation":"212:6:8","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1428,"nodeType":"StructuredDocumentation","src":"225:158:8","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":1436,"name":"Transfer","nameLocation":"394:8:8","nodeType":"EventDefinition","parameters":{"id":1435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1430,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:8","nodeType":"VariableDeclaration","scope":1436,"src":"403:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1429,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1432,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:8","nodeType":"VariableDeclaration","scope":1436,"src":"425:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1431,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1434,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:8","nodeType":"VariableDeclaration","scope":1436,"src":"445:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1433,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:8"},"src":"388:72:8"},{"anonymous":false,"documentation":{"id":1437,"nodeType":"StructuredDocumentation","src":"466:148:8","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":1445,"name":"Approval","nameLocation":"625:8:8","nodeType":"EventDefinition","parameters":{"id":1444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1439,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:8","nodeType":"VariableDeclaration","scope":1445,"src":"634:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1438,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1441,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:8","nodeType":"VariableDeclaration","scope":1445,"src":"657:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1440,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1443,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:8","nodeType":"VariableDeclaration","scope":1445,"src":"682:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1442,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:8"},"src":"619:78:8"},{"documentation":{"id":1446,"nodeType":"StructuredDocumentation","src":"703:66:8","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":1451,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:8","nodeType":"FunctionDefinition","parameters":{"id":1447,"nodeType":"ParameterList","parameters":[],"src":"794:2:8"},"returnParameters":{"id":1450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1451,"src":"820:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1448,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:8"},"scope":1502,"src":"774:55:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1452,"nodeType":"StructuredDocumentation","src":"835:72:8","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":1459,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:8","nodeType":"FunctionDefinition","parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"account","nameLocation":"939:7:8","nodeType":"VariableDeclaration","scope":1459,"src":"931:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1453,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:8"},"returnParameters":{"id":1458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1459,"src":"971:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1456,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:8"},"scope":1502,"src":"912:68:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1460,"nodeType":"StructuredDocumentation","src":"986:202:8","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":1469,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:8","nodeType":"FunctionDefinition","parameters":{"id":1465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1462,"mutability":"mutable","name":"to","nameLocation":"1219:2:8","nodeType":"VariableDeclaration","scope":1469,"src":"1211:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1461,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1464,"mutability":"mutable","name":"amount","nameLocation":"1231:6:8","nodeType":"VariableDeclaration","scope":1469,"src":"1223:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1463,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:8"},"returnParameters":{"id":1468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1469,"src":"1257:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1466,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:8"},"scope":1502,"src":"1193:70:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1470,"nodeType":"StructuredDocumentation","src":"1269:264:8","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":1479,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:8","nodeType":"FunctionDefinition","parameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"owner","nameLocation":"1565:5:8","nodeType":"VariableDeclaration","scope":1479,"src":"1557:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1471,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"spender","nameLocation":"1580:7:8","nodeType":"VariableDeclaration","scope":1479,"src":"1572:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1473,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:8"},"returnParameters":{"id":1478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1479,"src":"1612:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1476,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:8"},"scope":1502,"src":"1538:83:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1480,"nodeType":"StructuredDocumentation","src":"1627:642:8","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":1489,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:8","nodeType":"FunctionDefinition","parameters":{"id":1485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1482,"mutability":"mutable","name":"spender","nameLocation":"2299:7:8","nodeType":"VariableDeclaration","scope":1489,"src":"2291:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1481,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1484,"mutability":"mutable","name":"amount","nameLocation":"2316:6:8","nodeType":"VariableDeclaration","scope":1489,"src":"2308:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1483,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:8"},"returnParameters":{"id":1488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1489,"src":"2342:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1486,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:8"},"scope":1502,"src":"2274:74:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1490,"nodeType":"StructuredDocumentation","src":"2354:287:8","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":1501,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:8","nodeType":"FunctionDefinition","parameters":{"id":1497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1492,"mutability":"mutable","name":"from","nameLocation":"2685:4:8","nodeType":"VariableDeclaration","scope":1501,"src":"2677:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1491,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1494,"mutability":"mutable","name":"to","nameLocation":"2707:2:8","nodeType":"VariableDeclaration","scope":1501,"src":"2699:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1493,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1496,"mutability":"mutable","name":"amount","nameLocation":"2727:6:8","nodeType":"VariableDeclaration","scope":1501,"src":"2719:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1495,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:8"},"returnParameters":{"id":1500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1501,"src":"2758:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1498,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:8"},"scope":1502,"src":"2646:118:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1503,"src":"202:2564:8","usedErrors":[]}],"src":"106:2661:8"},"id":8},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","exportedSymbols":{"Context":[4686],"ERC20":[1424],"ERC20Burnable":[1546],"IERC20":[1502],"IERC20Metadata":[2325]},"id":1547,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1504,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"124:23:9"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","id":1505,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1547,"sourceUnit":1425,"src":"149:22:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../../utils/Context.sol","id":1506,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1547,"sourceUnit":4687,"src":"172:36:9","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1508,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":4686,"src":"454:7:9"},"id":1509,"nodeType":"InheritanceSpecifier","src":"454:7:9"},{"baseName":{"id":1510,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":1424,"src":"463:5:9"},"id":1511,"nodeType":"InheritanceSpecifier","src":"463:5:9"}],"canonicalName":"ERC20Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1507,"nodeType":"StructuredDocumentation","src":"210:208:9","text":" @dev Extension of {ERC20} that allows token holders to destroy both their own\n tokens and those that they have an allowance for, in a way that can be\n recognized off-chain (via event analysis)."},"fullyImplemented":false,"id":1546,"linearizedBaseContracts":[1546,1424,2325,1502,4686],"name":"ERC20Burnable","nameLocation":"437:13:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":1523,"nodeType":"Block","src":"623:44:9","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1518,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"639:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"639:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1520,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1514,"src":"653:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1517,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1313,"src":"633:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"633:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1522,"nodeType":"ExpressionStatement","src":"633:27:9"}]},"documentation":{"id":1512,"nodeType":"StructuredDocumentation","src":"475:98:9","text":" @dev Destroys `amount` tokens from the caller.\n See {ERC20-_burn}."},"functionSelector":"42966c68","id":1524,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"587:4:9","nodeType":"FunctionDefinition","parameters":{"id":1515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1514,"mutability":"mutable","name":"amount","nameLocation":"600:6:9","nodeType":"VariableDeclaration","scope":1524,"src":"592:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1513,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:16:9"},"returnParameters":{"id":1516,"nodeType":"ParameterList","parameters":[],"src":"623:0:9"},"scope":1546,"src":"578:89:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1544,"nodeType":"Block","src":"1039:95:9","statements":[{"expression":{"arguments":[{"id":1533,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"1065:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1534,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"1074:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1536,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1529,"src":"1088: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"}],"id":1532,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"1049:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1049:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1538,"nodeType":"ExpressionStatement","src":"1049:46:9"},{"expression":{"arguments":[{"id":1540,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"1111:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1541,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1529,"src":"1120:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1539,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1313,"src":"1105:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1105:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1543,"nodeType":"ExpressionStatement","src":"1105:22:9"}]},"documentation":{"id":1525,"nodeType":"StructuredDocumentation","src":"673:295:9","text":" @dev Destroys `amount` tokens from `account`, deducting from the caller's\n allowance.\n See {ERC20-_burn} and {ERC20-allowance}.\n Requirements:\n - the caller must have allowance for ``accounts``'s tokens of at least\n `amount`."},"functionSelector":"79cc6790","id":1545,"implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nameLocation":"982:8:9","nodeType":"FunctionDefinition","parameters":{"id":1530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1527,"mutability":"mutable","name":"account","nameLocation":"999:7:9","nodeType":"VariableDeclaration","scope":1545,"src":"991:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1526,"name":"address","nodeType":"ElementaryTypeName","src":"991:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1529,"mutability":"mutable","name":"amount","nameLocation":"1016:6:9","nodeType":"VariableDeclaration","scope":1545,"src":"1008:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1528,"name":"uint256","nodeType":"ElementaryTypeName","src":"1008:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"990:33:9"},"returnParameters":{"id":1531,"nodeType":"ParameterList","parameters":[],"src":"1039:0:9"},"scope":1546,"src":"973:161:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":1547,"src":"419:717:9","usedErrors":[]}],"src":"124:1013:9"},"id":9},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol","exportedSymbols":{"Context":[4686],"Counters":[4760],"ECDSA":[5296],"EIP712":[5450],"ERC20":[1424],"ERC20Permit":[2497],"ERC20Votes":[2244],"IERC20":[1502],"IERC20Metadata":[2325],"IERC20Permit":[2533],"IVotes":[729],"Math":[6853],"SafeCast":[8394],"Strings":[4935]},"id":2245,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1548,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"121:23:10"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","file":"./draft-ERC20Permit.sol","id":1549,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2245,"sourceUnit":2498,"src":"146:33:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"../../../utils/math/Math.sol","id":1550,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2245,"sourceUnit":6854,"src":"180:38:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"../../../governance/utils/IVotes.sol","id":1551,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2245,"sourceUnit":730,"src":"219:46:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../../../utils/math/SafeCast.sol","id":1552,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2245,"sourceUnit":8395,"src":"266:42:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"../../../utils/cryptography/ECDSA.sol","id":1553,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2245,"sourceUnit":5297,"src":"309:47:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1555,"name":"IVotes","nodeType":"IdentifierPath","referencedDeclaration":729,"src":"1285:6:10"},"id":1556,"nodeType":"InheritanceSpecifier","src":"1285:6:10"},{"baseName":{"id":1557,"name":"ERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":2497,"src":"1293:11:10"},"id":1558,"nodeType":"InheritanceSpecifier","src":"1293:11:10"}],"canonicalName":"ERC20Votes","contractDependencies":[],"contractKind":"contract","documentation":{"id":1554,"nodeType":"StructuredDocumentation","src":"358:894:10","text":" @dev Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's,\n and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1.\n NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module.\n This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either\n by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting\n power can be queried through the public accessors {getVotes} and {getPastVotes}.\n By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it\n requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.\n _Available since v4.2._"},"fullyImplemented":false,"id":2244,"linearizedBaseContracts":[2244,2497,5450,2533,1424,2325,1502,4686,729],"name":"ERC20Votes","nameLocation":"1271:10:10","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC20Votes.Checkpoint","id":1563,"members":[{"constant":false,"id":1560,"mutability":"mutable","name":"fromBlock","nameLocation":"1346:9:10","nodeType":"VariableDeclaration","scope":1563,"src":"1339:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1559,"name":"uint32","nodeType":"ElementaryTypeName","src":"1339:6:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1562,"mutability":"mutable","name":"votes","nameLocation":"1373:5:10","nodeType":"VariableDeclaration","scope":1563,"src":"1365:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":1561,"name":"uint224","nodeType":"ElementaryTypeName","src":"1365:7:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"1318:10:10","nodeType":"StructDefinition","scope":2244,"src":"1311:74:10","visibility":"public"},{"constant":true,"id":1568,"mutability":"constant","name":"_DELEGATION_TYPEHASH","nameLocation":"1416:20:10","nodeType":"VariableDeclaration","scope":2244,"src":"1391:127:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1391:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929","id":1566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1457:60:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf","typeString":"literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""},"value":"Delegation(address delegatee,uint256 nonce,uint256 expiry)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf","typeString":"literal_string \"Delegation(address delegatee,uint256 nonce,uint256 expiry)\""}],"id":1565,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1447:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1447:71:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":1572,"mutability":"mutable","name":"_delegates","nameLocation":"1561:10:10","nodeType":"VariableDeclaration","scope":2244,"src":"1525:46:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":1571,"keyType":{"id":1569,"name":"address","nodeType":"ElementaryTypeName","src":"1533:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1525:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":1570,"name":"address","nodeType":"ElementaryTypeName","src":"1544:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":1578,"mutability":"mutable","name":"_checkpoints","nameLocation":"1618:12:10","nodeType":"VariableDeclaration","scope":2244,"src":"1577:53:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint[])"},"typeName":{"id":1577,"keyType":{"id":1573,"name":"address","nodeType":"ElementaryTypeName","src":"1585:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1577:32:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint[])"},"valueType":{"baseType":{"id":1575,"nodeType":"UserDefinedTypeName","pathNode":{"id":1574,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"1596:10:10"},"referencedDeclaration":1563,"src":"1596:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":1576,"nodeType":"ArrayTypeName","src":"1596:12:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}}},"visibility":"private"},{"constant":false,"id":1582,"mutability":"mutable","name":"_totalSupplyCheckpoints","nameLocation":"1657:23:10","nodeType":"VariableDeclaration","scope":2244,"src":"1636:44:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":1580,"nodeType":"UserDefinedTypeName","pathNode":{"id":1579,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"1636:10:10"},"referencedDeclaration":1563,"src":"1636:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":1581,"nodeType":"ArrayTypeName","src":"1636:12:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"private"},{"body":{"id":1599,"nodeType":"Block","src":"1856:50:10","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1593,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"1873:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":1595,"indexExpression":{"id":1594,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1585,"src":"1886:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1873:21:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":1597,"indexExpression":{"id":1596,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"1895:3:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1873:26:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage","typeString":"struct ERC20Votes.Checkpoint storage ref"}},"functionReturnParameters":1592,"id":1598,"nodeType":"Return","src":"1866:33:10"}]},"documentation":{"id":1583,"nodeType":"StructuredDocumentation","src":"1687:66:10","text":" @dev Get the `pos`-th checkpoint for `account`."},"functionSelector":"f1127ed8","id":1600,"implemented":true,"kind":"function","modifiers":[],"name":"checkpoints","nameLocation":"1767:11:10","nodeType":"FunctionDefinition","parameters":{"id":1588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"account","nameLocation":"1787:7:10","nodeType":"VariableDeclaration","scope":1600,"src":"1779:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1584,"name":"address","nodeType":"ElementaryTypeName","src":"1779:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1587,"mutability":"mutable","name":"pos","nameLocation":"1803:3:10","nodeType":"VariableDeclaration","scope":1600,"src":"1796:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1586,"name":"uint32","nodeType":"ElementaryTypeName","src":"1796:6:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1778:29:10"},"returnParameters":{"id":1592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1600,"src":"1837:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint"},"typeName":{"id":1590,"nodeType":"UserDefinedTypeName","pathNode":{"id":1589,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"1837:10:10"},"referencedDeclaration":1563,"src":"1837:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"visibility":"internal"}],"src":"1836:19:10"},"scope":2244,"src":"1758:148:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1616,"nodeType":"Block","src":"2059:71:10","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1610,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"2094:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":1612,"indexExpression":{"id":1611,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"2107:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2094:21:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":1613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2094:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1608,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"2076:8:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8394_$","typeString":"type(library SafeCast)"}},"id":1609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":7556,"src":"2076:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":1614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2076:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":1607,"id":1615,"nodeType":"Return","src":"2069:54:10"}]},"documentation":{"id":1601,"nodeType":"StructuredDocumentation","src":"1912:64:10","text":" @dev Get number of checkpoints for `account`."},"functionSelector":"6fcfff45","id":1617,"implemented":true,"kind":"function","modifiers":[],"name":"numCheckpoints","nameLocation":"1990:14:10","nodeType":"FunctionDefinition","parameters":{"id":1604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1603,"mutability":"mutable","name":"account","nameLocation":"2013:7:10","nodeType":"VariableDeclaration","scope":1617,"src":"2005:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1602,"name":"address","nodeType":"ElementaryTypeName","src":"2005:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2004:17:10"},"returnParameters":{"id":1607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1617,"src":"2051:6:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1605,"name":"uint32","nodeType":"ElementaryTypeName","src":"2051:6:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2050:8:10"},"scope":2244,"src":"1981:149:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[706],"body":{"id":1630,"nodeType":"Block","src":"2301:43:10","statements":[{"expression":{"baseExpression":{"id":1626,"name":"_delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1572,"src":"2318:10:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":1628,"indexExpression":{"id":1627,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"2329:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2318:19:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1625,"id":1629,"nodeType":"Return","src":"2311:26:10"}]},"documentation":{"id":1618,"nodeType":"StructuredDocumentation","src":"2136:77:10","text":" @dev Get the address `account` is currently delegating to."},"functionSelector":"587cde1e","id":1631,"implemented":true,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"2227:9:10","nodeType":"FunctionDefinition","overrides":{"id":1622,"nodeType":"OverrideSpecifier","overrides":[],"src":"2274:8:10"},"parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1620,"mutability":"mutable","name":"account","nameLocation":"2245:7:10","nodeType":"VariableDeclaration","scope":1631,"src":"2237:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1619,"name":"address","nodeType":"ElementaryTypeName","src":"2237:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2236:17:10"},"returnParameters":{"id":1625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1631,"src":"2292:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1623,"name":"address","nodeType":"ElementaryTypeName","src":"2292:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2291:9:10"},"scope":2244,"src":"2218:126:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[680],"body":{"id":1661,"nodeType":"Block","src":"2505:127:10","statements":[{"assignments":[1641],"declarations":[{"constant":false,"id":1641,"mutability":"mutable","name":"pos","nameLocation":"2523:3:10","nodeType":"VariableDeclaration","scope":1661,"src":"2515:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1640,"name":"uint256","nodeType":"ElementaryTypeName","src":"2515:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1646,"initialValue":{"expression":{"baseExpression":{"id":1642,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"2529:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":1644,"indexExpression":{"id":1643,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"2542:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2529:21:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":1645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2529:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2515:42:10"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1647,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"2574:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2574:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"baseExpression":{"baseExpression":{"id":1651,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"2589:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":1653,"indexExpression":{"id":1652,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1634,"src":"2602:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2589:21:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":1657,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1654,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"2611:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2617:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2611:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2589:30:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage","typeString":"struct ERC20Votes.Checkpoint storage ref"}},"id":1658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":1562,"src":"2589:36:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":1659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2574:51:10","trueExpression":{"hexValue":"30","id":1650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2585:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":1639,"id":1660,"nodeType":"Return","src":"2567:58:10"}]},"documentation":{"id":1632,"nodeType":"StructuredDocumentation","src":"2350:68:10","text":" @dev Gets the current votes balance for `account`"},"functionSelector":"9ab24eb0","id":1662,"implemented":true,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"2432:8:10","nodeType":"FunctionDefinition","overrides":{"id":1636,"nodeType":"OverrideSpecifier","overrides":[],"src":"2478:8:10"},"parameters":{"id":1635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1634,"mutability":"mutable","name":"account","nameLocation":"2449:7:10","nodeType":"VariableDeclaration","scope":1662,"src":"2441:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1633,"name":"address","nodeType":"ElementaryTypeName","src":"2441:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2440:17:10"},"returnParameters":{"id":1639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1662,"src":"2496:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1637,"name":"uint256","nodeType":"ElementaryTypeName","src":"2496:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2495:9:10"},"scope":2244,"src":"2423:209:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[690],"body":{"id":1688,"nodeType":"Block","src":"2932:158:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1674,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"2950:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1675,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2964:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"2964:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2950:26:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564","id":1678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2978:33:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d","typeString":"literal_string \"ERC20Votes: block not yet mined\""},"value":"ERC20Votes: block not yet mined"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d","typeString":"literal_string \"ERC20Votes: block not yet mined\""}],"id":1673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2942:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2942:70:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1680,"nodeType":"ExpressionStatement","src":"2942:70:10"},{"expression":{"arguments":[{"baseExpression":{"id":1682,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"3048:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":1684,"indexExpression":{"id":1683,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"3061:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3048:21:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":1685,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"3071:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1681,"name":"_checkpointsLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"3029:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3029:54:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1672,"id":1687,"nodeType":"Return","src":"3022:61:10"}]},"documentation":{"id":1663,"nodeType":"StructuredDocumentation","src":"2638:182:10","text":" @dev Retrieve the number of votes for `account` at the end of `blockNumber`.\n Requirements:\n - `blockNumber` must have been already mined"},"functionSelector":"3a46b1a8","id":1689,"implemented":true,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"2834:12:10","nodeType":"FunctionDefinition","overrides":{"id":1669,"nodeType":"OverrideSpecifier","overrides":[],"src":"2905:8:10"},"parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1665,"mutability":"mutable","name":"account","nameLocation":"2855:7:10","nodeType":"VariableDeclaration","scope":1689,"src":"2847:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1664,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1667,"mutability":"mutable","name":"blockNumber","nameLocation":"2872:11:10","nodeType":"VariableDeclaration","scope":1689,"src":"2864:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1666,"name":"uint256","nodeType":"ElementaryTypeName","src":"2864:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2846:38:10"},"returnParameters":{"id":1672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1689,"src":"2923:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1670,"name":"uint256","nodeType":"ElementaryTypeName","src":"2923:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2922:9:10"},"scope":2244,"src":"2825:265:10","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[698],"body":{"id":1711,"nodeType":"Block","src":"3465:160:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1699,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"3483:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1700,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3497:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"3497:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3483:26:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564","id":1703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3511:33:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d","typeString":"literal_string \"ERC20Votes: block not yet mined\""},"value":"ERC20Votes: block not yet mined"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d","typeString":"literal_string \"ERC20Votes: block not yet mined\""}],"id":1698,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3475:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3475:70:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1705,"nodeType":"ExpressionStatement","src":"3475:70:10"},{"expression":{"arguments":[{"id":1707,"name":"_totalSupplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"3581:23:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":1708,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1692,"src":"3606:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1706,"name":"_checkpointsLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"3562:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3562:56:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1697,"id":1710,"nodeType":"Return","src":"3555:63:10"}]},"documentation":{"id":1690,"nodeType":"StructuredDocumentation","src":"3096:268:10","text":" @dev Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances.\n It is but NOT the sum of all the delegated votes!\n Requirements:\n - `blockNumber` must have been already mined"},"functionSelector":"8e539e8c","id":1712,"implemented":true,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"3378:18:10","nodeType":"FunctionDefinition","overrides":{"id":1694,"nodeType":"OverrideSpecifier","overrides":[],"src":"3438:8:10"},"parameters":{"id":1693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1692,"mutability":"mutable","name":"blockNumber","nameLocation":"3405:11:10","nodeType":"VariableDeclaration","scope":1712,"src":"3397:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1691,"name":"uint256","nodeType":"ElementaryTypeName","src":"3397:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3396:21:10"},"returnParameters":{"id":1697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1696,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"3456:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1695,"name":"uint256","nodeType":"ElementaryTypeName","src":"3456:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3455:9:10"},"scope":2244,"src":"3369:256:10","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1817,"nodeType":"Block","src":"3817:1750:10","statements":[{"assignments":[1725],"declarations":[{"constant":false,"id":1725,"mutability":"mutable","name":"length","nameLocation":"4904:6:10","nodeType":"VariableDeclaration","scope":1817,"src":"4896:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1724,"name":"uint256","nodeType":"ElementaryTypeName","src":"4896:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1728,"initialValue":{"expression":{"id":1726,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1717,"src":"4913:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4913:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4896:29:10"},{"assignments":[1730],"declarations":[{"constant":false,"id":1730,"mutability":"mutable","name":"low","nameLocation":"4944:3:10","nodeType":"VariableDeclaration","scope":1817,"src":"4936:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1729,"name":"uint256","nodeType":"ElementaryTypeName","src":"4936:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1732,"initialValue":{"hexValue":"30","id":1731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4950:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4936:15:10"},{"assignments":[1734],"declarations":[{"constant":false,"id":1734,"mutability":"mutable","name":"high","nameLocation":"4969:4:10","nodeType":"VariableDeclaration","scope":1817,"src":"4961:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1733,"name":"uint256","nodeType":"ElementaryTypeName","src":"4961:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1736,"initialValue":{"id":1735,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1725,"src":"4976:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4961:21:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1737,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1725,"src":"4997:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":1738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5006:1:10","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"4997:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1770,"nodeType":"IfStatement","src":"4993:244:10","trueBody":{"id":1769,"nodeType":"Block","src":"5009:228:10","statements":[{"assignments":[1741],"declarations":[{"constant":false,"id":1741,"mutability":"mutable","name":"mid","nameLocation":"5031:3:10","nodeType":"VariableDeclaration","scope":1769,"src":"5023:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1740,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1748,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1742,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1725,"src":"5037:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":1745,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1725,"src":"5056:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1743,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"5046:4:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6853_$","typeString":"type(library Math)"}},"id":1744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":6357,"src":"5046:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5046:17:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5037:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5023:40:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1750,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1717,"src":"5095:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"id":1751,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"5102:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1749,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2243,"src":"5081:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$1563_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":1752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5081:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":1753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":1560,"src":"5081:35:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1754,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1719,"src":"5119:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5081:49:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1767,"nodeType":"Block","src":"5181:46:10","statements":[{"expression":{"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1761,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"5199:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1762,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"5205:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5211:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5205:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5199:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1766,"nodeType":"ExpressionStatement","src":"5199:13:10"}]},"id":1768,"nodeType":"IfStatement","src":"5077:150:10","trueBody":{"id":1760,"nodeType":"Block","src":"5132:43:10","statements":[{"expression":{"id":1758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1756,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"5150:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1757,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"5157:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1759,"nodeType":"ExpressionStatement","src":"5150:10:10"}]}}]}},{"body":{"id":1802,"nodeType":"Block","src":"5266:225:10","statements":[{"assignments":[1775],"declarations":[{"constant":false,"id":1775,"mutability":"mutable","name":"mid","nameLocation":"5288:3:10","nodeType":"VariableDeclaration","scope":1802,"src":"5280:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1774,"name":"uint256","nodeType":"ElementaryTypeName","src":"5280:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1781,"initialValue":{"arguments":[{"id":1778,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"5307:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1779,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"5312:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1776,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"5294:4:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6853_$","typeString":"type(library Math)"}},"id":1777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"average","nodeType":"MemberAccess","referencedDeclaration":6054,"src":"5294:12:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5294:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5280:37:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1783,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1717,"src":"5349:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"id":1784,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1775,"src":"5356:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1782,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2243,"src":"5335:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$1563_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":1785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5335:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":1786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":1560,"src":"5335:35:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1787,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1719,"src":"5373:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5335:49:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1800,"nodeType":"Block","src":"5435:46:10","statements":[{"expression":{"id":1798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1794,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"5453:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1795,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1775,"src":"5459:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5465:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5459:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5453:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1799,"nodeType":"ExpressionStatement","src":"5453:13:10"}]},"id":1801,"nodeType":"IfStatement","src":"5331:150:10","trueBody":{"id":1793,"nodeType":"Block","src":"5386:43:10","statements":[{"expression":{"id":1791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1789,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"5404:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1790,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1775,"src":"5411:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5404:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1792,"nodeType":"ExpressionStatement","src":"5404:10:10"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1771,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"5254:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1772,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"5260:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5254:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1803,"nodeType":"WhileStatement","src":"5247:244:10"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1804,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"5508:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5516:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5508:9:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"id":1809,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1717,"src":"5538:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1810,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1734,"src":"5545:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5552:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5545:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1808,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2243,"src":"5524:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$1563_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5524:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":1814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":1562,"src":"5524:36:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5508:52:10","trueExpression":{"hexValue":"30","id":1807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5520:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":1723,"id":1816,"nodeType":"Return","src":"5501:59:10"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"3631:73:10","text":" @dev Lookup a value in a list of (sorted) checkpoints."},"id":1818,"implemented":true,"kind":"function","modifiers":[],"name":"_checkpointsLookup","nameLocation":"3718:18:10","nodeType":"FunctionDefinition","parameters":{"id":1720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1717,"mutability":"mutable","name":"ckpts","nameLocation":"3758:5:10","nodeType":"VariableDeclaration","scope":1818,"src":"3737:26:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":1715,"nodeType":"UserDefinedTypeName","pathNode":{"id":1714,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"3737:10:10"},"referencedDeclaration":1563,"src":"3737:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":1716,"nodeType":"ArrayTypeName","src":"3737:12:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":1719,"mutability":"mutable","name":"blockNumber","nameLocation":"3773:11:10","nodeType":"VariableDeclaration","scope":1818,"src":"3765:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1718,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3736:49:10"},"returnParameters":{"id":1723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1818,"src":"3808:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1721,"name":"uint256","nodeType":"ElementaryTypeName","src":"3808:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3807:9:10"},"scope":2244,"src":"3709:1858:10","stateMutability":"view","virtual":false,"visibility":"private"},{"baseFunctions":[712],"body":{"id":1831,"nodeType":"Block","src":"5709:51:10","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1826,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"5729:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5729:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1828,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"5743:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1825,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"5719:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5719:34:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1830,"nodeType":"ExpressionStatement","src":"5719:34:10"}]},"documentation":{"id":1819,"nodeType":"StructuredDocumentation","src":"5573:70:10","text":" @dev Delegate votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","id":1832,"implemented":true,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"5657:8:10","nodeType":"FunctionDefinition","overrides":{"id":1823,"nodeType":"OverrideSpecifier","overrides":[],"src":"5700:8:10"},"parameters":{"id":1822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1821,"mutability":"mutable","name":"delegatee","nameLocation":"5674:9:10","nodeType":"VariableDeclaration","scope":1832,"src":"5666:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1820,"name":"address","nodeType":"ElementaryTypeName","src":"5666:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5665:19:10"},"returnParameters":{"id":1824,"nodeType":"ParameterList","parameters":[],"src":"5709:0:10"},"scope":2244,"src":"5648:112:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[728],"body":{"id":1891,"nodeType":"Block","src":"6019:392:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1850,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6037:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6037:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":1852,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"6056:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6037:25:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a207369676e61747572652065787069726564","id":1854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6064:31:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_136d0f69bc85a5c125b5cc368e2880ebdb3c89d4d9828f6476431c386ea60257","typeString":"literal_string \"ERC20Votes: signature expired\""},"value":"ERC20Votes: signature expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_136d0f69bc85a5c125b5cc368e2880ebdb3c89d4d9828f6476431c386ea60257","typeString":"literal_string \"ERC20Votes: signature expired\""}],"id":1849,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6029:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6029:67:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1856,"nodeType":"ExpressionStatement","src":"6029:67:10"},{"assignments":[1858],"declarations":[{"constant":false,"id":1858,"mutability":"mutable","name":"signer","nameLocation":"6114:6:10","nodeType":"VariableDeclaration","scope":1891,"src":"6106:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1857,"name":"address","nodeType":"ElementaryTypeName","src":"6106:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1876,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":1865,"name":"_DELEGATION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1568,"src":"6188:20:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1866,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"6210:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1867,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"6221:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1868,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"6228:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6177:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"6177:10:10","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6177:58:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1862,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6167:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6167:69:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1861,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"6150:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6150:87:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1872,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"6251:1:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1873,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"6266:1:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"6281:1:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1859,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5296,"src":"6123:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$5296_$","typeString":"type(library ECDSA)"}},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"6123:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":1875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6123:169:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6106:186:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1878,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"6310:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":1880,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1858,"src":"6329:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1879,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2496,"src":"6319:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":1881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6319:17:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6310:26:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20696e76616c6964206e6f6e6365","id":1883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6338:27:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a23b43d95073d55a7380117ca03cace60cd22fee15d5cb140d51e46236e6872","typeString":"literal_string \"ERC20Votes: invalid nonce\""},"value":"ERC20Votes: invalid nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1a23b43d95073d55a7380117ca03cace60cd22fee15d5cb140d51e46236e6872","typeString":"literal_string \"ERC20Votes: invalid nonce\""}],"id":1877,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6302:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6302:64:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1885,"nodeType":"ExpressionStatement","src":"6302:64:10"},{"expression":{"arguments":[{"id":1887,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1858,"src":"6386:6:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1888,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"6394:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1886,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"6376:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6376:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1890,"nodeType":"ExpressionStatement","src":"6376:28:10"}]},"documentation":{"id":1833,"nodeType":"StructuredDocumentation","src":"5766:66:10","text":" @dev Delegates votes from signer to `delegatee`"},"functionSelector":"c3cda520","id":1892,"implemented":true,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"5846:13:10","nodeType":"FunctionDefinition","overrides":{"id":1847,"nodeType":"OverrideSpecifier","overrides":[],"src":"6010:8:10"},"parameters":{"id":1846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1835,"mutability":"mutable","name":"delegatee","nameLocation":"5877:9:10","nodeType":"VariableDeclaration","scope":1892,"src":"5869:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1834,"name":"address","nodeType":"ElementaryTypeName","src":"5869:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1837,"mutability":"mutable","name":"nonce","nameLocation":"5904:5:10","nodeType":"VariableDeclaration","scope":1892,"src":"5896:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1836,"name":"uint256","nodeType":"ElementaryTypeName","src":"5896:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1839,"mutability":"mutable","name":"expiry","nameLocation":"5927:6:10","nodeType":"VariableDeclaration","scope":1892,"src":"5919:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1838,"name":"uint256","nodeType":"ElementaryTypeName","src":"5919:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1841,"mutability":"mutable","name":"v","nameLocation":"5949:1:10","nodeType":"VariableDeclaration","scope":1892,"src":"5943:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1840,"name":"uint8","nodeType":"ElementaryTypeName","src":"5943:5:10","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1843,"mutability":"mutable","name":"r","nameLocation":"5968:1:10","nodeType":"VariableDeclaration","scope":1892,"src":"5960:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5960:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1845,"mutability":"mutable","name":"s","nameLocation":"5987:1:10","nodeType":"VariableDeclaration","scope":1892,"src":"5979:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5979:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5859:135:10"},"returnParameters":{"id":1848,"nodeType":"ParameterList","parameters":[],"src":"6019:0:10"},"scope":2244,"src":"5837:574:10","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1904,"nodeType":"Block","src":"6575:41:10","statements":[{"expression":{"expression":{"arguments":[{"id":1900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6597:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":1899,"name":"uint224","nodeType":"ElementaryTypeName","src":"6597:7:10","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":1898,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6592:4:10","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6592:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":1902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6592:17:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":1897,"id":1903,"nodeType":"Return","src":"6585:24:10"}]},"documentation":{"id":1893,"nodeType":"StructuredDocumentation","src":"6417:91:10","text":" @dev Maximum token supply. Defaults to `type(uint224).max` (2^224^ - 1)."},"id":1905,"implemented":true,"kind":"function","modifiers":[],"name":"_maxSupply","nameLocation":"6522:10:10","nodeType":"FunctionDefinition","parameters":{"id":1894,"nodeType":"ParameterList","parameters":[],"src":"6532:2:10"},"returnParameters":{"id":1897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1905,"src":"6566:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":1895,"name":"uint224","nodeType":"ElementaryTypeName","src":"6566:7:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"6565:9:10"},"scope":2244,"src":"6513:103:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1241],"body":{"id":1936,"nodeType":"Block","src":"6779:211:10","statements":[{"expression":{"arguments":[{"id":1917,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"6801:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1918,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1910,"src":"6810:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1914,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6789:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC20Votes_$2244_$","typeString":"type(contract super ERC20Votes)"}},"id":1916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_mint","nodeType":"MemberAccess","referencedDeclaration":1241,"src":"6789:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6789:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1920,"nodeType":"ExpressionStatement","src":"6789:28:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1922,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"6835:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6835:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1924,"name":"_maxSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"6852:10:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint224_$","typeString":"function () view returns (uint224)"}},"id":1925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6852:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"6835:29:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20746f74616c20737570706c79207269736b73206f766572666c6f77696e6720766f746573","id":1927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6866:50:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699","typeString":"literal_string \"ERC20Votes: total supply risks overflowing votes\""},"value":"ERC20Votes: total supply risks overflowing votes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699","typeString":"literal_string \"ERC20Votes: total supply risks overflowing votes\""}],"id":1921,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6827:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6827:90:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1929,"nodeType":"ExpressionStatement","src":"6827:90:10"},{"expression":{"arguments":[{"id":1931,"name":"_totalSupplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"6945:23:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":1932,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"6970:4:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":1933,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1910,"src":"6976:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1930,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"6928:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6928:55:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":1935,"nodeType":"ExpressionStatement","src":"6928:55:10"}]},"documentation":{"id":1906,"nodeType":"StructuredDocumentation","src":"6622:78:10","text":" @dev Snapshots the totalSupply after it has been increased."},"id":1937,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6714:5:10","nodeType":"FunctionDefinition","overrides":{"id":1912,"nodeType":"OverrideSpecifier","overrides":[],"src":"6770:8:10"},"parameters":{"id":1911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1908,"mutability":"mutable","name":"account","nameLocation":"6728:7:10","nodeType":"VariableDeclaration","scope":1937,"src":"6720:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1907,"name":"address","nodeType":"ElementaryTypeName","src":"6720:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1910,"mutability":"mutable","name":"amount","nameLocation":"6745:6:10","nodeType":"VariableDeclaration","scope":1937,"src":"6737:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1909,"name":"uint256","nodeType":"ElementaryTypeName","src":"6737:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6719:33:10"},"returnParameters":{"id":1913,"nodeType":"ParameterList","parameters":[],"src":"6779:0:10"},"scope":2244,"src":"6705:285:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1313],"body":{"id":1959,"nodeType":"Block","src":"7153:116:10","statements":[{"expression":{"arguments":[{"id":1949,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1940,"src":"7175:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1950,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"7184:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1946,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"7163:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC20Votes_$2244_$","typeString":"type(contract super ERC20Votes)"}},"id":1948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":1313,"src":"7163:11:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7163:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1952,"nodeType":"ExpressionStatement","src":"7163:28:10"},{"expression":{"arguments":[{"id":1954,"name":"_totalSupplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"7219:23:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":1955,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2228,"src":"7244:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":1956,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"7255:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1953,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"7202:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7202:60:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":1958,"nodeType":"ExpressionStatement","src":"7202:60:10"}]},"documentation":{"id":1938,"nodeType":"StructuredDocumentation","src":"6996:78:10","text":" @dev Snapshots the totalSupply after it has been decreased."},"id":1960,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"7088:5:10","nodeType":"FunctionDefinition","overrides":{"id":1944,"nodeType":"OverrideSpecifier","overrides":[],"src":"7144:8:10"},"parameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1940,"mutability":"mutable","name":"account","nameLocation":"7102:7:10","nodeType":"VariableDeclaration","scope":1960,"src":"7094:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1939,"name":"address","nodeType":"ElementaryTypeName","src":"7094:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1942,"mutability":"mutable","name":"amount","nameLocation":"7119:6:10","nodeType":"VariableDeclaration","scope":1960,"src":"7111:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1941,"name":"uint256","nodeType":"ElementaryTypeName","src":"7111:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7093:33:10"},"returnParameters":{"id":1945,"nodeType":"ParameterList","parameters":[],"src":"7153:0:10"},"scope":2244,"src":"7079:190:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1423],"body":{"id":1989,"nodeType":"Block","src":"7536:127:10","statements":[{"expression":{"arguments":[{"id":1974,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1963,"src":"7572:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1975,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"7578:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1976,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"7582: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"}],"expression":{"id":1971,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"7546:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC20Votes_$2244_$","typeString":"type(contract super ERC20Votes)"}},"id":1973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_afterTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1423,"src":"7546:25:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7546:43:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1978,"nodeType":"ExpressionStatement","src":"7546:43:10"},{"expression":{"arguments":[{"arguments":[{"id":1981,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1963,"src":"7627:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1980,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"7617:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":1982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7617:15:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1984,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"7644:2:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1983,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"7634:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":1985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7634:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1986,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"7649: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":1979,"name":"_moveVotingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"7600:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7600:56:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1988,"nodeType":"ExpressionStatement","src":"7600:56:10"}]},"documentation":{"id":1961,"nodeType":"StructuredDocumentation","src":"7275:129:10","text":" @dev Move voting power when tokens are transferred.\n Emits a {IVotes-DelegateVotesChanged} event."},"id":1990,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"7418:19:10","nodeType":"FunctionDefinition","overrides":{"id":1969,"nodeType":"OverrideSpecifier","overrides":[],"src":"7527:8:10"},"parameters":{"id":1968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1963,"mutability":"mutable","name":"from","nameLocation":"7455:4:10","nodeType":"VariableDeclaration","scope":1990,"src":"7447:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1962,"name":"address","nodeType":"ElementaryTypeName","src":"7447:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1965,"mutability":"mutable","name":"to","nameLocation":"7477:2:10","nodeType":"VariableDeclaration","scope":1990,"src":"7469:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1964,"name":"address","nodeType":"ElementaryTypeName","src":"7469:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1967,"mutability":"mutable","name":"amount","nameLocation":"7497:6:10","nodeType":"VariableDeclaration","scope":1990,"src":"7489:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1966,"name":"uint256","nodeType":"ElementaryTypeName","src":"7489:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7437:72:10"},"returnParameters":{"id":1970,"nodeType":"ParameterList","parameters":[],"src":"7536:0:10"},"scope":2244,"src":"7409:254:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2028,"nodeType":"Block","src":"7908:306:10","statements":[{"assignments":[1999],"declarations":[{"constant":false,"id":1999,"mutability":"mutable","name":"currentDelegate","nameLocation":"7926:15:10","nodeType":"VariableDeclaration","scope":2028,"src":"7918:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1998,"name":"address","nodeType":"ElementaryTypeName","src":"7918:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2003,"initialValue":{"arguments":[{"id":2001,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1993,"src":"7954:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2000,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"7944:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7944:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7918:46:10"},{"assignments":[2005],"declarations":[{"constant":false,"id":2005,"mutability":"mutable","name":"delegatorBalance","nameLocation":"7982:16:10","nodeType":"VariableDeclaration","scope":2028,"src":"7974:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2004,"name":"uint256","nodeType":"ElementaryTypeName","src":"7974:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2009,"initialValue":{"arguments":[{"id":2007,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1993,"src":"8011:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2006,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":936,"src":"8001:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8001:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7974:47:10"},{"expression":{"id":2014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2010,"name":"_delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1572,"src":"8031:10:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":2012,"indexExpression":{"id":2011,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1993,"src":"8042:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8031:21:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2013,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1995,"src":"8055:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8031:33:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2015,"nodeType":"ExpressionStatement","src":"8031:33:10"},{"eventCall":{"arguments":[{"id":2017,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1993,"src":"8096:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2018,"name":"currentDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1999,"src":"8107:15:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2019,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1995,"src":"8124:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2016,"name":"DelegateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":663,"src":"8080:15:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8080:54:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2021,"nodeType":"EmitStatement","src":"8075:59:10"},{"expression":{"arguments":[{"id":2023,"name":"currentDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1999,"src":"8162:15:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2024,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1995,"src":"8179:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2025,"name":"delegatorBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2005,"src":"8190:16: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":2022,"name":"_moveVotingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"8145:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8145:62:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2027,"nodeType":"ExpressionStatement","src":"8145:62:10"}]},"documentation":{"id":1991,"nodeType":"StructuredDocumentation","src":"7669:160:10","text":" @dev Change delegation for `delegator` to `delegatee`.\n Emits events {IVotes-DelegateChanged} and {IVotes-DelegateVotesChanged}."},"id":2029,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"7843:9:10","nodeType":"FunctionDefinition","parameters":{"id":1996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1993,"mutability":"mutable","name":"delegator","nameLocation":"7861:9:10","nodeType":"VariableDeclaration","scope":2029,"src":"7853:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1992,"name":"address","nodeType":"ElementaryTypeName","src":"7853:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1995,"mutability":"mutable","name":"delegatee","nameLocation":"7880:9:10","nodeType":"VariableDeclaration","scope":2029,"src":"7872:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1994,"name":"address","nodeType":"ElementaryTypeName","src":"7872:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7852:38:10"},"returnParameters":{"id":1997,"nodeType":"ParameterList","parameters":[],"src":"7908:0:10"},"scope":2244,"src":"7834:380:10","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2099,"nodeType":"Block","src":"8326:521:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2038,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"8340:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2039,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2033,"src":"8347:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8340:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2041,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"8354:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8363:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8354:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8340:24:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2098,"nodeType":"IfStatement","src":"8336:505:10","trueBody":{"id":2097,"nodeType":"Block","src":"8366:475:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2045,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"8384:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8399: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":2047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8391:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2046,"name":"address","nodeType":"ElementaryTypeName","src":"8391:7:10","typeDescriptions":{}}},"id":2049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8391:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8384:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2070,"nodeType":"IfStatement","src":"8380:221:10","trueBody":{"id":2069,"nodeType":"Block","src":"8403:198:10","statements":[{"assignments":[2052,2054],"declarations":[{"constant":false,"id":2052,"mutability":"mutable","name":"oldWeight","nameLocation":"8430:9:10","nodeType":"VariableDeclaration","scope":2069,"src":"8422:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2051,"name":"uint256","nodeType":"ElementaryTypeName","src":"8422:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2054,"mutability":"mutable","name":"newWeight","nameLocation":"8449:9:10","nodeType":"VariableDeclaration","scope":2069,"src":"8441:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2053,"name":"uint256","nodeType":"ElementaryTypeName","src":"8441:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2062,"initialValue":{"arguments":[{"baseExpression":{"id":2056,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"8479:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":2058,"indexExpression":{"id":2057,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"8492:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8479:17:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":2059,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2228,"src":"8498:9:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":2060,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"8509:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2055,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"8462:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8462:54:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8421:95:10"},{"eventCall":{"arguments":[{"id":2064,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"8560:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2065,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2052,"src":"8565:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2066,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2054,"src":"8576: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":2063,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"8539:20:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8539:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2068,"nodeType":"EmitStatement","src":"8534:52:10"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2071,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2033,"src":"8619:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8634: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":2073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8626:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2072,"name":"address","nodeType":"ElementaryTypeName","src":"8626:7:10","typeDescriptions":{}}},"id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8626:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8619:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2096,"nodeType":"IfStatement","src":"8615:216:10","trueBody":{"id":2095,"nodeType":"Block","src":"8638:193:10","statements":[{"assignments":[2078,2080],"declarations":[{"constant":false,"id":2078,"mutability":"mutable","name":"oldWeight","nameLocation":"8665:9:10","nodeType":"VariableDeclaration","scope":2095,"src":"8657:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2077,"name":"uint256","nodeType":"ElementaryTypeName","src":"8657:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2080,"mutability":"mutable","name":"newWeight","nameLocation":"8684:9:10","nodeType":"VariableDeclaration","scope":2095,"src":"8676:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2079,"name":"uint256","nodeType":"ElementaryTypeName","src":"8676:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2088,"initialValue":{"arguments":[{"baseExpression":{"id":2082,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"8714:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":2084,"indexExpression":{"id":2083,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2033,"src":"8727:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8714:17:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":2085,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"8733:4:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":2086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"8739:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2081,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"8697:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,function (uint256,uint256) view returns (uint256),uint256) returns (uint256,uint256)"}},"id":2087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8697:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8656:90:10"},{"eventCall":{"arguments":[{"id":2090,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2033,"src":"8790:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2091,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2078,"src":"8795:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2092,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"8806: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":2089,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"8769:20:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":2093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8769:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2094,"nodeType":"EmitStatement","src":"8764:52:10"}]}}]}}]},"id":2100,"implemented":true,"kind":"function","modifiers":[],"name":"_moveVotingPower","nameLocation":"8229:16:10","nodeType":"FunctionDefinition","parameters":{"id":2036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2031,"mutability":"mutable","name":"src","nameLocation":"8263:3:10","nodeType":"VariableDeclaration","scope":2100,"src":"8255:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2030,"name":"address","nodeType":"ElementaryTypeName","src":"8255:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2033,"mutability":"mutable","name":"dst","nameLocation":"8284:3:10","nodeType":"VariableDeclaration","scope":2100,"src":"8276:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2032,"name":"address","nodeType":"ElementaryTypeName","src":"8276:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2035,"mutability":"mutable","name":"amount","nameLocation":"8305:6:10","nodeType":"VariableDeclaration","scope":2100,"src":"8297:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2034,"name":"uint256","nodeType":"ElementaryTypeName","src":"8297:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8245:72:10"},"returnParameters":{"id":2037,"nodeType":"ParameterList","parameters":[],"src":"8326:0:10"},"scope":2244,"src":"8220:627:10","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2199,"nodeType":"Block","src":"9061:508:10","statements":[{"assignments":[2124],"declarations":[{"constant":false,"id":2124,"mutability":"mutable","name":"pos","nameLocation":"9079:3:10","nodeType":"VariableDeclaration","scope":2199,"src":"9071:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"9071:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2127,"initialValue":{"expression":{"id":2125,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2104,"src":"9085:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9085:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9071:26:10"},{"assignments":[2130],"declarations":[{"constant":false,"id":2130,"mutability":"mutable","name":"oldCkpt","nameLocation":"9126:7:10","nodeType":"VariableDeclaration","scope":2199,"src":"9108:25:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint"},"typeName":{"id":2129,"nodeType":"UserDefinedTypeName","pathNode":{"id":2128,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"9108:10:10"},"referencedDeclaration":1563,"src":"9108:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"visibility":"internal"}],"id":2145,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2131,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"9136:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9143:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9136:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":2139,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2104,"src":"9180:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2140,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"9187:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9193:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9187:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2138,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2243,"src":"9166:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$1563_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9166:29:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9136:59:10","trueExpression":{"arguments":[{"hexValue":"30","id":2135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9158:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9161: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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2134,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"9147:10:10","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$1563_storage_ptr_$","typeString":"type(struct ERC20Votes.Checkpoint storage pointer)"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9147:16:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"9108:87:10"},{"expression":{"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2146,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2119,"src":"9206:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":2147,"name":"oldCkpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2130,"src":"9218:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"id":2148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":1562,"src":"9218:13:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"9206:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2150,"nodeType":"ExpressionStatement","src":"9206:25:10"},{"expression":{"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2151,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"9241:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2153,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2119,"src":"9256:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2154,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"9267:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2152,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2114,"src":"9253:2:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9253:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9241:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2157,"nodeType":"ExpressionStatement","src":"9241:32:10"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2158,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"9288:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9294:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9288:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2161,"name":"oldCkpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2130,"src":"9299:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"id":2162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":1560,"src":"9299:17:10","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2163,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9320:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"9320:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9299:33:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9288:44:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2197,"nodeType":"Block","src":"9432:131:10","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":2187,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9498:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"9498:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2185,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"9480:8:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8394_$","typeString":"type(library SafeCast)"}},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":7556,"src":"9480:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":2189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9480:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":2192,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"9539:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2190,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"9520:8:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8394_$","typeString":"type(library SafeCast)"}},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":6956,"src":"9520:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9520:29:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":2184,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"9457:10:10","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$1563_storage_ptr_$","typeString":"type(struct ERC20Votes.Checkpoint storage pointer)"}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["fromBlock","votes"],"nodeType":"FunctionCall","src":"9457:94:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint_$1563_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}],"expression":{"id":2181,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2104,"src":"9446:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"9446:10:10","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint_$1563_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,struct ERC20Votes.Checkpoint storage ref)"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9446:106:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2196,"nodeType":"ExpressionStatement","src":"9446:106:10"}]},"id":2198,"nodeType":"IfStatement","src":"9284:279:10","trueBody":{"id":2180,"nodeType":"Block","src":"9334:92:10","statements":[{"expression":{"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":2168,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2104,"src":"9362:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2169,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"9369:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9375:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9369:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2167,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2243,"src":"9348:13:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$1563_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":2172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9348:29:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":2173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":1562,"src":"9348:35:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2176,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"9405:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2174,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"9386:8:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8394_$","typeString":"type(library SafeCast)"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":6956,"src":"9386:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9386:29:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"9348:67:10","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":2179,"nodeType":"ExpressionStatement","src":"9348:67:10"}]}}]},"id":2200,"implemented":true,"kind":"function","modifiers":[],"name":"_writeCheckpoint","nameLocation":"8862:16:10","nodeType":"FunctionDefinition","parameters":{"id":2117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2104,"mutability":"mutable","name":"ckpts","nameLocation":"8909:5:10","nodeType":"VariableDeclaration","scope":2200,"src":"8888:26:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":2102,"nodeType":"UserDefinedTypeName","pathNode":{"id":2101,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"8888:10:10"},"referencedDeclaration":1563,"src":"8888:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":2103,"nodeType":"ArrayTypeName","src":"8888:12:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":2114,"mutability":"mutable","name":"op","nameLocation":"8974:2:10","nodeType":"VariableDeclaration","scope":2200,"src":"8924:52:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"},"typeName":{"id":2113,"nodeType":"FunctionTypeName","parameterTypes":{"id":2109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2113,"src":"8933:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2105,"name":"uint256","nodeType":"ElementaryTypeName","src":"8933:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2113,"src":"8942:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2107,"name":"uint256","nodeType":"ElementaryTypeName","src":"8942:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8932:18:10"},"returnParameterTypes":{"id":2112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2113,"src":"8965:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2110,"name":"uint256","nodeType":"ElementaryTypeName","src":"8965:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8964:9:10"},"src":"8924:52:10","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"},"visibility":"internal"},"visibility":"internal"},{"constant":false,"id":2116,"mutability":"mutable","name":"delta","nameLocation":"8994:5:10","nodeType":"VariableDeclaration","scope":2200,"src":"8986:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2115,"name":"uint256","nodeType":"ElementaryTypeName","src":"8986:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8878:127:10"},"returnParameters":{"id":2122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2119,"mutability":"mutable","name":"oldWeight","nameLocation":"9031:9:10","nodeType":"VariableDeclaration","scope":2200,"src":"9023:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2118,"name":"uint256","nodeType":"ElementaryTypeName","src":"9023:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2121,"mutability":"mutable","name":"newWeight","nameLocation":"9050:9:10","nodeType":"VariableDeclaration","scope":2200,"src":"9042:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2120,"name":"uint256","nodeType":"ElementaryTypeName","src":"9042:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9022:38:10"},"scope":2244,"src":"8853:716:10","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2213,"nodeType":"Block","src":"9642:29:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2209,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"9659:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2210,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2204,"src":"9663:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9659:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2208,"id":2212,"nodeType":"Return","src":"9652:12:10"}]},"id":2214,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"9584:4:10","nodeType":"FunctionDefinition","parameters":{"id":2205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2202,"mutability":"mutable","name":"a","nameLocation":"9597:1:10","nodeType":"VariableDeclaration","scope":2214,"src":"9589:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2201,"name":"uint256","nodeType":"ElementaryTypeName","src":"9589:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2204,"mutability":"mutable","name":"b","nameLocation":"9608:1:10","nodeType":"VariableDeclaration","scope":2214,"src":"9600:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2203,"name":"uint256","nodeType":"ElementaryTypeName","src":"9600:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9588:22:10"},"returnParameters":{"id":2208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2214,"src":"9633:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2206,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9632:9:10"},"scope":2244,"src":"9575:96:10","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2227,"nodeType":"Block","src":"9749:29:10","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2223,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"9766:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2224,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"9770:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9766:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2222,"id":2226,"nodeType":"Return","src":"9759:12:10"}]},"id":2228,"implemented":true,"kind":"function","modifiers":[],"name":"_subtract","nameLocation":"9686:9:10","nodeType":"FunctionDefinition","parameters":{"id":2219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2216,"mutability":"mutable","name":"a","nameLocation":"9704:1:10","nodeType":"VariableDeclaration","scope":2228,"src":"9696:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2215,"name":"uint256","nodeType":"ElementaryTypeName","src":"9696:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2218,"mutability":"mutable","name":"b","nameLocation":"9715:1:10","nodeType":"VariableDeclaration","scope":2228,"src":"9707:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2217,"name":"uint256","nodeType":"ElementaryTypeName","src":"9707:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9695:22:10"},"returnParameters":{"id":2222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2228,"src":"9740:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2220,"name":"uint256","nodeType":"ElementaryTypeName","src":"9740:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9739:9:10"},"scope":2244,"src":"9677:101:10","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2242,"nodeType":"Block","src":"10034:126:10","statements":[{"AST":{"nodeType":"YulBlock","src":"10053:101:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10074:1:10","type":"","value":"0"},{"name":"ckpts.slot","nodeType":"YulIdentifier","src":"10077:10:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10067:6:10"},"nodeType":"YulFunctionCall","src":"10067:21:10"},"nodeType":"YulExpressionStatement","src":"10067:21:10"},{"nodeType":"YulAssignment","src":"10101:43:10","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10130:1:10","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10133:4:10","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"10120:9:10"},"nodeType":"YulFunctionCall","src":"10120:18:10"},{"name":"pos","nodeType":"YulIdentifier","src":"10140:3:10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10116:3:10"},"nodeType":"YulFunctionCall","src":"10116:28:10"},"variableNames":[{"name":"result.slot","nodeType":"YulIdentifier","src":"10101:11:10"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2233,"isOffset":false,"isSlot":true,"src":"10077:10:10","suffix":"slot","valueSize":1},{"declaration":2235,"isOffset":false,"isSlot":false,"src":"10140:3:10","valueSize":1},{"declaration":2239,"isOffset":false,"isSlot":true,"src":"10101:11:10","suffix":"slot","valueSize":1}],"id":2241,"nodeType":"InlineAssembly","src":"10044:110:10"}]},"documentation":{"id":2229,"nodeType":"StructuredDocumentation","src":"9784:132:10","text":" @dev Access an element of the array without performing bounds check. The position is assumed to be within bounds."},"id":2243,"implemented":true,"kind":"function","modifiers":[],"name":"_unsafeAccess","nameLocation":"9930:13:10","nodeType":"FunctionDefinition","parameters":{"id":2236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2233,"mutability":"mutable","name":"ckpts","nameLocation":"9965:5:10","nodeType":"VariableDeclaration","scope":2243,"src":"9944:26:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":2231,"nodeType":"UserDefinedTypeName","pathNode":{"id":2230,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"9944:10:10"},"referencedDeclaration":1563,"src":"9944:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":2232,"nodeType":"ArrayTypeName","src":"9944:12:10","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$1563_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":2235,"mutability":"mutable","name":"pos","nameLocation":"9980:3:10","nodeType":"VariableDeclaration","scope":2243,"src":"9972:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2234,"name":"uint256","nodeType":"ElementaryTypeName","src":"9972:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9943:41:10"},"returnParameters":{"id":2240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2239,"mutability":"mutable","name":"result","nameLocation":"10026:6:10","nodeType":"VariableDeclaration","scope":2243,"src":"10007:25:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"},"typeName":{"id":2238,"nodeType":"UserDefinedTypeName","pathNode":{"id":2237,"name":"Checkpoint","nodeType":"IdentifierPath","referencedDeclaration":1563,"src":"10007:10:10"},"referencedDeclaration":1563,"src":"10007:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$1563_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"visibility":"internal"}],"src":"10006:27:10"},"scope":2244,"src":"9921:239:10","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2245,"src":"1253:8909:10","usedErrors":[]}],"src":"121:10042:10"},"id":10},"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol","exportedSymbols":{"Context":[4686],"Counters":[4760],"ECDSA":[5296],"EIP712":[5450],"ERC20":[1424],"ERC20Permit":[2497],"ERC20Votes":[2244],"ERC20VotesComp":[2300],"IERC20":[1502],"IERC20Metadata":[2325],"IERC20Permit":[2533],"IVotes":[729],"Math":[6853],"SafeCast":[8394],"Strings":[4935]},"id":2301,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2246,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"125:23:11"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol","file":"./ERC20Votes.sol","id":2247,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2301,"sourceUnit":2245,"src":"150:26:11","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2249,"name":"ERC20Votes","nodeType":"IdentifierPath","referencedDeclaration":2244,"src":"1278:10:11"},"id":2250,"nodeType":"InheritanceSpecifier","src":"1278:10:11"}],"canonicalName":"ERC20VotesComp","contractDependencies":[],"contractKind":"contract","documentation":{"id":2248,"nodeType":"StructuredDocumentation","src":"178:1063:11","text":" @dev Extension of ERC20 to support Compound's voting and delegation. This version exactly matches Compound's\n interface, with the drawback of only supporting supply up to (2^96^ - 1).\n NOTE: You should use this contract if you need exact compatibility with COMP (for example in order to use your token\n with Governor Alpha or Bravo) and if you are sure the supply cap of 2^96^ is enough for you. Otherwise, use the\n {ERC20Votes} variant of this module.\n This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either\n by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting\n power can be queried through the public accessors {getCurrentVotes} and {getPriorVotes}.\n By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it\n requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.\n _Available since v4.2._"},"fullyImplemented":false,"id":2300,"linearizedBaseContracts":[2300,2244,2497,5450,2533,1424,2325,1502,4686,729],"name":"ERC20VotesComp","nameLocation":"1260:14:11","nodeType":"ContractDefinition","nodes":[{"body":{"id":2265,"nodeType":"Block","src":"1472:60:11","statements":[{"expression":{"arguments":[{"arguments":[{"id":2261,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2253,"src":"1516:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2260,"name":"getVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"1507:8:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":2262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1507:17:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2258,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"1489:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8394_$","typeString":"type(library SafeCast)"}},"id":2259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint96","nodeType":"MemberAccess","referencedDeclaration":7356,"src":"1489:17:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint96_$","typeString":"function (uint256) pure returns (uint96)"}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1489:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":2257,"id":2264,"nodeType":"Return","src":"1482:43:11"}]},"documentation":{"id":2251,"nodeType":"StructuredDocumentation","src":"1295:91:11","text":" @dev Comp version of the {getVotes} accessor, with `uint96` return type."},"functionSelector":"b4b5ea57","id":2266,"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentVotes","nameLocation":"1400:15:11","nodeType":"FunctionDefinition","parameters":{"id":2254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2253,"mutability":"mutable","name":"account","nameLocation":"1424:7:11","nodeType":"VariableDeclaration","scope":2266,"src":"1416:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2252,"name":"address","nodeType":"ElementaryTypeName","src":"1416:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1415:17:11"},"returnParameters":{"id":2257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2266,"src":"1464:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2255,"name":"uint96","nodeType":"ElementaryTypeName","src":"1464:6:11","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1463:8:11"},"scope":2300,"src":"1391:141:11","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":2284,"nodeType":"Block","src":"1738:77:11","statements":[{"expression":{"arguments":[{"arguments":[{"id":2279,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2269,"src":"1786:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2280,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2271,"src":"1795:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2278,"name":"getPastVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"1773:12:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":2281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1773:34:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2276,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8394,"src":"1755:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8394_$","typeString":"type(library SafeCast)"}},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toUint96","nodeType":"MemberAccess","referencedDeclaration":7356,"src":"1755:17:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint96_$","typeString":"function (uint256) pure returns (uint96)"}},"id":2282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1755:53:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":2275,"id":2283,"nodeType":"Return","src":"1748:60:11"}]},"documentation":{"id":2267,"nodeType":"StructuredDocumentation","src":"1538:95:11","text":" @dev Comp version of the {getPastVotes} accessor, with `uint96` return type."},"functionSelector":"782d6fe1","id":2285,"implemented":true,"kind":"function","modifiers":[],"name":"getPriorVotes","nameLocation":"1647:13:11","nodeType":"FunctionDefinition","parameters":{"id":2272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2269,"mutability":"mutable","name":"account","nameLocation":"1669:7:11","nodeType":"VariableDeclaration","scope":2285,"src":"1661:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2268,"name":"address","nodeType":"ElementaryTypeName","src":"1661:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2271,"mutability":"mutable","name":"blockNumber","nameLocation":"1686:11:11","nodeType":"VariableDeclaration","scope":2285,"src":"1678:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2270,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1660:38:11"},"returnParameters":{"id":2275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2285,"src":"1730:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2273,"name":"uint96","nodeType":"ElementaryTypeName","src":"1730:6:11","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1729:8:11"},"scope":2300,"src":"1638:177:11","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[1905],"body":{"id":2298,"nodeType":"Block","src":"2007:40:11","statements":[{"expression":{"expression":{"arguments":[{"id":2294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2029:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":2293,"name":"uint96","nodeType":"ElementaryTypeName","src":"2029:6:11","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":2292,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2024:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2024:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":2296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2024:16:11","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":2291,"id":2297,"nodeType":"Return","src":"2017:23:11"}]},"documentation":{"id":2286,"nodeType":"StructuredDocumentation","src":"1821:110:11","text":" @dev Maximum token supply. Reduced to `type(uint96).max` (2^96^ - 1) to fit COMP interface."},"id":2299,"implemented":true,"kind":"function","modifiers":[],"name":"_maxSupply","nameLocation":"1945:10:11","nodeType":"FunctionDefinition","overrides":{"id":2288,"nodeType":"OverrideSpecifier","overrides":[],"src":"1980:8:11"},"parameters":{"id":2287,"nodeType":"ParameterList","parameters":[],"src":"1955:2:11"},"returnParameters":{"id":2291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2299,"src":"1998:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":2289,"name":"uint224","nodeType":"ElementaryTypeName","src":"1998:7:11","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"1997:9:11"},"scope":2300,"src":"1936:111:11","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2301,"src":"1242:807:11","usedErrors":[]}],"src":"125:1925:11"},"id":11},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[1502],"IERC20Metadata":[2325]},"id":2326,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2302,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:12"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":2303,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2326,"sourceUnit":1503,"src":"135:23:12","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2305,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"305:6:12"},"id":2306,"nodeType":"InheritanceSpecifier","src":"305:6:12"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":2304,"nodeType":"StructuredDocumentation","src":"160:116:12","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":2325,"linearizedBaseContracts":[2325,1502],"name":"IERC20Metadata","nameLocation":"287:14:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2307,"nodeType":"StructuredDocumentation","src":"318:54:12","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":2312,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:12","nodeType":"FunctionDefinition","parameters":{"id":2308,"nodeType":"ParameterList","parameters":[],"src":"390:2:12"},"returnParameters":{"id":2311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2312,"src":"416:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2309,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:12"},"scope":2325,"src":"377:54:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2313,"nodeType":"StructuredDocumentation","src":"437:56:12","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":2318,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:12","nodeType":"FunctionDefinition","parameters":{"id":2314,"nodeType":"ParameterList","parameters":[],"src":"513:2:12"},"returnParameters":{"id":2317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2318,"src":"539:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2315,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:12"},"scope":2325,"src":"498:56:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2319,"nodeType":"StructuredDocumentation","src":"560:65:12","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":2324,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:12","nodeType":"FunctionDefinition","parameters":{"id":2320,"nodeType":"ParameterList","parameters":[],"src":"647:2:12"},"returnParameters":{"id":2323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2324,"src":"673:5:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2321,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:12"},"scope":2325,"src":"630:50:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2326,"src":"277:405:12","usedErrors":[]}],"src":"110:573:12"},"id":12},"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","exportedSymbols":{"Context":[4686],"Counters":[4760],"ECDSA":[5296],"EIP712":[5450],"ERC20":[1424],"ERC20Permit":[2497],"IERC20":[1502],"IERC20Metadata":[2325],"IERC20Permit":[2533],"Math":[6853],"Strings":[4935]},"id":2498,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2327,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"128:23:13"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","file":"./draft-IERC20Permit.sol","id":2328,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2498,"sourceUnit":2534,"src":"153:34:13","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","id":2329,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2498,"sourceUnit":1425,"src":"188:22:13","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"../../../utils/cryptography/ECDSA.sol","id":2330,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2498,"sourceUnit":5297,"src":"211:47:13","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","file":"../../../utils/cryptography/EIP712.sol","id":2331,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2498,"sourceUnit":5451,"src":"259:48:13","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","file":"../../../utils/Counters.sol","id":2332,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2498,"sourceUnit":4761,"src":"308:37:13","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2334,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":1424,"src":"898:5:13"},"id":2335,"nodeType":"InheritanceSpecifier","src":"898:5:13"},{"baseName":{"id":2336,"name":"IERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":2533,"src":"905:12:13"},"id":2337,"nodeType":"InheritanceSpecifier","src":"905:12:13"},{"baseName":{"id":2338,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":5450,"src":"919:6:13"},"id":2339,"nodeType":"InheritanceSpecifier","src":"919:6:13"}],"canonicalName":"ERC20Permit","contractDependencies":[],"contractKind":"contract","documentation":{"id":2333,"nodeType":"StructuredDocumentation","src":"347:517:13","text":" @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n _Available since v3.4._"},"fullyImplemented":false,"id":2497,"linearizedBaseContracts":[2497,5450,2533,1424,2325,1502,4686],"name":"ERC20Permit","nameLocation":"883:11:13","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2343,"libraryName":{"id":2340,"name":"Counters","nodeType":"IdentifierPath","referencedDeclaration":4760,"src":"938:8:13"},"nodeType":"UsingForDirective","src":"932:36:13","typeName":{"id":2342,"nodeType":"UserDefinedTypeName","pathNode":{"id":2341,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":4692,"src":"951:16:13"},"referencedDeclaration":4692,"src":"951:16:13","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"}}},{"constant":false,"id":2348,"mutability":"mutable","name":"_nonces","nameLocation":"1019:7:13","nodeType":"VariableDeclaration","scope":2497,"src":"974:52:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$4692_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"typeName":{"id":2347,"keyType":{"id":2344,"name":"address","nodeType":"ElementaryTypeName","src":"982:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"974:36:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$4692_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"valueType":{"id":2346,"nodeType":"UserDefinedTypeName","pathNode":{"id":2345,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":4692,"src":"993:16:13"},"referencedDeclaration":4692,"src":"993:16:13","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"}}},"visibility":"private"},{"constant":true,"id":2353,"mutability":"constant","name":"_PERMIT_TYPEHASH","nameLocation":"1110:16:13","nodeType":"VariableDeclaration","scope":2497,"src":"1085:147:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1085:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":2351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1147:84:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":2350,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1137:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1137:95:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"documentation":{"id":2354,"nodeType":"StructuredDocumentation","src":"1238:254:13","text":" @dev In previous versions `_PERMIT_TYPEHASH` was declared as `immutable`.\n However, to ensure consistency with the upgradeable transpiler, we will continue\n to reserve a slot.\n @custom:oz-renamed-from _PERMIT_TYPEHASH"},"id":2356,"mutability":"mutable","name":"_PERMIT_TYPEHASH_DEPRECATED_SLOT","nameLocation":"1565:32:13","nodeType":"VariableDeclaration","scope":2497,"src":"1549:48:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1549:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"body":{"id":2366,"nodeType":"Block","src":"1879:2:13","statements":[]},"documentation":{"id":2357,"nodeType":"StructuredDocumentation","src":"1604:220:13","text":" @dev Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `\"1\"`.\n It's a good idea to use the same `name` that is defined as the ERC20 token name."},"id":2367,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2362,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2359,"src":"1868:4:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"31","id":2363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1874:3:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"id":2364,"kind":"baseConstructorSpecifier","modifierName":{"id":2361,"name":"EIP712","nodeType":"IdentifierPath","referencedDeclaration":5450,"src":"1861:6:13"},"nodeType":"ModifierInvocation","src":"1861:17:13"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2359,"mutability":"mutable","name":"name","nameLocation":"1855:4:13","nodeType":"VariableDeclaration","scope":2367,"src":"1841:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2358,"name":"string","nodeType":"ElementaryTypeName","src":"1841:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1840:20:13"},"returnParameters":{"id":2365,"nodeType":"ParameterList","parameters":[],"src":"1879:0:13"},"scope":2497,"src":"1829:52:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2518],"body":{"id":2439,"nodeType":"Block","src":"2140:428:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2387,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2158:5:13","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"2158:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":2389,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"2177:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2158:27:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332305065726d69743a206578706972656420646561646c696e65","id":2391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2187:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e89525a63fb9c966b61cf8f5305156de8420bc773a2b60828a2f32c3c5797bd","typeString":"literal_string \"ERC20Permit: expired deadline\""},"value":"ERC20Permit: expired deadline"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3e89525a63fb9c966b61cf8f5305156de8420bc773a2b60828a2f32c3c5797bd","typeString":"literal_string \"ERC20Permit: expired deadline\""}],"id":2386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2150:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2150:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2393,"nodeType":"ExpressionStatement","src":"2150:69:13"},{"assignments":[2395],"declarations":[{"constant":false,"id":2395,"mutability":"mutable","name":"structHash","nameLocation":"2238:10:13","nodeType":"VariableDeclaration","scope":2439,"src":"2230:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2230:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2409,"initialValue":{"arguments":[{"arguments":[{"id":2399,"name":"_PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"2272:16:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2400,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"2290:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2401,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"2297:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"2306:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":2404,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"2323:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2403,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2496,"src":"2313:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":2405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2313:16:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2406,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"2331:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2261:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2261:10:13","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2261:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2396,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2251:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2251:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2230:111:13"},{"assignments":[2411],"declarations":[{"constant":false,"id":2411,"mutability":"mutable","name":"hash","nameLocation":"2360:4:13","nodeType":"VariableDeclaration","scope":2439,"src":"2352:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2352:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2415,"initialValue":{"arguments":[{"id":2413,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2395,"src":"2384:10:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2412,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"2367:16:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2367:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2352:43:13"},{"assignments":[2417],"declarations":[{"constant":false,"id":2417,"mutability":"mutable","name":"signer","nameLocation":"2414:6:13","nodeType":"VariableDeclaration","scope":2439,"src":"2406:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2416,"name":"address","nodeType":"ElementaryTypeName","src":"2406:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2425,"initialValue":{"arguments":[{"id":2420,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"2437:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2421,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2378,"src":"2443:1:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2422,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"2446:1:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2423,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2382,"src":"2449:1:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2418,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5296,"src":"2423:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$5296_$","typeString":"type(library ECDSA)"}},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"2423:13:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":2424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2423:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2406:45:13"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2427,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"2469:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2428,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"2479:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2469:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332305065726d69743a20696e76616c6964207369676e6174757265","id":2430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2486:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_94ca1ab58dfda790a1782ffbb0c0a140ec51d4148dbeecc6c39e37b25ff4b124","typeString":"literal_string \"ERC20Permit: invalid signature\""},"value":"ERC20Permit: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94ca1ab58dfda790a1782ffbb0c0a140ec51d4148dbeecc6c39e37b25ff4b124","typeString":"literal_string \"ERC20Permit: invalid signature\""}],"id":2426,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2461:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2461:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2432,"nodeType":"ExpressionStatement","src":"2461:58:13"},{"expression":{"arguments":[{"id":2434,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"2539:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2435,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"2546:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2436,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"2555:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2433,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1358,"src":"2530:8:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2530:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2438,"nodeType":"ExpressionStatement","src":"2530:31:13"}]},"documentation":{"id":2368,"nodeType":"StructuredDocumentation","src":"1887:50:13","text":" @dev See {IERC20Permit-permit}."},"functionSelector":"d505accf","id":2440,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1951:6:13","nodeType":"FunctionDefinition","overrides":{"id":2384,"nodeType":"OverrideSpecifier","overrides":[],"src":"2131:8:13"},"parameters":{"id":2383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2370,"mutability":"mutable","name":"owner","nameLocation":"1975:5:13","nodeType":"VariableDeclaration","scope":2440,"src":"1967:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2369,"name":"address","nodeType":"ElementaryTypeName","src":"1967:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2372,"mutability":"mutable","name":"spender","nameLocation":"1998:7:13","nodeType":"VariableDeclaration","scope":2440,"src":"1990:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2371,"name":"address","nodeType":"ElementaryTypeName","src":"1990:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2374,"mutability":"mutable","name":"value","nameLocation":"2023:5:13","nodeType":"VariableDeclaration","scope":2440,"src":"2015:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2373,"name":"uint256","nodeType":"ElementaryTypeName","src":"2015:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2376,"mutability":"mutable","name":"deadline","nameLocation":"2046:8:13","nodeType":"VariableDeclaration","scope":2440,"src":"2038:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2375,"name":"uint256","nodeType":"ElementaryTypeName","src":"2038:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2378,"mutability":"mutable","name":"v","nameLocation":"2070:1:13","nodeType":"VariableDeclaration","scope":2440,"src":"2064:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2377,"name":"uint8","nodeType":"ElementaryTypeName","src":"2064:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2380,"mutability":"mutable","name":"r","nameLocation":"2089:1:13","nodeType":"VariableDeclaration","scope":2440,"src":"2081:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2081:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2382,"mutability":"mutable","name":"s","nameLocation":"2108:1:13","nodeType":"VariableDeclaration","scope":2440,"src":"2100:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2100:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1957:158:13"},"returnParameters":{"id":2385,"nodeType":"ParameterList","parameters":[],"src":"2140:0:13"},"scope":2497,"src":"1942:626:13","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[2526],"body":{"id":2455,"nodeType":"Block","src":"2707:48:13","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":2449,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2348,"src":"2724:7:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$4692_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":2451,"indexExpression":{"id":2450,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2443,"src":"2732:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2724:14:13","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage","typeString":"struct Counters.Counter storage ref"}},"id":2452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"current","nodeType":"MemberAccess","referencedDeclaration":4704,"src":"2724:22:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$4692_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$4692_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":2453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2724:24:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2448,"id":2454,"nodeType":"Return","src":"2717:31:13"}]},"documentation":{"id":2441,"nodeType":"StructuredDocumentation","src":"2574:50:13","text":" @dev See {IERC20Permit-nonces}."},"functionSelector":"7ecebe00","id":2456,"implemented":true,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"2638:6:13","nodeType":"FunctionDefinition","overrides":{"id":2445,"nodeType":"OverrideSpecifier","overrides":[],"src":"2680:8:13"},"parameters":{"id":2444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2443,"mutability":"mutable","name":"owner","nameLocation":"2653:5:13","nodeType":"VariableDeclaration","scope":2456,"src":"2645:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2442,"name":"address","nodeType":"ElementaryTypeName","src":"2645:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2644:15:13"},"returnParameters":{"id":2448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2456,"src":"2698:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2446,"name":"uint256","nodeType":"ElementaryTypeName","src":"2698:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2697:9:13"},"scope":2497,"src":"2629:126:13","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2532],"body":{"id":2466,"nodeType":"Block","src":"2948:44:13","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2463,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"2965:18:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":2464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2965:20:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2462,"id":2465,"nodeType":"Return","src":"2958:27:13"}]},"documentation":{"id":2457,"nodeType":"StructuredDocumentation","src":"2761:60:13","text":" @dev See {IERC20Permit-DOMAIN_SEPARATOR}."},"functionSelector":"3644e515","id":2467,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2888:16:13","nodeType":"FunctionDefinition","overrides":{"id":2459,"nodeType":"OverrideSpecifier","overrides":[],"src":"2921:8:13"},"parameters":{"id":2458,"nodeType":"ParameterList","parameters":[],"src":"2904:2:13"},"returnParameters":{"id":2462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2467,"src":"2939:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2938:9:13"},"scope":2497,"src":"2879:113:13","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2495,"nodeType":"Block","src":"3200:126:13","statements":[{"assignments":[2479],"declarations":[{"constant":false,"id":2479,"mutability":"mutable","name":"nonce","nameLocation":"3235:5:13","nodeType":"VariableDeclaration","scope":2495,"src":"3210:30:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":2478,"nodeType":"UserDefinedTypeName","pathNode":{"id":2477,"name":"Counters.Counter","nodeType":"IdentifierPath","referencedDeclaration":4692,"src":"3210:16:13"},"referencedDeclaration":4692,"src":"3210:16:13","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"id":2483,"initialValue":{"baseExpression":{"id":2480,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2348,"src":"3243:7:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$4692_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":2482,"indexExpression":{"id":2481,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2470,"src":"3251:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3243:14:13","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage","typeString":"struct Counters.Counter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3210:47:13"},{"expression":{"id":2488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2484,"name":"current","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2473,"src":"3267:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2485,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2479,"src":"3277:5:13","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":2486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"current","nodeType":"MemberAccess","referencedDeclaration":4704,"src":"3277:13:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$4692_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$4692_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":2487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3277:15:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3267:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2489,"nodeType":"ExpressionStatement","src":"3267:25:13"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2490,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2479,"src":"3302:5:13","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":2492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":4718,"src":"3302:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Counter_$4692_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$4692_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer)"}},"id":2493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3302:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2494,"nodeType":"ExpressionStatement","src":"3302:17:13"}]},"documentation":{"id":2468,"nodeType":"StructuredDocumentation","src":"2998:120:13","text":" @dev \"Consume a nonce\": return the current value and increment.\n _Available since v4.1._"},"id":2496,"implemented":true,"kind":"function","modifiers":[],"name":"_useNonce","nameLocation":"3132:9:13","nodeType":"FunctionDefinition","parameters":{"id":2471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2470,"mutability":"mutable","name":"owner","nameLocation":"3150:5:13","nodeType":"VariableDeclaration","scope":2496,"src":"3142:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2469,"name":"address","nodeType":"ElementaryTypeName","src":"3142:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3141:15:13"},"returnParameters":{"id":2474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"current","nameLocation":"3191:7:13","nodeType":"VariableDeclaration","scope":2496,"src":"3183:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2472,"name":"uint256","nodeType":"ElementaryTypeName","src":"3183:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3182:17:13"},"scope":2497,"src":"3123:203:13","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2498,"src":"865:2463:13","usedErrors":[]}],"src":"128:3201:13"},"id":13},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[2533]},"id":2534,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2499,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:14"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":2500,"nodeType":"StructuredDocumentation","src":"139:480:14","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":2533,"linearizedBaseContracts":[2533],"name":"IERC20Permit","nameLocation":"630:12:14","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2501,"nodeType":"StructuredDocumentation","src":"649:792:14","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":2518,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:14","nodeType":"FunctionDefinition","parameters":{"id":2516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2503,"mutability":"mutable","name":"owner","nameLocation":"1479:5:14","nodeType":"VariableDeclaration","scope":2518,"src":"1471:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2502,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2505,"mutability":"mutable","name":"spender","nameLocation":"1502:7:14","nodeType":"VariableDeclaration","scope":2518,"src":"1494:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2504,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2507,"mutability":"mutable","name":"value","nameLocation":"1527:5:14","nodeType":"VariableDeclaration","scope":2518,"src":"1519:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2509,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:14","nodeType":"VariableDeclaration","scope":2518,"src":"1542:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2508,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2511,"mutability":"mutable","name":"v","nameLocation":"1574:1:14","nodeType":"VariableDeclaration","scope":2518,"src":"1568:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2510,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2513,"mutability":"mutable","name":"r","nameLocation":"1593:1:14","nodeType":"VariableDeclaration","scope":2518,"src":"1585:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2515,"mutability":"mutable","name":"s","nameLocation":"1612:1:14","nodeType":"VariableDeclaration","scope":2518,"src":"1604:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:14"},"returnParameters":{"id":2517,"nodeType":"ParameterList","parameters":[],"src":"1628:0:14"},"scope":2533,"src":"1446:183:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2519,"nodeType":"StructuredDocumentation","src":"1635:294:14","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":2526,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:14","nodeType":"FunctionDefinition","parameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2521,"mutability":"mutable","name":"owner","nameLocation":"1958:5:14","nodeType":"VariableDeclaration","scope":2526,"src":"1950:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2520,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:14"},"returnParameters":{"id":2525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2526,"src":"1988:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2523,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:14"},"scope":2533,"src":"1934:63:14","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2527,"nodeType":"StructuredDocumentation","src":"2003:128:14","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":2532,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:14","nodeType":"FunctionDefinition","parameters":{"id":2528,"nodeType":"ParameterList","parameters":[],"src":"2214:2:14"},"returnParameters":{"id":2531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2532,"src":"2240:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:14"},"scope":2533,"src":"2189:60:14","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2534,"src":"620:1631:14","usedErrors":[]}],"src":"114:2138:14"},"id":14},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[4617],"IERC20":[1502],"IERC20Permit":[2533],"SafeERC20":[2814]},"id":2815,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2535,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:15"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":2536,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2815,"sourceUnit":1503,"src":"140:23:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","file":"../extensions/draft-IERC20Permit.sol","id":2537,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2815,"sourceUnit":2534,"src":"164:46:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":2538,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2815,"sourceUnit":4618,"src":"211:36:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":2539,"nodeType":"StructuredDocumentation","src":"249:457:15","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":2814,"linearizedBaseContracts":[2814],"name":"SafeERC20","nameLocation":"715:9:15","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2542,"libraryName":{"id":2540,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":4617,"src":"737:7:15"},"nodeType":"UsingForDirective","src":"731:26:15","typeName":{"id":2541,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":2564,"nodeType":"Block","src":"865:103:15","statements":[{"expression":{"arguments":[{"id":2553,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"895:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":2556,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"925:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1469,"src":"925:14:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"925:23:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":2559,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2547,"src":"950:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2560,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"954:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"902:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"902:22:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"902:58:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2552,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2813,"src":"875:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$1502_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":2562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"875:86:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2563,"nodeType":"ExpressionStatement","src":"875:86:15"}]},"id":2565,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"772:12:15","nodeType":"FunctionDefinition","parameters":{"id":2550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2545,"mutability":"mutable","name":"token","nameLocation":"801:5:15","nodeType":"VariableDeclaration","scope":2565,"src":"794:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":2544,"nodeType":"UserDefinedTypeName","pathNode":{"id":2543,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"794:6:15"},"referencedDeclaration":1502,"src":"794:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"to","nameLocation":"824:2:15","nodeType":"VariableDeclaration","scope":2565,"src":"816:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2546,"name":"address","nodeType":"ElementaryTypeName","src":"816:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2549,"mutability":"mutable","name":"value","nameLocation":"844:5:15","nodeType":"VariableDeclaration","scope":2565,"src":"836:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2548,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"784:71:15"},"returnParameters":{"id":2551,"nodeType":"ParameterList","parameters":[],"src":"865:0:15"},"scope":2814,"src":"763:205:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2590,"nodeType":"Block","src":"1102:113:15","statements":[{"expression":{"arguments":[{"id":2578,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"1132:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":2581,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"1162:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":1501,"src":"1162:18:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":2583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1162:27:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":2584,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2570,"src":"1191:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2585,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"1197:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2586,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"1201:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2579,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1139:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1139:22:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1139:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2577,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2813,"src":"1112:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$1502_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":2588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1112:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2589,"nodeType":"ExpressionStatement","src":"1112:96:15"}]},"id":2591,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"983:16:15","nodeType":"FunctionDefinition","parameters":{"id":2575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2568,"mutability":"mutable","name":"token","nameLocation":"1016:5:15","nodeType":"VariableDeclaration","scope":2591,"src":"1009:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":2567,"nodeType":"UserDefinedTypeName","pathNode":{"id":2566,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"1009:6:15"},"referencedDeclaration":1502,"src":"1009:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":2570,"mutability":"mutable","name":"from","nameLocation":"1039:4:15","nodeType":"VariableDeclaration","scope":2591,"src":"1031:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2569,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2572,"mutability":"mutable","name":"to","nameLocation":"1061:2:15","nodeType":"VariableDeclaration","scope":2591,"src":"1053:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2571,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2574,"mutability":"mutable","name":"value","nameLocation":"1081:5:15","nodeType":"VariableDeclaration","scope":2591,"src":"1073:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2573,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"999:93:15"},"returnParameters":{"id":2576,"nodeType":"ParameterList","parameters":[],"src":"1102:0:15"},"scope":2814,"src":"974:241:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2634,"nodeType":"Block","src":"1581:497:15","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2603,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2599,"src":"1830:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1839:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1830:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2606,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1829:12:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2611,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1870:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2814","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$2814","typeString":"library SafeERC20"}],"id":2610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1862:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2609,"name":"address","nodeType":"ElementaryTypeName","src":"1862:7:15","typeDescriptions":{}}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1862:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2613,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"1877:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2607,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"1846:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":1479,"src":"1846:15:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":2614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1846:44:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1845:46:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1829:62:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":2619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1905:56:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":2602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1808:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1808:163:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2621,"nodeType":"ExpressionStatement","src":"1808:163:15"},{"expression":{"arguments":[{"id":2623,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"2001:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":2626,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"2031:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"2031:13:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2031:22:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":2629,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2597,"src":"2055:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2630,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2599,"src":"2064:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2624,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2008:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2008:22:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2008:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2622,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2813,"src":"1981:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$1502_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":2632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1981:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2633,"nodeType":"ExpressionStatement","src":"1981:90:15"}]},"documentation":{"id":2592,"nodeType":"StructuredDocumentation","src":"1221:249:15","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":2635,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1484:11:15","nodeType":"FunctionDefinition","parameters":{"id":2600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2595,"mutability":"mutable","name":"token","nameLocation":"1512:5:15","nodeType":"VariableDeclaration","scope":2635,"src":"1505:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":2594,"nodeType":"UserDefinedTypeName","pathNode":{"id":2593,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"1505:6:15"},"referencedDeclaration":1502,"src":"1505:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":2597,"mutability":"mutable","name":"spender","nameLocation":"1535:7:15","nodeType":"VariableDeclaration","scope":2635,"src":"1527:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2596,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2599,"mutability":"mutable","name":"value","nameLocation":"1560:5:15","nodeType":"VariableDeclaration","scope":2635,"src":"1552:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2598,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1495:76:15"},"returnParameters":{"id":2601,"nodeType":"ParameterList","parameters":[],"src":"1581:0:15"},"scope":2814,"src":"1475:603:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2670,"nodeType":"Block","src":"2200:194:15","statements":[{"assignments":[2646],"declarations":[{"constant":false,"id":2646,"mutability":"mutable","name":"newAllowance","nameLocation":"2218:12:15","nodeType":"VariableDeclaration","scope":2670,"src":"2210:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2645,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2657,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2651,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2257:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2814","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$2814","typeString":"library SafeERC20"}],"id":2650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2249:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2649,"name":"address","nodeType":"ElementaryTypeName","src":"2249:7:15","typeDescriptions":{}}},"id":2652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2653,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2640,"src":"2264:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2647,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2638,"src":"2233:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":1479,"src":"2233:15:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":2654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2233:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2655,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2642,"src":"2275:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2233:47:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2210:70:15"},{"expression":{"arguments":[{"id":2659,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2638,"src":"2310:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":2662,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2638,"src":"2340:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"2340:13:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2340:22:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":2665,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2640,"src":"2364:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2666,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2646,"src":"2373:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2660,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2317:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2317:22:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2658,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2813,"src":"2290:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$1502_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":2668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:97:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2669,"nodeType":"ExpressionStatement","src":"2290:97:15"}]},"id":2671,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2093:21:15","nodeType":"FunctionDefinition","parameters":{"id":2643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2638,"mutability":"mutable","name":"token","nameLocation":"2131:5:15","nodeType":"VariableDeclaration","scope":2671,"src":"2124:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":2637,"nodeType":"UserDefinedTypeName","pathNode":{"id":2636,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"2124:6:15"},"referencedDeclaration":1502,"src":"2124:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":2640,"mutability":"mutable","name":"spender","nameLocation":"2154:7:15","nodeType":"VariableDeclaration","scope":2671,"src":"2146:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2639,"name":"address","nodeType":"ElementaryTypeName","src":"2146:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2642,"mutability":"mutable","name":"value","nameLocation":"2179:5:15","nodeType":"VariableDeclaration","scope":2671,"src":"2171:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2641,"name":"uint256","nodeType":"ElementaryTypeName","src":"2171:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2114:76:15"},"returnParameters":{"id":2644,"nodeType":"ParameterList","parameters":[],"src":"2200:0:15"},"scope":2814,"src":"2084:310:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2718,"nodeType":"Block","src":"2516:370:15","statements":[{"id":2717,"nodeType":"UncheckedBlock","src":"2526:354:15","statements":[{"assignments":[2682],"declarations":[{"constant":false,"id":2682,"mutability":"mutable","name":"oldAllowance","nameLocation":"2558:12:15","nodeType":"VariableDeclaration","scope":2717,"src":"2550:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2681,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2691,"initialValue":{"arguments":[{"arguments":[{"id":2687,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2597:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2814","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$2814","typeString":"library SafeERC20"}],"id":2686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2589:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2685,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:15","typeDescriptions":{}}},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2589:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2689,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2676,"src":"2604:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2683,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2573:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":1479,"src":"2573:15:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2550:62:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2693,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2682,"src":"2634:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"2650:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2634:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":2696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2657:43:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":2692,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2626:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2626:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2698,"nodeType":"ExpressionStatement","src":"2626:75:15"},{"assignments":[2700],"declarations":[{"constant":false,"id":2700,"mutability":"mutable","name":"newAllowance","nameLocation":"2723:12:15","nodeType":"VariableDeclaration","scope":2717,"src":"2715:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2699,"name":"uint256","nodeType":"ElementaryTypeName","src":"2715:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2704,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2701,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2682,"src":"2738:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2678,"src":"2753:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2738:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2715:43:15"},{"expression":{"arguments":[{"id":2706,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2792:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":2709,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2822:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"2822:13:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":2711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2822:22:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":2712,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2676,"src":"2846:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2713,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"2855:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2707,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2799:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2799:22:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2799:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2705,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2813,"src":"2772:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$1502_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":2715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2772:97:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2716,"nodeType":"ExpressionStatement","src":"2772:97:15"}]}]},"id":2719,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2409:21:15","nodeType":"FunctionDefinition","parameters":{"id":2679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2674,"mutability":"mutable","name":"token","nameLocation":"2447:5:15","nodeType":"VariableDeclaration","scope":2719,"src":"2440:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":2673,"nodeType":"UserDefinedTypeName","pathNode":{"id":2672,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"2440:6:15"},"referencedDeclaration":1502,"src":"2440:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":2676,"mutability":"mutable","name":"spender","nameLocation":"2470:7:15","nodeType":"VariableDeclaration","scope":2719,"src":"2462:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2675,"name":"address","nodeType":"ElementaryTypeName","src":"2462:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2678,"mutability":"mutable","name":"value","nameLocation":"2495:5:15","nodeType":"VariableDeclaration","scope":2719,"src":"2487:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2677,"name":"uint256","nodeType":"ElementaryTypeName","src":"2487:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:76:15"},"returnParameters":{"id":2680,"nodeType":"ParameterList","parameters":[],"src":"2516:0:15"},"scope":2814,"src":"2400:486:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2774,"nodeType":"Block","src":"3107:257:15","statements":[{"assignments":[2740],"declarations":[{"constant":false,"id":2740,"mutability":"mutable","name":"nonceBefore","nameLocation":"3125:11:15","nodeType":"VariableDeclaration","scope":2774,"src":"3117:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2739,"name":"uint256","nodeType":"ElementaryTypeName","src":"3117:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2745,"initialValue":{"arguments":[{"id":2743,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2724,"src":"3152:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2741,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2722,"src":"3139:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$2533","typeString":"contract IERC20Permit"}},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":2526,"src":"3139:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3139:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3117:41:15"},{"expression":{"arguments":[{"id":2749,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2724,"src":"3181:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2750,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"3188:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2751,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2728,"src":"3197:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2752,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2730,"src":"3204:8:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2753,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2732,"src":"3214:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2754,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"3217:1:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2736,"src":"3220:1:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2746,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2722,"src":"3168:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$2533","typeString":"contract IERC20Permit"}},"id":2748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2518,"src":"3168:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2757,"nodeType":"ExpressionStatement","src":"3168:54:15"},{"assignments":[2759],"declarations":[{"constant":false,"id":2759,"mutability":"mutable","name":"nonceAfter","nameLocation":"3240:10:15","nodeType":"VariableDeclaration","scope":2774,"src":"3232:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2758,"name":"uint256","nodeType":"ElementaryTypeName","src":"3232:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2764,"initialValue":{"arguments":[{"id":2762,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2724,"src":"3266:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2760,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2722,"src":"3253:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$2533","typeString":"contract IERC20Permit"}},"id":2761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":2526,"src":"3253:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3253:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3232:40:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2766,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"3290:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2767,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"3304:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3318:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3304:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3290:29:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":2771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3321:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":2765,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3282:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2773,"nodeType":"ExpressionStatement","src":"3282:75:15"}]},"id":2775,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"2901:10:15","nodeType":"FunctionDefinition","parameters":{"id":2737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2722,"mutability":"mutable","name":"token","nameLocation":"2934:5:15","nodeType":"VariableDeclaration","scope":2775,"src":"2921:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$2533","typeString":"contract IERC20Permit"},"typeName":{"id":2721,"nodeType":"UserDefinedTypeName","pathNode":{"id":2720,"name":"IERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":2533,"src":"2921:12:15"},"referencedDeclaration":2533,"src":"2921:12:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$2533","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":2724,"mutability":"mutable","name":"owner","nameLocation":"2957:5:15","nodeType":"VariableDeclaration","scope":2775,"src":"2949:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2723,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2726,"mutability":"mutable","name":"spender","nameLocation":"2980:7:15","nodeType":"VariableDeclaration","scope":2775,"src":"2972:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2725,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2728,"mutability":"mutable","name":"value","nameLocation":"3005:5:15","nodeType":"VariableDeclaration","scope":2775,"src":"2997:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2727,"name":"uint256","nodeType":"ElementaryTypeName","src":"2997:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2730,"mutability":"mutable","name":"deadline","nameLocation":"3028:8:15","nodeType":"VariableDeclaration","scope":2775,"src":"3020:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2729,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2732,"mutability":"mutable","name":"v","nameLocation":"3052:1:15","nodeType":"VariableDeclaration","scope":2775,"src":"3046:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2731,"name":"uint8","nodeType":"ElementaryTypeName","src":"3046:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2734,"mutability":"mutable","name":"r","nameLocation":"3071:1:15","nodeType":"VariableDeclaration","scope":2775,"src":"3063:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3063:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2736,"mutability":"mutable","name":"s","nameLocation":"3090:1:15","nodeType":"VariableDeclaration","scope":2775,"src":"3082:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3082:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2911:186:15"},"returnParameters":{"id":2738,"nodeType":"ParameterList","parameters":[],"src":"3107:0:15"},"scope":2814,"src":"2892:472:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2812,"nodeType":"Block","src":"3817:636:15","statements":[{"assignments":[2785],"declarations":[{"constant":false,"id":2785,"mutability":"mutable","name":"returndata","nameLocation":"4179:10:15","nodeType":"VariableDeclaration","scope":2812,"src":"4166:23:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2784,"name":"bytes","nodeType":"ElementaryTypeName","src":"4166:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2794,"initialValue":{"arguments":[{"id":2791,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2781,"src":"4220:4:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":2792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4226:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":2788,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2779,"src":"4200:5:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}],"id":2787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4192:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2786,"name":"address","nodeType":"ElementaryTypeName","src":"4192:7:15","typeDescriptions":{}}},"id":2789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":4377,"src":"4192:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":2793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4166:95:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2795,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"4275:10:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4275:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4295:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4275:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2811,"nodeType":"IfStatement","src":"4271:176:15","trueBody":{"id":2810,"nodeType":"Block","src":"4298:149:15","statements":[{"expression":{"arguments":[{"arguments":[{"id":2802,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"4370:10:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":2804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4383:4:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":2803,"name":"bool","nodeType":"ElementaryTypeName","src":"4383:4:15","typeDescriptions":{}}}],"id":2805,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4382:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":2800,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4359:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"4359:10:15","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":2806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4359:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":2807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4391:44:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":2799,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4351:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4351:85:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2809,"nodeType":"ExpressionStatement","src":"4351:85:15"}]}}]},"documentation":{"id":2776,"nodeType":"StructuredDocumentation","src":"3370:372:15","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":2813,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"3756:19:15","nodeType":"FunctionDefinition","parameters":{"id":2782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2779,"mutability":"mutable","name":"token","nameLocation":"3783:5:15","nodeType":"VariableDeclaration","scope":2813,"src":"3776:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":2778,"nodeType":"UserDefinedTypeName","pathNode":{"id":2777,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"3776:6:15"},"referencedDeclaration":1502,"src":"3776:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":2781,"mutability":"mutable","name":"data","nameLocation":"3803:4:15","nodeType":"VariableDeclaration","scope":2813,"src":"3790:17:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2780,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:33:15"},"returnParameters":{"id":2783,"nodeType":"ParameterList","parameters":[],"src":"3817:0:15"},"scope":2814,"src":"3747:706:15","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":2815,"src":"707:3748:15","usedErrors":[]}],"src":"115:4341:15"},"id":15},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[4617],"Context":[4686],"ERC165":[5976],"ERC721":[3741],"IERC165":[5988],"IERC721":[3857],"IERC721Metadata":[4287],"IERC721Receiver":[3875],"Math":[6853],"Strings":[4935]},"id":3742,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2816,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:16"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":2817,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3742,"sourceUnit":3858,"src":"132:23:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":2818,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3742,"sourceUnit":3876,"src":"156:31:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":2819,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3742,"sourceUnit":4288,"src":"188:42:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":2820,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3742,"sourceUnit":4618,"src":"231:33:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":2821,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3742,"sourceUnit":4687,"src":"265:33:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":2822,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3742,"sourceUnit":4936,"src":"299:33:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":2823,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3742,"sourceUnit":5977,"src":"333:46:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2825,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":4686,"src":"647:7:16"},"id":2826,"nodeType":"InheritanceSpecifier","src":"647:7:16"},{"baseName":{"id":2827,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":5976,"src":"656:6:16"},"id":2828,"nodeType":"InheritanceSpecifier","src":"656:6:16"},{"baseName":{"id":2829,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":3857,"src":"664:7:16"},"id":2830,"nodeType":"InheritanceSpecifier","src":"664:7:16"},{"baseName":{"id":2831,"name":"IERC721Metadata","nodeType":"IdentifierPath","referencedDeclaration":4287,"src":"673:15:16"},"id":2832,"nodeType":"InheritanceSpecifier","src":"673:15:16"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":2824,"nodeType":"StructuredDocumentation","src":"381:246:16","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":3741,"linearizedBaseContracts":[3741,4287,3857,5976,5988,4686],"name":"ERC721","nameLocation":"637:6:16","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2835,"libraryName":{"id":2833,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":4617,"src":"701:7:16"},"nodeType":"UsingForDirective","src":"695:26:16","typeName":{"id":2834,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":2838,"libraryName":{"id":2836,"name":"Strings","nodeType":"IdentifierPath","referencedDeclaration":4935,"src":"732:7:16"},"nodeType":"UsingForDirective","src":"726:26:16","typeName":{"id":2837,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":2840,"mutability":"mutable","name":"_name","nameLocation":"791:5:16","nodeType":"VariableDeclaration","scope":3741,"src":"776:20:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":2839,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":2842,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:16","nodeType":"VariableDeclaration","scope":3741,"src":"823:22:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":2841,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":2846,"mutability":"mutable","name":"_owners","nameLocation":"934:7:16","nodeType":"VariableDeclaration","scope":3741,"src":"898:43:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":2845,"keyType":{"id":2843,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":2844,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":2850,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:16","nodeType":"VariableDeclaration","scope":3741,"src":"992:45:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2849,"keyType":{"id":2847,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2848,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":2854,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:16","nodeType":"VariableDeclaration","scope":3741,"src":"1093:51:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":2853,"keyType":{"id":2851,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":2852,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":2860,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:16","nodeType":"VariableDeclaration","scope":3741,"src":"1199:71:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":2859,"keyType":{"id":2855,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":2858,"keyType":{"id":2856,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":2857,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":2876,"nodeType":"Block","src":"1446:57:16","statements":[{"expression":{"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2868,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2840,"src":"1456:5:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2869,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2863,"src":"1464:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2871,"nodeType":"ExpressionStatement","src":"1456:13:16"},{"expression":{"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2872,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"1479:7:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2873,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"1489:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2875,"nodeType":"ExpressionStatement","src":"1479:17:16"}]},"documentation":{"id":2861,"nodeType":"StructuredDocumentation","src":"1277:108:16","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":2877,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2863,"mutability":"mutable","name":"name_","nameLocation":"1416:5:16","nodeType":"VariableDeclaration","scope":2877,"src":"1402:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2862,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2865,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:16","nodeType":"VariableDeclaration","scope":2877,"src":"1423:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2864,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:16"},"returnParameters":{"id":2867,"nodeType":"ParameterList","parameters":[],"src":"1446:0:16"},"scope":3741,"src":"1390:113:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5975,5987],"body":{"id":2907,"nodeType":"Block","src":"1678:192:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2888,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2880,"src":"1707:11:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2890,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"1727:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$3857_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$3857_$","typeString":"type(contract IERC721)"}],"id":2889,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1722:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1722:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$3857","typeString":"type(contract IERC721)"}},"id":2892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2894,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2880,"src":"1763:11:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2896,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4287,"src":"1783:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$4287_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$4287_$","typeString":"type(contract IERC721Metadata)"}],"id":2895,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1778:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1778:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$4287","typeString":"type(contract IERC721Metadata)"}},"id":2898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2903,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2880,"src":"1851:11:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":2901,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1827:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$3741_$","typeString":"type(contract super ERC721)"}},"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":5975,"src":"1827:23:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1827:36:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2887,"id":2906,"nodeType":"Return","src":"1688:175:16"}]},"documentation":{"id":2878,"nodeType":"StructuredDocumentation","src":"1509:56:16","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2908,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:16","nodeType":"FunctionDefinition","overrides":{"id":2884,"nodeType":"OverrideSpecifier","overrides":[{"id":2882,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":5976,"src":"1646:6:16"},{"id":2883,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":5988,"src":"1654:7:16"}],"src":"1637:25:16"},"parameters":{"id":2881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2880,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:16","nodeType":"VariableDeclaration","scope":2908,"src":"1597:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2879,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:16"},"returnParameters":{"id":2887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2908,"src":"1672:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2885,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:16"},"scope":3741,"src":"1570:300:16","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3782],"body":{"id":2931,"nodeType":"Block","src":"2010:123:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2918,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"2028:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:16","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":2920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2919,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:16","typeDescriptions":{}}},"id":2922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2037:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":2924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:43:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""},"value":"ERC721: address zero is not a valid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""}],"id":2917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:73:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2926,"nodeType":"ExpressionStatement","src":"2020:73:16"},{"expression":{"baseExpression":{"id":2927,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"2110:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2929,"indexExpression":{"id":2928,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"2120:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2110:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2916,"id":2930,"nodeType":"Return","src":"2103:23:16"}]},"documentation":{"id":2909,"nodeType":"StructuredDocumentation","src":"1876:48:16","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":2932,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:16","nodeType":"FunctionDefinition","overrides":{"id":2913,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:16"},"parameters":{"id":2912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2911,"mutability":"mutable","name":"owner","nameLocation":"1956:5:16","nodeType":"VariableDeclaration","scope":2932,"src":"1948:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2910,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:16"},"returnParameters":{"id":2916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2932,"src":"2001:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2914,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:16"},"scope":3741,"src":"1929:204:16","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3790],"body":{"id":2959,"nodeType":"Block","src":"2271:138:16","statements":[{"assignments":[2942],"declarations":[{"constant":false,"id":2942,"mutability":"mutable","name":"owner","nameLocation":"2289:5:16","nodeType":"VariableDeclaration","scope":2959,"src":"2281:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2941,"name":"address","nodeType":"ElementaryTypeName","src":"2281:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2946,"initialValue":{"arguments":[{"id":2944,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2935,"src":"2306:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2943,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3242,"src":"2297:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":2945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2297:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2281:33:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2948,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2942,"src":"2332:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2349:1:16","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":2950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2341:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2949,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:16","typeDescriptions":{}}},"id":2952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2341:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2332:19:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":2954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:26:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":2947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2324:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2324:56:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2956,"nodeType":"ExpressionStatement","src":"2324:56:16"},{"expression":{"id":2957,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2942,"src":"2397:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2940,"id":2958,"nodeType":"Return","src":"2390:12:16"}]},"documentation":{"id":2933,"nodeType":"StructuredDocumentation","src":"2139:46:16","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":2960,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2199:7:16","nodeType":"FunctionDefinition","overrides":{"id":2937,"nodeType":"OverrideSpecifier","overrides":[],"src":"2244:8:16"},"parameters":{"id":2936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2935,"mutability":"mutable","name":"tokenId","nameLocation":"2215:7:16","nodeType":"VariableDeclaration","scope":2960,"src":"2207:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2934,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2206:17:16"},"returnParameters":{"id":2940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2960,"src":"2262:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2938,"name":"address","nodeType":"ElementaryTypeName","src":"2262:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2261:9:16"},"scope":3741,"src":"2190:219:16","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4272],"body":{"id":2969,"nodeType":"Block","src":"2540:29:16","statements":[{"expression":{"id":2967,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2840,"src":"2557:5:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":2966,"id":2968,"nodeType":"Return","src":"2550:12:16"}]},"documentation":{"id":2961,"nodeType":"StructuredDocumentation","src":"2415:51:16","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":2970,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2480:4:16","nodeType":"FunctionDefinition","overrides":{"id":2963,"nodeType":"OverrideSpecifier","overrides":[],"src":"2507:8:16"},"parameters":{"id":2962,"nodeType":"ParameterList","parameters":[],"src":"2484:2:16"},"returnParameters":{"id":2966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2970,"src":"2525:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2964,"name":"string","nodeType":"ElementaryTypeName","src":"2525:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2524:15:16"},"scope":3741,"src":"2471:98:16","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4278],"body":{"id":2979,"nodeType":"Block","src":"2704:31:16","statements":[{"expression":{"id":2977,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"2721:7:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":2976,"id":2978,"nodeType":"Return","src":"2714:14:16"}]},"documentation":{"id":2971,"nodeType":"StructuredDocumentation","src":"2575:53:16","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":2980,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2642:6:16","nodeType":"FunctionDefinition","overrides":{"id":2973,"nodeType":"OverrideSpecifier","overrides":[],"src":"2671:8:16"},"parameters":{"id":2972,"nodeType":"ParameterList","parameters":[],"src":"2648:2:16"},"returnParameters":{"id":2976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2980,"src":"2689:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2974,"name":"string","nodeType":"ElementaryTypeName","src":"2689:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2688:15:16"},"scope":3741,"src":"2633:102:16","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4286],"body":{"id":3018,"nodeType":"Block","src":"2889:188:16","statements":[{"expression":{"arguments":[{"id":2990,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2983,"src":"2914:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2989,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3637,"src":"2899:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2899:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2992,"nodeType":"ExpressionStatement","src":"2899:23:16"},{"assignments":[2994],"declarations":[{"constant":false,"id":2994,"mutability":"mutable","name":"baseURI","nameLocation":"2947:7:16","nodeType":"VariableDeclaration","scope":3018,"src":"2933:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2993,"name":"string","nodeType":"ElementaryTypeName","src":"2933:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2997,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2995,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3028,"src":"2957:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2957:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2933:34:16"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3000,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2994,"src":"2990:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2984:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2998,"name":"bytes","nodeType":"ElementaryTypeName","src":"2984:5:16","typeDescriptions":{}}},"id":3001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2984:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2984:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3008:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2984:25:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":3015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3068:2:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":3016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2984:86:16","trueExpression":{"arguments":[{"arguments":[{"id":3009,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2994,"src":"3036:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3010,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2983,"src":"3045:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"3045:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":3012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3045:18:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3007,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3019:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3019:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3019:45:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3012:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3005,"name":"string","nodeType":"ElementaryTypeName","src":"3012:6:16","typeDescriptions":{}}},"id":3014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3012:53:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2988,"id":3017,"nodeType":"Return","src":"2977:93:16"}]},"documentation":{"id":2981,"nodeType":"StructuredDocumentation","src":"2741:55:16","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":3019,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2810:8:16","nodeType":"FunctionDefinition","overrides":{"id":2985,"nodeType":"OverrideSpecifier","overrides":[],"src":"2856:8:16"},"parameters":{"id":2984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2983,"mutability":"mutable","name":"tokenId","nameLocation":"2827:7:16","nodeType":"VariableDeclaration","scope":3019,"src":"2819:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2982,"name":"uint256","nodeType":"ElementaryTypeName","src":"2819:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2818:17:16"},"returnParameters":{"id":2988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3019,"src":"2874:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2986,"name":"string","nodeType":"ElementaryTypeName","src":"2874:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2873:15:16"},"scope":3741,"src":"2801:276:16","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3027,"nodeType":"Block","src":"3385:26:16","statements":[{"expression":{"hexValue":"","id":3025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3402:2:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":3024,"id":3026,"nodeType":"Return","src":"3395:9:16"}]},"documentation":{"id":3020,"nodeType":"StructuredDocumentation","src":"3083:231:16","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":3028,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3328:8:16","nodeType":"FunctionDefinition","parameters":{"id":3021,"nodeType":"ParameterList","parameters":[],"src":"3336:2:16"},"returnParameters":{"id":3024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3028,"src":"3370:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3022,"name":"string","nodeType":"ElementaryTypeName","src":"3370:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3369:15:16"},"scope":3741,"src":"3319:92:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[3830],"body":{"id":3070,"nodeType":"Block","src":"3538:336:16","statements":[{"assignments":[3038],"declarations":[{"constant":false,"id":3038,"mutability":"mutable","name":"owner","nameLocation":"3556:5:16","nodeType":"VariableDeclaration","scope":3070,"src":"3548:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3037,"name":"address","nodeType":"ElementaryTypeName","src":"3548:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3043,"initialValue":{"arguments":[{"id":3041,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"3579:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3039,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"3564:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":2960,"src":"3564:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3564:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3548:39:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3045,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"3605:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3046,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"3611:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3605:11:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":3048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3618:35:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":3044,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3597:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3597:57:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3050,"nodeType":"ExpressionStatement","src":"3597:57:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3052,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"3686:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3686:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3054,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"3702:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3686:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3057,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"3728:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":3058,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"3735:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3735:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3056,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"3711:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":3060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3711:37:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3686:62:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","id":3062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3762:63:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83","typeString":"literal_string \"ERC721: approve caller is not token owner or approved for all\""},"value":"ERC721: approve caller is not token owner or approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83","typeString":"literal_string \"ERC721: approve caller is not token owner or approved for all\""}],"id":3051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3665:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3665:170:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3064,"nodeType":"ExpressionStatement","src":"3665:170:16"},{"expression":{"arguments":[{"id":3066,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"3855:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3067,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"3859:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3065,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"3846:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3846:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3069,"nodeType":"ExpressionStatement","src":"3846:21:16"}]},"documentation":{"id":3029,"nodeType":"StructuredDocumentation","src":"3417:46:16","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":3071,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3477:7:16","nodeType":"FunctionDefinition","overrides":{"id":3035,"nodeType":"OverrideSpecifier","overrides":[],"src":"3529:8:16"},"parameters":{"id":3034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3031,"mutability":"mutable","name":"to","nameLocation":"3493:2:16","nodeType":"VariableDeclaration","scope":3071,"src":"3485:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3030,"name":"address","nodeType":"ElementaryTypeName","src":"3485:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3033,"mutability":"mutable","name":"tokenId","nameLocation":"3505:7:16","nodeType":"VariableDeclaration","scope":3071,"src":"3497:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3032,"name":"uint256","nodeType":"ElementaryTypeName","src":"3497:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3484:29:16"},"returnParameters":{"id":3036,"nodeType":"ParameterList","parameters":[],"src":"3538:0:16"},"scope":3741,"src":"3468:406:16","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3846],"body":{"id":3088,"nodeType":"Block","src":"4020:82:16","statements":[{"expression":{"arguments":[{"id":3081,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3074,"src":"4045:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3080,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3637,"src":"4030:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":3082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4030:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3083,"nodeType":"ExpressionStatement","src":"4030:23:16"},{"expression":{"baseExpression":{"id":3084,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2854,"src":"4071:15:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3086,"indexExpression":{"id":3085,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3074,"src":"4087:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4071:24:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3079,"id":3087,"nodeType":"Return","src":"4064:31:16"}]},"documentation":{"id":3072,"nodeType":"StructuredDocumentation","src":"3880:50:16","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":3089,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3944:11:16","nodeType":"FunctionDefinition","overrides":{"id":3076,"nodeType":"OverrideSpecifier","overrides":[],"src":"3993:8:16"},"parameters":{"id":3075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3074,"mutability":"mutable","name":"tokenId","nameLocation":"3964:7:16","nodeType":"VariableDeclaration","scope":3089,"src":"3956:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3073,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:17:16"},"returnParameters":{"id":3079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3089,"src":"4011:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3077,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:9:16"},"scope":3741,"src":"3935:167:16","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3838],"body":{"id":3105,"nodeType":"Block","src":"4253:69:16","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3099,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"4282:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4282:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3101,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"4296:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3102,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3094,"src":"4306:8:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3098,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3623,"src":"4263:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":3103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4263:52:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3104,"nodeType":"ExpressionStatement","src":"4263:52:16"}]},"documentation":{"id":3090,"nodeType":"StructuredDocumentation","src":"4108:56:16","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":3106,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4178:17:16","nodeType":"FunctionDefinition","overrides":{"id":3096,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:16"},"parameters":{"id":3095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3092,"mutability":"mutable","name":"operator","nameLocation":"4204:8:16","nodeType":"VariableDeclaration","scope":3106,"src":"4196:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3091,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3094,"mutability":"mutable","name":"approved","nameLocation":"4219:8:16","nodeType":"VariableDeclaration","scope":3106,"src":"4214:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3093,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4195:33:16"},"returnParameters":{"id":3097,"nodeType":"ParameterList","parameters":[],"src":"4253:0:16"},"scope":3741,"src":"4169:153:16","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3856],"body":{"id":3123,"nodeType":"Block","src":"4491:59:16","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":3117,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"4508:18:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":3119,"indexExpression":{"id":3118,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3109,"src":"4527:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:25:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3121,"indexExpression":{"id":3120,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"4534:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:35:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3116,"id":3122,"nodeType":"Return","src":"4501:42:16"}]},"documentation":{"id":3107,"nodeType":"StructuredDocumentation","src":"4328:55:16","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":3124,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4397:16:16","nodeType":"FunctionDefinition","overrides":{"id":3113,"nodeType":"OverrideSpecifier","overrides":[],"src":"4467:8:16"},"parameters":{"id":3112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3109,"mutability":"mutable","name":"owner","nameLocation":"4422:5:16","nodeType":"VariableDeclaration","scope":3124,"src":"4414:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3108,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3111,"mutability":"mutable","name":"operator","nameLocation":"4437:8:16","nodeType":"VariableDeclaration","scope":3124,"src":"4429:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3110,"name":"address","nodeType":"ElementaryTypeName","src":"4429:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:33:16"},"returnParameters":{"id":3116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3124,"src":"4485:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3114,"name":"bool","nodeType":"ElementaryTypeName","src":"4485:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4484:6:16"},"scope":3741,"src":"4388:162:16","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3822],"body":{"id":3150,"nodeType":"Block","src":"4731:207:16","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3137,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"4820:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4820:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3139,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3131,"src":"4834:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3136,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"4801:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4801:41:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":3141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4844:47:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""},"value":"ERC721: caller is not token owner or approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""}],"id":3135,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4793:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4793:99:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3143,"nodeType":"ExpressionStatement","src":"4793:99:16"},{"expression":{"arguments":[{"id":3145,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3127,"src":"4913:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3146,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3129,"src":"4919:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3147,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3131,"src":"4923:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3144,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"4903:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4903:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3149,"nodeType":"ExpressionStatement","src":"4903:28:16"}]},"documentation":{"id":3125,"nodeType":"StructuredDocumentation","src":"4556:51:16","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":3151,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4621:12:16","nodeType":"FunctionDefinition","overrides":{"id":3133,"nodeType":"OverrideSpecifier","overrides":[],"src":"4722:8:16"},"parameters":{"id":3132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3127,"mutability":"mutable","name":"from","nameLocation":"4651:4:16","nodeType":"VariableDeclaration","scope":3151,"src":"4643:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3126,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3129,"mutability":"mutable","name":"to","nameLocation":"4673:2:16","nodeType":"VariableDeclaration","scope":3151,"src":"4665:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3128,"name":"address","nodeType":"ElementaryTypeName","src":"4665:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3131,"mutability":"mutable","name":"tokenId","nameLocation":"4693:7:16","nodeType":"VariableDeclaration","scope":3151,"src":"4685:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3130,"name":"uint256","nodeType":"ElementaryTypeName","src":"4685:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4633:73:16"},"returnParameters":{"id":3134,"nodeType":"ParameterList","parameters":[],"src":"4731:0:16"},"scope":3741,"src":"4612:326:16","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3812],"body":{"id":3169,"nodeType":"Block","src":"5127:56:16","statements":[{"expression":{"arguments":[{"id":3163,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3154,"src":"5154:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3164,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3156,"src":"5160:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3165,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3158,"src":"5164:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":3166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5173:2:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":3162,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[3170,3200],"referencedDeclaration":3200,"src":"5137:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":3167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5137:39:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3168,"nodeType":"ExpressionStatement","src":"5137:39:16"}]},"documentation":{"id":3152,"nodeType":"StructuredDocumentation","src":"4944:55:16","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":3170,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5013:16:16","nodeType":"FunctionDefinition","overrides":{"id":3160,"nodeType":"OverrideSpecifier","overrides":[],"src":"5118:8:16"},"parameters":{"id":3159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3154,"mutability":"mutable","name":"from","nameLocation":"5047:4:16","nodeType":"VariableDeclaration","scope":3170,"src":"5039:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3153,"name":"address","nodeType":"ElementaryTypeName","src":"5039:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3156,"mutability":"mutable","name":"to","nameLocation":"5069:2:16","nodeType":"VariableDeclaration","scope":3170,"src":"5061:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3155,"name":"address","nodeType":"ElementaryTypeName","src":"5061:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3158,"mutability":"mutable","name":"tokenId","nameLocation":"5089:7:16","nodeType":"VariableDeclaration","scope":3170,"src":"5081:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3157,"name":"uint256","nodeType":"ElementaryTypeName","src":"5081:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5029:73:16"},"returnParameters":{"id":3161,"nodeType":"ParameterList","parameters":[],"src":"5127:0:16"},"scope":3741,"src":"5004:179:16","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3802],"body":{"id":3199,"nodeType":"Block","src":"5399:164:16","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3185,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"5436:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5436:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3187,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"5450:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3184,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"5417:18:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":3188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5417:41:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":3189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5460:47:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""},"value":"ERC721: caller is not token owner or approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""}],"id":3183,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5409:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5409:99:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3191,"nodeType":"ExpressionStatement","src":"5409:99:16"},{"expression":{"arguments":[{"id":3193,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"5532:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3194,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3175,"src":"5538:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3195,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3177,"src":"5542:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3196,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3179,"src":"5551:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3192,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3229,"src":"5518:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":3197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5518:38:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3198,"nodeType":"ExpressionStatement","src":"5518:38:16"}]},"documentation":{"id":3171,"nodeType":"StructuredDocumentation","src":"5189:55:16","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":3200,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5258:16:16","nodeType":"FunctionDefinition","overrides":{"id":3181,"nodeType":"OverrideSpecifier","overrides":[],"src":"5390:8:16"},"parameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3173,"mutability":"mutable","name":"from","nameLocation":"5292:4:16","nodeType":"VariableDeclaration","scope":3200,"src":"5284:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3172,"name":"address","nodeType":"ElementaryTypeName","src":"5284:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3175,"mutability":"mutable","name":"to","nameLocation":"5314:2:16","nodeType":"VariableDeclaration","scope":3200,"src":"5306:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3174,"name":"address","nodeType":"ElementaryTypeName","src":"5306:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3177,"mutability":"mutable","name":"tokenId","nameLocation":"5334:7:16","nodeType":"VariableDeclaration","scope":3200,"src":"5326:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3176,"name":"uint256","nodeType":"ElementaryTypeName","src":"5326:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3179,"mutability":"mutable","name":"data","nameLocation":"5364:4:16","nodeType":"VariableDeclaration","scope":3200,"src":"5351:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3178,"name":"bytes","nodeType":"ElementaryTypeName","src":"5351:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5274:100:16"},"returnParameters":{"id":3182,"nodeType":"ParameterList","parameters":[],"src":"5399:0:16"},"scope":3741,"src":"5249:314:16","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":3228,"nodeType":"Block","src":"6564:165:16","statements":[{"expression":{"arguments":[{"id":3213,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"6584:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3214,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"6590:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3215,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6594:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3212,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6574:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6574:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3217,"nodeType":"ExpressionStatement","src":"6574:28:16"},{"expression":{"arguments":[{"arguments":[{"id":3220,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"6643:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3221,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"6649:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3222,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"6653:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3223,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3209,"src":"6662:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3219,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3699,"src":"6620:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":3224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6620:47:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":3225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6669:52:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":3218,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6612:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6612:110:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3227,"nodeType":"ExpressionStatement","src":"6612:110:16"}]},"documentation":{"id":3201,"nodeType":"StructuredDocumentation","src":"5569:850:16","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":3229,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6433:13:16","nodeType":"FunctionDefinition","parameters":{"id":3210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3203,"mutability":"mutable","name":"from","nameLocation":"6464:4:16","nodeType":"VariableDeclaration","scope":3229,"src":"6456:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3202,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3205,"mutability":"mutable","name":"to","nameLocation":"6486:2:16","nodeType":"VariableDeclaration","scope":3229,"src":"6478:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3204,"name":"address","nodeType":"ElementaryTypeName","src":"6478:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3207,"mutability":"mutable","name":"tokenId","nameLocation":"6506:7:16","nodeType":"VariableDeclaration","scope":3229,"src":"6498:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3206,"name":"uint256","nodeType":"ElementaryTypeName","src":"6498:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3209,"mutability":"mutable","name":"data","nameLocation":"6536:4:16","nodeType":"VariableDeclaration","scope":3229,"src":"6523:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3208,"name":"bytes","nodeType":"ElementaryTypeName","src":"6523:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6446:100:16"},"returnParameters":{"id":3211,"nodeType":"ParameterList","parameters":[],"src":"6564:0:16"},"scope":3741,"src":"6424:305:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3241,"nodeType":"Block","src":"6913:40:16","statements":[{"expression":{"baseExpression":{"id":3237,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"6930:7:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3239,"indexExpression":{"id":3238,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3232,"src":"6938:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6930:16:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3236,"id":3240,"nodeType":"Return","src":"6923:23:16"}]},"documentation":{"id":3230,"nodeType":"StructuredDocumentation","src":"6735:98:16","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist"},"id":3242,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"6847:8:16","nodeType":"FunctionDefinition","parameters":{"id":3233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3232,"mutability":"mutable","name":"tokenId","nameLocation":"6864:7:16","nodeType":"VariableDeclaration","scope":3242,"src":"6856:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3231,"name":"uint256","nodeType":"ElementaryTypeName","src":"6856:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6855:17:16"},"returnParameters":{"id":3236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3242,"src":"6904:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3234,"name":"address","nodeType":"ElementaryTypeName","src":"6904:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6903:9:16"},"scope":3741,"src":"6838:115:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3259,"nodeType":"Block","src":"7327:55:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3251,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3245,"src":"7353:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3250,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3242,"src":"7344:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7344:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7373:1:16","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":3254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7365:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3253,"name":"address","nodeType":"ElementaryTypeName","src":"7365:7:16","typeDescriptions":{}}},"id":3256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7365:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7344:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3249,"id":3258,"nodeType":"Return","src":"7337:38:16"}]},"documentation":{"id":3243,"nodeType":"StructuredDocumentation","src":"6959:292:16","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":3260,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7265:7:16","nodeType":"FunctionDefinition","parameters":{"id":3246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3245,"mutability":"mutable","name":"tokenId","nameLocation":"7281:7:16","nodeType":"VariableDeclaration","scope":3260,"src":"7273:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3244,"name":"uint256","nodeType":"ElementaryTypeName","src":"7273:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7272:17:16"},"returnParameters":{"id":3249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3260,"src":"7321:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3247,"name":"bool","nodeType":"ElementaryTypeName","src":"7321:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7320:6:16"},"scope":3741,"src":"7256:126:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3293,"nodeType":"Block","src":"7639:162:16","statements":[{"assignments":[3271],"declarations":[{"constant":false,"id":3271,"mutability":"mutable","name":"owner","nameLocation":"7657:5:16","nodeType":"VariableDeclaration","scope":3293,"src":"7649:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3270,"name":"address","nodeType":"ElementaryTypeName","src":"7649:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3276,"initialValue":{"arguments":[{"id":3274,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3265,"src":"7680:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3272,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"7665:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":2960,"src":"7665:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7665:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7649:39:16"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3277,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3263,"src":"7706:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3278,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7717:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7706:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3281,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"7743:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3282,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3263,"src":"7750:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3280,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"7726:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":3283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7726:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7706:52:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3286,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3265,"src":"7774:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3285,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"7762:11:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7762:20:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3288,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3263,"src":"7786:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7762:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7706:87:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3291,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7705:89:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3269,"id":3292,"nodeType":"Return","src":"7698:96:16"}]},"documentation":{"id":3261,"nodeType":"StructuredDocumentation","src":"7388:147:16","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":3294,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7549:18:16","nodeType":"FunctionDefinition","parameters":{"id":3266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3263,"mutability":"mutable","name":"spender","nameLocation":"7576:7:16","nodeType":"VariableDeclaration","scope":3294,"src":"7568:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3262,"name":"address","nodeType":"ElementaryTypeName","src":"7568:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3265,"mutability":"mutable","name":"tokenId","nameLocation":"7593:7:16","nodeType":"VariableDeclaration","scope":3294,"src":"7585:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3264,"name":"uint256","nodeType":"ElementaryTypeName","src":"7585:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7567:34:16"},"returnParameters":{"id":3269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3268,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3294,"src":"7633:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3267,"name":"bool","nodeType":"ElementaryTypeName","src":"7633:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7632:6:16"},"scope":3741,"src":"7540:261:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3308,"nodeType":"Block","src":"8196:43:16","statements":[{"expression":{"arguments":[{"id":3303,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3297,"src":"8216:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3304,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3299,"src":"8220:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":3305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8229:2:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":3302,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[3309,3338],"referencedDeclaration":3338,"src":"8206:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":3306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8206:26:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3307,"nodeType":"ExpressionStatement","src":"8206:26:16"}]},"documentation":{"id":3295,"nodeType":"StructuredDocumentation","src":"7807:319:16","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":3309,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8140:9:16","nodeType":"FunctionDefinition","parameters":{"id":3300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3297,"mutability":"mutable","name":"to","nameLocation":"8158:2:16","nodeType":"VariableDeclaration","scope":3309,"src":"8150:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3296,"name":"address","nodeType":"ElementaryTypeName","src":"8150:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3299,"mutability":"mutable","name":"tokenId","nameLocation":"8170:7:16","nodeType":"VariableDeclaration","scope":3309,"src":"8162:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3298,"name":"uint256","nodeType":"ElementaryTypeName","src":"8162:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8149:29:16"},"returnParameters":{"id":3301,"nodeType":"ParameterList","parameters":[],"src":"8196:0:16"},"scope":3741,"src":"8131:108:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3337,"nodeType":"Block","src":"8574:195:16","statements":[{"expression":{"arguments":[{"id":3320,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"8590:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3321,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3314,"src":"8594:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3319,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3415,"src":"8584:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8584:18:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3323,"nodeType":"ExpressionStatement","src":"8584:18:16"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":3328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8664:1:16","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":3327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8656:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3326,"name":"address","nodeType":"ElementaryTypeName","src":"8656:7:16","typeDescriptions":{}}},"id":3329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8656:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3330,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"8668:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3331,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3314,"src":"8672:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3332,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"8681:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3325,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3699,"src":"8633:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":3333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8633:53:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8700:52:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":3324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8612:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8612:150:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3336,"nodeType":"ExpressionStatement","src":"8612:150:16"}]},"documentation":{"id":3310,"nodeType":"StructuredDocumentation","src":"8245:210:16","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":3338,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8469:9:16","nodeType":"FunctionDefinition","parameters":{"id":3317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3312,"mutability":"mutable","name":"to","nameLocation":"8496:2:16","nodeType":"VariableDeclaration","scope":3338,"src":"8488:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3311,"name":"address","nodeType":"ElementaryTypeName","src":"8488:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3314,"mutability":"mutable","name":"tokenId","nameLocation":"8516:7:16","nodeType":"VariableDeclaration","scope":3338,"src":"8508:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3313,"name":"uint256","nodeType":"ElementaryTypeName","src":"8508:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3316,"mutability":"mutable","name":"data","nameLocation":"8546:4:16","nodeType":"VariableDeclaration","scope":3338,"src":"8533:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3315,"name":"bytes","nodeType":"ElementaryTypeName","src":"8533:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8478:78:16"},"returnParameters":{"id":3318,"nodeType":"ParameterList","parameters":[],"src":"8574:0:16"},"scope":3741,"src":"8460:309:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3414,"nodeType":"Block","src":"9152:859:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3347,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"9170:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9184:1:16","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":3349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3348,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:16","typeDescriptions":{}}},"id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9176:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9170:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":3353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9188:34:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":3346,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9162:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9162:61:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3355,"nodeType":"ExpressionStatement","src":"9162:61:16"},{"expression":{"arguments":[{"id":3360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9241:17:16","subExpression":{"arguments":[{"id":3358,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"9250:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3357,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"9242:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":3359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9242:16:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":3361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9260:30:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":3356,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9233:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9233:58:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3363,"nodeType":"ExpressionStatement","src":"9233:58:16"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9331:1:16","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":3366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9323:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3365,"name":"address","nodeType":"ElementaryTypeName","src":"9323:7:16","typeDescriptions":{}}},"id":3368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9323:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3369,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"9335:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3370,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"9339:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":3371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9348:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3364,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3712,"src":"9302:20:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9302:48:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3373,"nodeType":"ExpressionStatement","src":"9302:48:16"},{"expression":{"arguments":[{"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9445:17:16","subExpression":{"arguments":[{"id":3376,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"9454:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3375,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"9446:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":3377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9446:16:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":3379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9464:30:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":3374,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9437:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9437:58:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3381,"nodeType":"ExpressionStatement","src":"9437:58:16"},{"id":3388,"nodeType":"UncheckedBlock","src":"9506:360:16","statements":[{"expression":{"id":3386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3382,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"9837:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3384,"indexExpression":{"id":3383,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"9847:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9837:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9854:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9837:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3387,"nodeType":"ExpressionStatement","src":"9837:18:16"}]},{"expression":{"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3389,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"9876:7:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3391,"indexExpression":{"id":3390,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"9884:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9876:16:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3392,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"9895:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9876:21:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3394,"nodeType":"ExpressionStatement","src":"9876:21:16"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":3398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9930:1:16","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":3397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9922:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3396,"name":"address","nodeType":"ElementaryTypeName","src":"9922:7:16","typeDescriptions":{}}},"id":3399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9922:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3400,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"9934:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3401,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"9938:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3395,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"9913:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9913:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3403,"nodeType":"EmitStatement","src":"9908:38:16"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":3407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9985:1:16","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":3406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9977:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3405,"name":"address","nodeType":"ElementaryTypeName","src":"9977:7:16","typeDescriptions":{}}},"id":3408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9977:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3409,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"9989:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3410,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"9993:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":3411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10002:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3404,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"9957:19:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":3412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9957:47:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3413,"nodeType":"ExpressionStatement","src":"9957:47:16"}]},"documentation":{"id":3339,"nodeType":"StructuredDocumentation","src":"8775:311:16","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":3415,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9100:5:16","nodeType":"FunctionDefinition","parameters":{"id":3344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3341,"mutability":"mutable","name":"to","nameLocation":"9114:2:16","nodeType":"VariableDeclaration","scope":3415,"src":"9106:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3340,"name":"address","nodeType":"ElementaryTypeName","src":"9106:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3343,"mutability":"mutable","name":"tokenId","nameLocation":"9126:7:16","nodeType":"VariableDeclaration","scope":3415,"src":"9118:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3342,"name":"uint256","nodeType":"ElementaryTypeName","src":"9118:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9105:29:16"},"returnParameters":{"id":3345,"nodeType":"ParameterList","parameters":[],"src":"9152:0:16"},"scope":3741,"src":"9091:920:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3481,"nodeType":"Block","src":"10386:713:16","statements":[{"assignments":[3422],"declarations":[{"constant":false,"id":3422,"mutability":"mutable","name":"owner","nameLocation":"10404:5:16","nodeType":"VariableDeclaration","scope":3481,"src":"10396:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3421,"name":"address","nodeType":"ElementaryTypeName","src":"10396:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3427,"initialValue":{"arguments":[{"id":3425,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"10427:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3423,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"10412:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":2960,"src":"10412:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10412:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10396:39:16"},{"expression":{"arguments":[{"id":3429,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3422,"src":"10467:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10482:1:16","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":3431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3430,"name":"address","nodeType":"ElementaryTypeName","src":"10474:7:16","typeDescriptions":{}}},"id":3433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10474:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3434,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"10486:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":3435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10495:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3428,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3712,"src":"10446:20:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10446:51:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3437,"nodeType":"ExpressionStatement","src":"10446:51:16"},{"expression":{"id":3443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3438,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3422,"src":"10599:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3441,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"10622:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3439,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"10607:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":2960,"src":"10607:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10607:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10599:31:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3444,"nodeType":"ExpressionStatement","src":"10599:31:16"},{"expression":{"id":3448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10668:31:16","subExpression":{"baseExpression":{"id":3445,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2854,"src":"10675:15:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3447,"indexExpression":{"id":3446,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"10691:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10675:24:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3449,"nodeType":"ExpressionStatement","src":"10668:31:16"},{"id":3456,"nodeType":"UncheckedBlock","src":"10710:237:16","statements":[{"expression":{"id":3454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3450,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"10915:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3452,"indexExpression":{"id":3451,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3422,"src":"10925:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10915:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":3453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10935:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10915:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3455,"nodeType":"ExpressionStatement","src":"10915:21:16"}]},{"expression":{"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10956:23:16","subExpression":{"baseExpression":{"id":3457,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"10963:7:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3459,"indexExpression":{"id":3458,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"10971:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10963:16:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3461,"nodeType":"ExpressionStatement","src":"10956:23:16"},{"eventCall":{"arguments":[{"id":3463,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3422,"src":"11004:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11019:1:16","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":3465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11011:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3464,"name":"address","nodeType":"ElementaryTypeName","src":"11011:7:16","typeDescriptions":{}}},"id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11011:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3468,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"11023:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3462,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"10995:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10995:36:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3470,"nodeType":"EmitStatement","src":"10990:41:16"},{"expression":{"arguments":[{"id":3472,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3422,"src":"11062:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11077:1:16","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":3474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11069:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3473,"name":"address","nodeType":"ElementaryTypeName","src":"11069:7:16","typeDescriptions":{}}},"id":3476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11069:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3477,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"11081:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":3478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11090:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3471,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"11042:19:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":3479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11042:50:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3480,"nodeType":"ExpressionStatement","src":"11042:50:16"}]},"documentation":{"id":3416,"nodeType":"StructuredDocumentation","src":"10017:315:16","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":3482,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10346:5:16","nodeType":"FunctionDefinition","parameters":{"id":3419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3418,"mutability":"mutable","name":"tokenId","nameLocation":"10360:7:16","nodeType":"VariableDeclaration","scope":3482,"src":"10352:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3417,"name":"uint256","nodeType":"ElementaryTypeName","src":"10352:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10351:17:16"},"returnParameters":{"id":3420,"nodeType":"ParameterList","parameters":[],"src":"10386:0:16"},"scope":3741,"src":"10337:762:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3566,"nodeType":"Block","src":"11532:1124:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3495,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"11565:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3493,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"11550:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":2960,"src":"11550:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11550:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3497,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"11577:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11550:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11583:39:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":3492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11542:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11542:81:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3501,"nodeType":"ExpressionStatement","src":"11542:81:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3503,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3487,"src":"11641:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11655:1:16","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":3505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11647:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3504,"name":"address","nodeType":"ElementaryTypeName","src":"11647:7:16","typeDescriptions":{}}},"id":3507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11647:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11641:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":3509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11659:38:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":3502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11633:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11633:65:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3511,"nodeType":"ExpressionStatement","src":"11633:65:16"},{"expression":{"arguments":[{"id":3513,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"11730:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3514,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3487,"src":"11736:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3515,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"11740:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":3516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11749:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3512,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3712,"src":"11709:20:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11709:42:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3518,"nodeType":"ExpressionStatement","src":"11709:42:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3522,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"11866:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3520,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"11851:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":2960,"src":"11851:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11851:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3524,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"11878:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11851:31:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":3526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11884:39:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":3519,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11843:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11843:81:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3528,"nodeType":"ExpressionStatement","src":"11843:81:16"},{"expression":{"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11986:31:16","subExpression":{"baseExpression":{"id":3529,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2854,"src":"11993:15:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3531,"indexExpression":{"id":3530,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"12009:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11993:24:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3533,"nodeType":"ExpressionStatement","src":"11986:31:16"},{"id":3546,"nodeType":"UncheckedBlock","src":"12028:496:16","statements":[{"expression":{"id":3538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3534,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"12461:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3536,"indexExpression":{"id":3535,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"12471:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12461:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":3537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12480:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12461:20:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3539,"nodeType":"ExpressionStatement","src":"12461:20:16"},{"expression":{"id":3544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3540,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"12495:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3542,"indexExpression":{"id":3541,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3487,"src":"12505:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12495:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12512:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12495:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3545,"nodeType":"ExpressionStatement","src":"12495:18:16"}]},{"expression":{"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3547,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12533:7:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3549,"indexExpression":{"id":3548,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"12541:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12533:16:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3550,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3487,"src":"12552:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12533:21:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3552,"nodeType":"ExpressionStatement","src":"12533:21:16"},{"eventCall":{"arguments":[{"id":3554,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"12579:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3555,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3487,"src":"12585:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3556,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"12589:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3553,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"12570:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12570:27:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3558,"nodeType":"EmitStatement","src":"12565:32:16"},{"expression":{"arguments":[{"id":3560,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3485,"src":"12628:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3561,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3487,"src":"12634:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3562,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"12638:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":3563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12647:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3559,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"12608:19:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":3564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12608:41:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3565,"nodeType":"ExpressionStatement","src":"12608:41:16"}]},"documentation":{"id":3483,"nodeType":"StructuredDocumentation","src":"11105:313:16","text":" @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":3567,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"11432:9:16","nodeType":"FunctionDefinition","parameters":{"id":3490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3485,"mutability":"mutable","name":"from","nameLocation":"11459:4:16","nodeType":"VariableDeclaration","scope":3567,"src":"11451:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3484,"name":"address","nodeType":"ElementaryTypeName","src":"11451:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3487,"mutability":"mutable","name":"to","nameLocation":"11481:2:16","nodeType":"VariableDeclaration","scope":3567,"src":"11473:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3486,"name":"address","nodeType":"ElementaryTypeName","src":"11473:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3489,"mutability":"mutable","name":"tokenId","nameLocation":"11501:7:16","nodeType":"VariableDeclaration","scope":3567,"src":"11493:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3488,"name":"uint256","nodeType":"ElementaryTypeName","src":"11493:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11441:73:16"},"returnParameters":{"id":3491,"nodeType":"ParameterList","parameters":[],"src":"11532:0:16"},"scope":3741,"src":"11423:1233:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3590,"nodeType":"Block","src":"12832:107:16","statements":[{"expression":{"id":3579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3575,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2854,"src":"12842:15:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":3577,"indexExpression":{"id":3576,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"12858:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12842:24:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3578,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"12869:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12842:29:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3580,"nodeType":"ExpressionStatement","src":"12842:29:16"},{"eventCall":{"arguments":[{"arguments":[{"id":3584,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"12910:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3582,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"12895:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":2960,"src":"12895:14:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12895:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3586,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"12920:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3587,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"12924:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3581,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"12886:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12886:46:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3589,"nodeType":"EmitStatement","src":"12881:51:16"}]},"documentation":{"id":3568,"nodeType":"StructuredDocumentation","src":"12662:101:16","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":3591,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"12777:8:16","nodeType":"FunctionDefinition","parameters":{"id":3573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3570,"mutability":"mutable","name":"to","nameLocation":"12794:2:16","nodeType":"VariableDeclaration","scope":3591,"src":"12786:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3569,"name":"address","nodeType":"ElementaryTypeName","src":"12786:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3572,"mutability":"mutable","name":"tokenId","nameLocation":"12806:7:16","nodeType":"VariableDeclaration","scope":3591,"src":"12798:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3571,"name":"uint256","nodeType":"ElementaryTypeName","src":"12798:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12785:29:16"},"returnParameters":{"id":3574,"nodeType":"ParameterList","parameters":[],"src":"12832:0:16"},"scope":3741,"src":"12768:171:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3622,"nodeType":"Block","src":"13198:184:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3602,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3594,"src":"13216:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3603,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3596,"src":"13225:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13216:17:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":3605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13235:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":3601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13208:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13208:55:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3607,"nodeType":"ExpressionStatement","src":"13208:55:16"},{"expression":{"id":3614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":3608,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"13273:18:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":3611,"indexExpression":{"id":3609,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3594,"src":"13292:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13273:25:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3612,"indexExpression":{"id":3610,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3596,"src":"13299:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13273:35:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3613,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"13311:8:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13273:46:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3615,"nodeType":"ExpressionStatement","src":"13273:46:16"},{"eventCall":{"arguments":[{"id":3617,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3594,"src":"13349:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3618,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3596,"src":"13356:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3619,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3598,"src":"13366:8:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":3616,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3774,"src":"13334:14:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":3620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13334:41:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3621,"nodeType":"EmitStatement","src":"13329:46:16"}]},"documentation":{"id":3592,"nodeType":"StructuredDocumentation","src":"12945:125:16","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":3623,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"13084:18:16","nodeType":"FunctionDefinition","parameters":{"id":3599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3594,"mutability":"mutable","name":"owner","nameLocation":"13120:5:16","nodeType":"VariableDeclaration","scope":3623,"src":"13112:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3593,"name":"address","nodeType":"ElementaryTypeName","src":"13112:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3596,"mutability":"mutable","name":"operator","nameLocation":"13143:8:16","nodeType":"VariableDeclaration","scope":3623,"src":"13135:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3595,"name":"address","nodeType":"ElementaryTypeName","src":"13135:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3598,"mutability":"mutable","name":"approved","nameLocation":"13166:8:16","nodeType":"VariableDeclaration","scope":3623,"src":"13161:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3597,"name":"bool","nodeType":"ElementaryTypeName","src":"13161:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13102:78:16"},"returnParameters":{"id":3600,"nodeType":"ParameterList","parameters":[],"src":"13198:0:16"},"scope":3741,"src":"13075:307:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3636,"nodeType":"Block","src":"13529:70:16","statements":[{"expression":{"arguments":[{"arguments":[{"id":3631,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"13555:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3630,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"13547:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":3632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13547:16:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":3633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13565:26:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":3629,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13539:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13539:53:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3635,"nodeType":"ExpressionStatement","src":"13539:53:16"}]},"documentation":{"id":3624,"nodeType":"StructuredDocumentation","src":"13388:73:16","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":3637,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"13475:14:16","nodeType":"FunctionDefinition","parameters":{"id":3627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3626,"mutability":"mutable","name":"tokenId","nameLocation":"13498:7:16","nodeType":"VariableDeclaration","scope":3637,"src":"13490:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3625,"name":"uint256","nodeType":"ElementaryTypeName","src":"13490:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13489:17:16"},"returnParameters":{"id":3628,"nodeType":"ParameterList","parameters":[],"src":"13529:0:16"},"scope":3741,"src":"13466:133:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3698,"nodeType":"Block","src":"14306:676:16","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3651,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3642,"src":"14320:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":4305,"src":"14320:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":3653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14320:15:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3696,"nodeType":"Block","src":"14940:36:16","statements":[{"expression":{"hexValue":"74727565","id":3694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14961:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3650,"id":3695,"nodeType":"Return","src":"14954:11:16"}]},"id":3697,"nodeType":"IfStatement","src":"14316:660:16","trueBody":{"id":3693,"nodeType":"Block","src":"14337:597:16","statements":[{"clauses":[{"block":{"id":3673,"nodeType":"Block","src":"14451:91:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3667,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3665,"src":"14476:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":3668,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3875,"src":"14486:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$3875_$","typeString":"type(contract IERC721Receiver)"}},"id":3669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":3874,"src":"14486:32:16","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":3670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"14486:41:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"14476:51:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3650,"id":3672,"nodeType":"Return","src":"14469:58:16"}]},"errorName":"","id":3674,"nodeType":"TryCatchClause","parameters":{"id":3666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3665,"mutability":"mutable","name":"retval","nameLocation":"14443:6:16","nodeType":"VariableDeclaration","scope":3674,"src":"14436:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3664,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14436:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14435:15:16"},"src":"14427:115:16"},{"block":{"id":3690,"nodeType":"Block","src":"14571:353:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3678,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3676,"src":"14593:6:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14593:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14610:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14593:18:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3688,"nodeType":"Block","src":"14720:190:16","statements":[{"AST":{"nodeType":"YulBlock","src":"14806:86:16","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14843:2:16","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"14847:6:16"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14839:3:16"},"nodeType":"YulFunctionCall","src":"14839:15:16"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"14862:6:16"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14856:5:16"},"nodeType":"YulFunctionCall","src":"14856:13:16"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14832:6:16"},"nodeType":"YulFunctionCall","src":"14832:38:16"},"nodeType":"YulExpressionStatement","src":"14832:38:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":3676,"isOffset":false,"isSlot":false,"src":"14847:6:16","valueSize":1},{"declaration":3676,"isOffset":false,"isSlot":false,"src":"14862:6:16","valueSize":1}],"id":3687,"nodeType":"InlineAssembly","src":"14797:95:16"}]},"id":3689,"nodeType":"IfStatement","src":"14589:321:16","trueBody":{"id":3686,"nodeType":"Block","src":"14613:101:16","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":3683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14642:52:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":3682,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"14635:6:16","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14635:60:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3685,"nodeType":"ExpressionStatement","src":"14635:60:16"}]}}]},"errorName":"","id":3691,"nodeType":"TryCatchClause","parameters":{"id":3677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3676,"mutability":"mutable","name":"reason","nameLocation":"14563:6:16","nodeType":"VariableDeclaration","scope":3691,"src":"14550:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3675,"name":"bytes","nodeType":"ElementaryTypeName","src":"14550:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14549:21:16"},"src":"14543:381:16"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3658,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"14392:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14392:12:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3660,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3640,"src":"14406:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3661,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3644,"src":"14412:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3662,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3646,"src":"14421:4:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":3655,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3642,"src":"14371:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3654,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3875,"src":"14355:15:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$3875_$","typeString":"type(contract IERC721Receiver)"}},"id":3656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14355:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$3875","typeString":"contract IERC721Receiver"}},"id":3657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":3874,"src":"14355:36:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14355:71:16","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":3692,"nodeType":"TryStatement","src":"14351:573:16"}]}}]},"documentation":{"id":3638,"nodeType":"StructuredDocumentation","src":"13605:541:16","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":3699,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"14160:22:16","nodeType":"FunctionDefinition","parameters":{"id":3647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3640,"mutability":"mutable","name":"from","nameLocation":"14200:4:16","nodeType":"VariableDeclaration","scope":3699,"src":"14192:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3639,"name":"address","nodeType":"ElementaryTypeName","src":"14192:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3642,"mutability":"mutable","name":"to","nameLocation":"14222:2:16","nodeType":"VariableDeclaration","scope":3699,"src":"14214:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3641,"name":"address","nodeType":"ElementaryTypeName","src":"14214:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3644,"mutability":"mutable","name":"tokenId","nameLocation":"14242:7:16","nodeType":"VariableDeclaration","scope":3699,"src":"14234:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3643,"name":"uint256","nodeType":"ElementaryTypeName","src":"14234:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3646,"mutability":"mutable","name":"data","nameLocation":"14272:4:16","nodeType":"VariableDeclaration","scope":3699,"src":"14259:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3645,"name":"bytes","nodeType":"ElementaryTypeName","src":"14259:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14182:100:16"},"returnParameters":{"id":3650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3699,"src":"14300:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3648,"name":"bool","nodeType":"ElementaryTypeName","src":"14300:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14299:6:16"},"scope":3741,"src":"14151:831:16","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3711,"nodeType":"Block","src":"15850:2:16","statements":[]},"documentation":{"id":3700,"nodeType":"StructuredDocumentation","src":"14988:705:16","text":" @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n - When `from` is zero, the tokens will be minted for `to`.\n - When `to` is zero, ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3712,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"15707:20:16","nodeType":"FunctionDefinition","parameters":{"id":3709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3702,"mutability":"mutable","name":"from","nameLocation":"15745:4:16","nodeType":"VariableDeclaration","scope":3712,"src":"15737:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3701,"name":"address","nodeType":"ElementaryTypeName","src":"15737:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3704,"mutability":"mutable","name":"to","nameLocation":"15767:2:16","nodeType":"VariableDeclaration","scope":3712,"src":"15759:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3703,"name":"address","nodeType":"ElementaryTypeName","src":"15759:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3706,"mutability":"mutable","name":"firstTokenId","nameLocation":"15787:12:16","nodeType":"VariableDeclaration","scope":3712,"src":"15779:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3705,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3708,"mutability":"mutable","name":"batchSize","nameLocation":"15817:9:16","nodeType":"VariableDeclaration","scope":3712,"src":"15809:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3707,"name":"uint256","nodeType":"ElementaryTypeName","src":"15809:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15727:105:16"},"returnParameters":{"id":3710,"nodeType":"ParameterList","parameters":[],"src":"15850:0:16"},"scope":3741,"src":"15698:154:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3724,"nodeType":"Block","src":"16709:2:16","statements":[]},"documentation":{"id":3713,"nodeType":"StructuredDocumentation","src":"15858:695:16","text":" @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n - When `from` is zero, the tokens were minted for `to`.\n - When `to` is zero, ``from``'s tokens were burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":3725,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"16567:19:16","nodeType":"FunctionDefinition","parameters":{"id":3722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3715,"mutability":"mutable","name":"from","nameLocation":"16604:4:16","nodeType":"VariableDeclaration","scope":3725,"src":"16596:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3714,"name":"address","nodeType":"ElementaryTypeName","src":"16596:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3717,"mutability":"mutable","name":"to","nameLocation":"16626:2:16","nodeType":"VariableDeclaration","scope":3725,"src":"16618:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3716,"name":"address","nodeType":"ElementaryTypeName","src":"16618:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3719,"mutability":"mutable","name":"firstTokenId","nameLocation":"16646:12:16","nodeType":"VariableDeclaration","scope":3725,"src":"16638:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3718,"name":"uint256","nodeType":"ElementaryTypeName","src":"16638:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3721,"mutability":"mutable","name":"batchSize","nameLocation":"16676:9:16","nodeType":"VariableDeclaration","scope":3725,"src":"16668:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3720,"name":"uint256","nodeType":"ElementaryTypeName","src":"16668:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16586:105:16"},"returnParameters":{"id":3723,"nodeType":"ParameterList","parameters":[],"src":"16709:0:16"},"scope":3741,"src":"16558:153:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3739,"nodeType":"Block","src":"17260:45:16","statements":[{"expression":{"id":3737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3733,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2850,"src":"17270:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3735,"indexExpression":{"id":3734,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"17280:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17270:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3736,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3730,"src":"17292:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17270:28:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3738,"nodeType":"ExpressionStatement","src":"17270:28:16"}]},"documentation":{"id":3726,"nodeType":"StructuredDocumentation","src":"16717:409:16","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n that `ownerOf(tokenId)` is `a`."},"id":3740,"implemented":true,"kind":"function","modifiers":[],"name":"__unsafe_increaseBalance","nameLocation":"17193:24:16","nodeType":"FunctionDefinition","parameters":{"id":3731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3728,"mutability":"mutable","name":"account","nameLocation":"17226:7:16","nodeType":"VariableDeclaration","scope":3740,"src":"17218:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3727,"name":"address","nodeType":"ElementaryTypeName","src":"17218:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3730,"mutability":"mutable","name":"amount","nameLocation":"17243:6:16","nodeType":"VariableDeclaration","scope":3740,"src":"17235:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3729,"name":"uint256","nodeType":"ElementaryTypeName","src":"17235:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17217:33:16"},"returnParameters":{"id":3732,"nodeType":"ParameterList","parameters":[],"src":"17260:0:16"},"scope":3741,"src":"17184:121:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":3742,"src":"628:16679:16","usedErrors":[]}],"src":"107:17201:16"},"id":16},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[5988],"IERC721":[3857]},"id":3858,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3743,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:17"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":3744,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3858,"sourceUnit":5989,"src":"133:47:17","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3746,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":5988,"src":"271:7:17"},"id":3747,"nodeType":"InheritanceSpecifier","src":"271:7:17"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":3745,"nodeType":"StructuredDocumentation","src":"182:67:17","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":3857,"linearizedBaseContracts":[3857,5988],"name":"IERC721","nameLocation":"260:7:17","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":3748,"nodeType":"StructuredDocumentation","src":"285:88:17","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":3756,"name":"Transfer","nameLocation":"384:8:17","nodeType":"EventDefinition","parameters":{"id":3755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3750,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:17","nodeType":"VariableDeclaration","scope":3756,"src":"393:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3749,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3752,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:17","nodeType":"VariableDeclaration","scope":3756,"src":"415:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3751,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3754,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:17","nodeType":"VariableDeclaration","scope":3756,"src":"435:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3753,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:17"},"src":"378:82:17"},{"anonymous":false,"documentation":{"id":3757,"nodeType":"StructuredDocumentation","src":"466:94:17","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":3765,"name":"Approval","nameLocation":"571:8:17","nodeType":"EventDefinition","parameters":{"id":3764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3759,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:17","nodeType":"VariableDeclaration","scope":3765,"src":"580:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3758,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3761,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:17","nodeType":"VariableDeclaration","scope":3765,"src":"603:24:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3760,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3763,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:17","nodeType":"VariableDeclaration","scope":3765,"src":"629:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3762,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:17"},"src":"565:89:17"},{"anonymous":false,"documentation":{"id":3766,"nodeType":"StructuredDocumentation","src":"660:117:17","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":3774,"name":"ApprovalForAll","nameLocation":"788:14:17","nodeType":"EventDefinition","parameters":{"id":3773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3768,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:17","nodeType":"VariableDeclaration","scope":3774,"src":"803:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3767,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3770,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:17","nodeType":"VariableDeclaration","scope":3774,"src":"826:24:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3769,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3772,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:17","nodeType":"VariableDeclaration","scope":3774,"src":"852:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3771,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:17"},"src":"782:85:17"},{"documentation":{"id":3775,"nodeType":"StructuredDocumentation","src":"873:76:17","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":3782,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:17","nodeType":"FunctionDefinition","parameters":{"id":3778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3777,"mutability":"mutable","name":"owner","nameLocation":"981:5:17","nodeType":"VariableDeclaration","scope":3782,"src":"973:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3776,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:17"},"returnParameters":{"id":3781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3780,"mutability":"mutable","name":"balance","nameLocation":"1019:7:17","nodeType":"VariableDeclaration","scope":3782,"src":"1011:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3779,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:17"},"scope":3857,"src":"954:74:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3783,"nodeType":"StructuredDocumentation","src":"1034:131:17","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":3790,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:17","nodeType":"FunctionDefinition","parameters":{"id":3786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3785,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:17","nodeType":"VariableDeclaration","scope":3790,"src":"1187:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3784,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:17"},"returnParameters":{"id":3789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3788,"mutability":"mutable","name":"owner","nameLocation":"1235:5:17","nodeType":"VariableDeclaration","scope":3790,"src":"1227:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3787,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:17"},"scope":3857,"src":"1170:72:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3791,"nodeType":"StructuredDocumentation","src":"1248:556:17","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":3802,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:17","nodeType":"FunctionDefinition","parameters":{"id":3800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3793,"mutability":"mutable","name":"from","nameLocation":"1852:4:17","nodeType":"VariableDeclaration","scope":3802,"src":"1844:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3792,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3795,"mutability":"mutable","name":"to","nameLocation":"1874:2:17","nodeType":"VariableDeclaration","scope":3802,"src":"1866:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3794,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3797,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:17","nodeType":"VariableDeclaration","scope":3802,"src":"1886:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3796,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3799,"mutability":"mutable","name":"data","nameLocation":"1926:4:17","nodeType":"VariableDeclaration","scope":3802,"src":"1911:19:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3798,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:17"},"returnParameters":{"id":3801,"nodeType":"ParameterList","parameters":[],"src":"1945:0:17"},"scope":3857,"src":"1809:137:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3803,"nodeType":"StructuredDocumentation","src":"1952:687:17","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":3812,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2653:16:17","nodeType":"FunctionDefinition","parameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3805,"mutability":"mutable","name":"from","nameLocation":"2687:4:17","nodeType":"VariableDeclaration","scope":3812,"src":"2679:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3804,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3807,"mutability":"mutable","name":"to","nameLocation":"2709:2:17","nodeType":"VariableDeclaration","scope":3812,"src":"2701:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3806,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3809,"mutability":"mutable","name":"tokenId","nameLocation":"2729:7:17","nodeType":"VariableDeclaration","scope":3812,"src":"2721:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3808,"name":"uint256","nodeType":"ElementaryTypeName","src":"2721:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2669:73:17"},"returnParameters":{"id":3811,"nodeType":"ParameterList","parameters":[],"src":"2751:0:17"},"scope":3857,"src":"2644:108:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3813,"nodeType":"StructuredDocumentation","src":"2758:732:17","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":3822,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3504:12:17","nodeType":"FunctionDefinition","parameters":{"id":3820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3815,"mutability":"mutable","name":"from","nameLocation":"3534:4:17","nodeType":"VariableDeclaration","scope":3822,"src":"3526:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3814,"name":"address","nodeType":"ElementaryTypeName","src":"3526:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3817,"mutability":"mutable","name":"to","nameLocation":"3556:2:17","nodeType":"VariableDeclaration","scope":3822,"src":"3548:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3816,"name":"address","nodeType":"ElementaryTypeName","src":"3548:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3819,"mutability":"mutable","name":"tokenId","nameLocation":"3576:7:17","nodeType":"VariableDeclaration","scope":3822,"src":"3568:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3818,"name":"uint256","nodeType":"ElementaryTypeName","src":"3568:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3516:73:17"},"returnParameters":{"id":3821,"nodeType":"ParameterList","parameters":[],"src":"3598:0:17"},"scope":3857,"src":"3495:104:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3823,"nodeType":"StructuredDocumentation","src":"3605:452:17","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":3830,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4071:7:17","nodeType":"FunctionDefinition","parameters":{"id":3828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3825,"mutability":"mutable","name":"to","nameLocation":"4087:2:17","nodeType":"VariableDeclaration","scope":3830,"src":"4079:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3824,"name":"address","nodeType":"ElementaryTypeName","src":"4079:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3827,"mutability":"mutable","name":"tokenId","nameLocation":"4099:7:17","nodeType":"VariableDeclaration","scope":3830,"src":"4091:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3826,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4078:29:17"},"returnParameters":{"id":3829,"nodeType":"ParameterList","parameters":[],"src":"4116:0:17"},"scope":3857,"src":"4062:55:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3831,"nodeType":"StructuredDocumentation","src":"4123:309:17","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":3838,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4446:17:17","nodeType":"FunctionDefinition","parameters":{"id":3836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3833,"mutability":"mutable","name":"operator","nameLocation":"4472:8:17","nodeType":"VariableDeclaration","scope":3838,"src":"4464:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3832,"name":"address","nodeType":"ElementaryTypeName","src":"4464:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3835,"mutability":"mutable","name":"_approved","nameLocation":"4487:9:17","nodeType":"VariableDeclaration","scope":3838,"src":"4482:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3834,"name":"bool","nodeType":"ElementaryTypeName","src":"4482:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4463:34:17"},"returnParameters":{"id":3837,"nodeType":"ParameterList","parameters":[],"src":"4506:0:17"},"scope":3857,"src":"4437:70:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3839,"nodeType":"StructuredDocumentation","src":"4513:139:17","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":3846,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4666:11:17","nodeType":"FunctionDefinition","parameters":{"id":3842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3841,"mutability":"mutable","name":"tokenId","nameLocation":"4686:7:17","nodeType":"VariableDeclaration","scope":3846,"src":"4678:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3840,"name":"uint256","nodeType":"ElementaryTypeName","src":"4678:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4677:17:17"},"returnParameters":{"id":3845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3844,"mutability":"mutable","name":"operator","nameLocation":"4726:8:17","nodeType":"VariableDeclaration","scope":3846,"src":"4718:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3843,"name":"address","nodeType":"ElementaryTypeName","src":"4718:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4717:18:17"},"scope":3857,"src":"4657:79:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3847,"nodeType":"StructuredDocumentation","src":"4742:138:17","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":3856,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4894:16:17","nodeType":"FunctionDefinition","parameters":{"id":3852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3849,"mutability":"mutable","name":"owner","nameLocation":"4919:5:17","nodeType":"VariableDeclaration","scope":3856,"src":"4911:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3848,"name":"address","nodeType":"ElementaryTypeName","src":"4911:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3851,"mutability":"mutable","name":"operator","nameLocation":"4934:8:17","nodeType":"VariableDeclaration","scope":3856,"src":"4926:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3850,"name":"address","nodeType":"ElementaryTypeName","src":"4926:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4910:33:17"},"returnParameters":{"id":3855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3856,"src":"4967:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3853,"name":"bool","nodeType":"ElementaryTypeName","src":"4967:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4966:6:17"},"scope":3857,"src":"4885:88:17","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3858,"src":"250:4725:17","usedErrors":[]}],"src":"108:4868:17"},"id":17},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[3875]},"id":3876,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3859,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":3860,"nodeType":"StructuredDocumentation","src":"141:152:18","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":3875,"linearizedBaseContracts":[3875],"name":"IERC721Receiver","nameLocation":"304:15:18","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3861,"nodeType":"StructuredDocumentation","src":"326:493:18","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":3874,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:18","nodeType":"FunctionDefinition","parameters":{"id":3870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3863,"mutability":"mutable","name":"operator","nameLocation":"867:8:18","nodeType":"VariableDeclaration","scope":3874,"src":"859:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3862,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3865,"mutability":"mutable","name":"from","nameLocation":"893:4:18","nodeType":"VariableDeclaration","scope":3874,"src":"885:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3864,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3867,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:18","nodeType":"VariableDeclaration","scope":3874,"src":"907:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3866,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3869,"mutability":"mutable","name":"data","nameLocation":"947:4:18","nodeType":"VariableDeclaration","scope":3874,"src":"932:19:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3868,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:18"},"returnParameters":{"id":3873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3874,"src":"976:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3871,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:18"},"scope":3875,"src":"824:160:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3876,"src":"294:692:18","usedErrors":[]}],"src":"116:871:18"},"id":18},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","exportedSymbols":{"Address":[4617],"Context":[4686],"ERC165":[5976],"ERC721":[3741],"ERC721Enumerable":[4229],"IERC165":[5988],"IERC721":[3857],"IERC721Enumerable":[4260],"IERC721Metadata":[4287],"IERC721Receiver":[3875],"Math":[6853],"Strings":[4935]},"id":4230,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3877,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"128:23:19"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":3878,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4230,"sourceUnit":3742,"src":"153:23:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","file":"./IERC721Enumerable.sol","id":3879,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4230,"sourceUnit":4261,"src":"177:33:19","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3881,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":3741,"src":"450:6:19"},"id":3882,"nodeType":"InheritanceSpecifier","src":"450:6:19"},{"baseName":{"id":3883,"name":"IERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":4260,"src":"458:17:19"},"id":3884,"nodeType":"InheritanceSpecifier","src":"458:17:19"}],"canonicalName":"ERC721Enumerable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3880,"nodeType":"StructuredDocumentation","src":"212:199:19","text":" @dev This implements an optional extension of {ERC721} defined in the EIP that adds\n enumerability of all the token ids in the contract as well as all token ids owned by each\n account."},"fullyImplemented":false,"id":4229,"linearizedBaseContracts":[4229,4260,3741,4287,3857,5976,5988,4686],"name":"ERC721Enumerable","nameLocation":"430:16:19","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3890,"mutability":"mutable","name":"_ownedTokens","nameLocation":"591:12:19","nodeType":"VariableDeclaration","scope":4229,"src":"535:68:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":3889,"keyType":{"id":3885,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"535:47:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":3888,"keyType":{"id":3886,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"554:27:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":3887,"name":"uint256","nodeType":"ElementaryTypeName","src":"573:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":3894,"mutability":"mutable","name":"_ownedTokensIndex","nameLocation":"709:17:19","nodeType":"VariableDeclaration","scope":4229,"src":"673:53:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":3893,"keyType":{"id":3891,"name":"uint256","nodeType":"ElementaryTypeName","src":"681:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"673:27:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":3892,"name":"uint256","nodeType":"ElementaryTypeName","src":"692:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":3897,"mutability":"mutable","name":"_allTokens","nameLocation":"805:10:19","nodeType":"VariableDeclaration","scope":4229,"src":"787:28:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":3895,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3896,"nodeType":"ArrayTypeName","src":"787:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"private"},{"constant":false,"id":3901,"mutability":"mutable","name":"_allTokensIndex","nameLocation":"922:15:19","nodeType":"VariableDeclaration","scope":4229,"src":"886:51:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":3900,"keyType":{"id":3898,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"886:27:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":3899,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"baseFunctions":[2908,5987],"body":{"id":3924,"nodeType":"Block","src":"1113:114:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3912,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"1130:11:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3914,"name":"IERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"1150:17:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Enumerable_$4260_$","typeString":"type(contract IERC721Enumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Enumerable_$4260_$","typeString":"type(contract IERC721Enumerable)"}],"id":3913,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1145:4:19","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1145:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Enumerable_$4260","typeString":"type(contract IERC721Enumerable)"}},"id":3916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1145:35:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1130:50:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3920,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"1208:11:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":3918,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1184:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Enumerable_$4229_$","typeString":"type(contract super ERC721Enumerable)"}},"id":3919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2908,"src":"1184:23:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1184:36:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1130:90:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3911,"id":3923,"nodeType":"Return","src":"1123:97:19"}]},"documentation":{"id":3902,"nodeType":"StructuredDocumentation","src":"944:56:19","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":3925,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1014:17:19","nodeType":"FunctionDefinition","overrides":{"id":3908,"nodeType":"OverrideSpecifier","overrides":[{"id":3906,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":5988,"src":"1081:7:19"},{"id":3907,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":3741,"src":"1090:6:19"}],"src":"1072:25:19"},"parameters":{"id":3905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3904,"mutability":"mutable","name":"interfaceId","nameLocation":"1039:11:19","nodeType":"VariableDeclaration","scope":3925,"src":"1032:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3903,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1032:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1031:20:19"},"returnParameters":{"id":3911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3925,"src":"1107:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3909,"name":"bool","nodeType":"ElementaryTypeName","src":"1107:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1106:6:19"},"scope":4229,"src":"1005:222:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4251],"body":{"id":3952,"nodeType":"Block","src":"1412:147:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3937,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3930,"src":"1430:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"id":3940,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"1455:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3938,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"1438:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":3939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2932,"src":"1438:16:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1438:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1430:31:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473","id":3943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1463:45:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c","typeString":"literal_string \"ERC721Enumerable: owner index out of bounds\""},"value":"ERC721Enumerable: owner index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c","typeString":"literal_string \"ERC721Enumerable: owner index out of bounds\""}],"id":3936,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1422:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:87:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3945,"nodeType":"ExpressionStatement","src":"1422:87:19"},{"expression":{"baseExpression":{"baseExpression":{"id":3946,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"1526:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":3948,"indexExpression":{"id":3947,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"1539:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1526:19:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3950,"indexExpression":{"id":3949,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3930,"src":"1546:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1526:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3935,"id":3951,"nodeType":"Return","src":"1519:33:19"}]},"documentation":{"id":3926,"nodeType":"StructuredDocumentation","src":"1233:68:19","text":" @dev See {IERC721Enumerable-tokenOfOwnerByIndex}."},"functionSelector":"2f745c59","id":3953,"implemented":true,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"1315:19:19","nodeType":"FunctionDefinition","overrides":{"id":3932,"nodeType":"OverrideSpecifier","overrides":[],"src":"1385:8:19"},"parameters":{"id":3931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3928,"mutability":"mutable","name":"owner","nameLocation":"1343:5:19","nodeType":"VariableDeclaration","scope":3953,"src":"1335:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3927,"name":"address","nodeType":"ElementaryTypeName","src":"1335:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3930,"mutability":"mutable","name":"index","nameLocation":"1358:5:19","nodeType":"VariableDeclaration","scope":3953,"src":"1350:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3929,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1334:30:19"},"returnParameters":{"id":3935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3953,"src":"1403:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1403:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1402:9:19"},"scope":4229,"src":"1306:253:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4241],"body":{"id":3963,"nodeType":"Block","src":"1700:41:19","statements":[{"expression":{"expression":{"id":3960,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"1717:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1717:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3959,"id":3962,"nodeType":"Return","src":"1710:24:19"}]},"documentation":{"id":3954,"nodeType":"StructuredDocumentation","src":"1565:60:19","text":" @dev See {IERC721Enumerable-totalSupply}."},"functionSelector":"18160ddd","id":3964,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1639:11:19","nodeType":"FunctionDefinition","overrides":{"id":3956,"nodeType":"OverrideSpecifier","overrides":[],"src":"1673:8:19"},"parameters":{"id":3955,"nodeType":"ParameterList","parameters":[],"src":"1650:2:19"},"returnParameters":{"id":3959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3964,"src":"1691:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1691:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1690:9:19"},"scope":4229,"src":"1630:111:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[4259],"body":{"id":3986,"nodeType":"Block","src":"1897:146:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3974,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3967,"src":"1915:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3975,"name":"ERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"1923:16:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Enumerable_$4229_$","typeString":"type(contract ERC721Enumerable)"}},"id":3976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":3964,"src":"1923:28:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1923:30:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1915:38:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473","id":3979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1955:46:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc","typeString":"literal_string \"ERC721Enumerable: global index out of bounds\""},"value":"ERC721Enumerable: global index out of bounds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc","typeString":"literal_string \"ERC721Enumerable: global index out of bounds\""}],"id":3973,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1907:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1907:95:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3981,"nodeType":"ExpressionStatement","src":"1907:95:19"},{"expression":{"baseExpression":{"id":3982,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"2019:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3984,"indexExpression":{"id":3983,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3967,"src":"2030:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3972,"id":3985,"nodeType":"Return","src":"2012:24:19"}]},"documentation":{"id":3965,"nodeType":"StructuredDocumentation","src":"1747:61:19","text":" @dev See {IERC721Enumerable-tokenByIndex}."},"functionSelector":"4f6ccce7","id":3987,"implemented":true,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"1822:12:19","nodeType":"FunctionDefinition","overrides":{"id":3969,"nodeType":"OverrideSpecifier","overrides":[],"src":"1870:8:19"},"parameters":{"id":3968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3967,"mutability":"mutable","name":"index","nameLocation":"1843:5:19","nodeType":"VariableDeclaration","scope":3987,"src":"1835:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1835:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1834:15:19"},"returnParameters":{"id":3972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3987,"src":"1888:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3970,"name":"uint256","nodeType":"ElementaryTypeName","src":"1888:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1887:9:19"},"scope":4229,"src":"1813:230:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3712],"body":{"id":4066,"nodeType":"Block","src":"2273:729:19","statements":[{"expression":{"arguments":[{"id":4003,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"2310:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4004,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"2316:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4005,"name":"firstTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"2320:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4006,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3996,"src":"2334:9:19","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"}],"expression":{"id":4000,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2283:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Enumerable_$4229_$","typeString":"type(contract super ERC721Enumerable)"}},"id":4002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":3712,"src":"2283:26:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":4007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2283:61:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4008,"nodeType":"ExpressionStatement","src":"2283:61:19"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4009,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3996,"src":"2359:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":4010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2371:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2359:13:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4017,"nodeType":"IfStatement","src":"2355:219:19","trueBody":{"id":4016,"nodeType":"Block","src":"2374:200:19","statements":[{"expression":{"arguments":[{"hexValue":"455243373231456e756d657261626c653a20636f6e7365637574697665207472616e7366657273206e6f7420737570706f72746564","id":4013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2507:55:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314","typeString":"literal_string \"ERC721Enumerable: consecutive transfers not supported\""},"value":"ERC721Enumerable: consecutive transfers not supported"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314","typeString":"literal_string \"ERC721Enumerable: consecutive transfers not supported\""}],"id":4012,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2500:6:19","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2500:63:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4015,"nodeType":"ExpressionStatement","src":"2500:63:19"}]}},{"assignments":[4019],"declarations":[{"constant":false,"id":4019,"mutability":"mutable","name":"tokenId","nameLocation":"2592:7:19","nodeType":"VariableDeclaration","scope":4066,"src":"2584:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4018,"name":"uint256","nodeType":"ElementaryTypeName","src":"2584:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4021,"initialValue":{"id":4020,"name":"firstTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"2602:12:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2584:30:19"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4022,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"2629:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2645:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2637:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4023,"name":"address","nodeType":"ElementaryTypeName","src":"2637:7:19","typeDescriptions":{}}},"id":4026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2637:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2629:18:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4033,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"2724:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4034,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"2732:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2724:10:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4042,"nodeType":"IfStatement","src":"2720:88:19","trueBody":{"id":4041,"nodeType":"Block","src":"2736:72:19","statements":[{"expression":{"arguments":[{"id":4037,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"2783:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4038,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"2789:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4036,"name":"_removeTokenFromOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4180,"src":"2750:32:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2750:47:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4040,"nodeType":"ExpressionStatement","src":"2750:47:19"}]}},"id":4043,"nodeType":"IfStatement","src":"2625:183:19","trueBody":{"id":4032,"nodeType":"Block","src":"2649:65:19","statements":[{"expression":{"arguments":[{"id":4029,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"2695:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4028,"name":"_addTokenToAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"2663:31:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":4030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2663:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4031,"nodeType":"ExpressionStatement","src":"2663:40:19"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4044,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"2821:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2835:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2827:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4045,"name":"address","nodeType":"ElementaryTypeName","src":"2827:7:19","typeDescriptions":{}}},"id":4048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2827:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2821:16:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4055,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"2919:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4056,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"2925:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2919:10:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4064,"nodeType":"IfStatement","src":"2915:81:19","trueBody":{"id":4063,"nodeType":"Block","src":"2931:65:19","statements":[{"expression":{"arguments":[{"id":4059,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"2973:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4060,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"2977:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4058,"name":"_addTokenToOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4097,"src":"2945:27:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":4061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2945:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4062,"nodeType":"ExpressionStatement","src":"2945:40:19"}]}},"id":4065,"nodeType":"IfStatement","src":"2817:179:19","trueBody":{"id":4054,"nodeType":"Block","src":"2839:70:19","statements":[{"expression":{"arguments":[{"id":4051,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"2890:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4050,"name":"_removeTokenFromAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4228,"src":"2853:36:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2853:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4053,"nodeType":"ExpressionStatement","src":"2853:45:19"}]}}]},"documentation":{"id":3988,"nodeType":"StructuredDocumentation","src":"2049:58:19","text":" @dev See {ERC721-_beforeTokenTransfer}."},"id":4067,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"2121:20:19","nodeType":"FunctionDefinition","overrides":{"id":3998,"nodeType":"OverrideSpecifier","overrides":[],"src":"2264:8:19"},"parameters":{"id":3997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3990,"mutability":"mutable","name":"from","nameLocation":"2159:4:19","nodeType":"VariableDeclaration","scope":4067,"src":"2151:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3989,"name":"address","nodeType":"ElementaryTypeName","src":"2151:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3992,"mutability":"mutable","name":"to","nameLocation":"2181:2:19","nodeType":"VariableDeclaration","scope":4067,"src":"2173:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3991,"name":"address","nodeType":"ElementaryTypeName","src":"2173:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3994,"mutability":"mutable","name":"firstTokenId","nameLocation":"2201:12:19","nodeType":"VariableDeclaration","scope":4067,"src":"2193:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3993,"name":"uint256","nodeType":"ElementaryTypeName","src":"2193:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3996,"mutability":"mutable","name":"batchSize","nameLocation":"2231:9:19","nodeType":"VariableDeclaration","scope":4067,"src":"2223:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3995,"name":"uint256","nodeType":"ElementaryTypeName","src":"2223:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2141:105:19"},"returnParameters":{"id":3999,"nodeType":"ParameterList","parameters":[],"src":"2273:0:19"},"scope":4229,"src":"2112:890:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":4096,"nodeType":"Block","src":"3370:143:19","statements":[{"assignments":[4076],"declarations":[{"constant":false,"id":4076,"mutability":"mutable","name":"length","nameLocation":"3388:6:19","nodeType":"VariableDeclaration","scope":4096,"src":"3380:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4075,"name":"uint256","nodeType":"ElementaryTypeName","src":"3380:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4081,"initialValue":{"arguments":[{"id":4079,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"3414:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4077,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"3397:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":4078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2932,"src":"3397:16:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3397:20:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3380:37:19"},{"expression":{"id":4088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4082,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"3427:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":4085,"indexExpression":{"id":4083,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"3440:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3427:16:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4086,"indexExpression":{"id":4084,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4076,"src":"3444:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3427:24:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4087,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"3454:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3427:34:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4089,"nodeType":"ExpressionStatement","src":"3427:34:19"},{"expression":{"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4090,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"3471:17:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4092,"indexExpression":{"id":4091,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"3489:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3471:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4093,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4076,"src":"3500:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3471:35:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4095,"nodeType":"ExpressionStatement","src":"3471:35:19"}]},"documentation":{"id":4068,"nodeType":"StructuredDocumentation","src":"3008:283:19","text":" @dev Private function to add a token to this extension's ownership-tracking data structures.\n @param to address representing the new owner of the given token ID\n @param tokenId uint256 ID of the token to be added to the tokens list of the given address"},"id":4097,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToOwnerEnumeration","nameLocation":"3305:27:19","nodeType":"FunctionDefinition","parameters":{"id":4073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4070,"mutability":"mutable","name":"to","nameLocation":"3341:2:19","nodeType":"VariableDeclaration","scope":4097,"src":"3333:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4069,"name":"address","nodeType":"ElementaryTypeName","src":"3333:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4072,"mutability":"mutable","name":"tokenId","nameLocation":"3353:7:19","nodeType":"VariableDeclaration","scope":4097,"src":"3345:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4071,"name":"uint256","nodeType":"ElementaryTypeName","src":"3345:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3332:29:19"},"returnParameters":{"id":4074,"nodeType":"ParameterList","parameters":[],"src":"3370:0:19"},"scope":4229,"src":"3296:217:19","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4116,"nodeType":"Block","src":"3774:95:19","statements":[{"expression":{"id":4108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4103,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3901,"src":"3784:15:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4105,"indexExpression":{"id":4104,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4100,"src":"3800:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3784:24:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4106,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"3811:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3811:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3784:44:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4109,"nodeType":"ExpressionStatement","src":"3784:44:19"},{"expression":{"arguments":[{"id":4113,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4100,"src":"3854:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4110,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"3838:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"3838:15:19","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":4114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3838:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4115,"nodeType":"ExpressionStatement","src":"3838:24:19"}]},"documentation":{"id":4098,"nodeType":"StructuredDocumentation","src":"3519:184:19","text":" @dev Private function to add a token to this extension's token tracking data structures.\n @param tokenId uint256 ID of the token to be added to the tokens list"},"id":4117,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToAllTokensEnumeration","nameLocation":"3717:31:19","nodeType":"FunctionDefinition","parameters":{"id":4101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4100,"mutability":"mutable","name":"tokenId","nameLocation":"3757:7:19","nodeType":"VariableDeclaration","scope":4117,"src":"3749:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4099,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3748:17:19"},"returnParameters":{"id":4102,"nodeType":"ParameterList","parameters":[],"src":"3774:0:19"},"scope":4229,"src":"3708:161:19","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4179,"nodeType":"Block","src":"4567:889:19","statements":[{"assignments":[4126],"declarations":[{"constant":false,"id":4126,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"4756:14:19","nodeType":"VariableDeclaration","scope":4179,"src":"4748:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4125,"name":"uint256","nodeType":"ElementaryTypeName","src":"4748:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4133,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4129,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"4790:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4127,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"4773:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":4128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":2932,"src":"4773:16:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":4130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4773:22:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4798:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4773:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4748:51:19"},{"assignments":[4135],"declarations":[{"constant":false,"id":4135,"mutability":"mutable","name":"tokenIndex","nameLocation":"4817:10:19","nodeType":"VariableDeclaration","scope":4179,"src":"4809:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4134,"name":"uint256","nodeType":"ElementaryTypeName","src":"4809:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4139,"initialValue":{"baseExpression":{"id":4136,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"4830:17:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4138,"indexExpression":{"id":4137,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4122,"src":"4848:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4830:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4809:47:19"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4140,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"4960:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4141,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"4974:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4960:28:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4166,"nodeType":"IfStatement","src":"4956:323:19","trueBody":{"id":4165,"nodeType":"Block","src":"4990:289:19","statements":[{"assignments":[4144],"declarations":[{"constant":false,"id":4144,"mutability":"mutable","name":"lastTokenId","nameLocation":"5012:11:19","nodeType":"VariableDeclaration","scope":4165,"src":"5004:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4143,"name":"uint256","nodeType":"ElementaryTypeName","src":"5004:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4150,"initialValue":{"baseExpression":{"baseExpression":{"id":4145,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"5026:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":4147,"indexExpression":{"id":4146,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"5039:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5026:18:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4149,"indexExpression":{"id":4148,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"5045:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5026:34:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5004:56:19"},{"expression":{"id":4157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4151,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"5075:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":4154,"indexExpression":{"id":4152,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"5088:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5075:18:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4155,"indexExpression":{"id":4153,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"5094:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5075:30:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4156,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"5108:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5075:44:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4158,"nodeType":"ExpressionStatement","src":"5075:44:19"},{"expression":{"id":4163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4159,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"5191:17:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4161,"indexExpression":{"id":4160,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"5209:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5191:30:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4162,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"5224:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5191:43:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4164,"nodeType":"ExpressionStatement","src":"5191:43:19"}]}},{"expression":{"id":4170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5365:33:19","subExpression":{"baseExpression":{"id":4167,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"5372:17:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4169,"indexExpression":{"id":4168,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4122,"src":"5390:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5372:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4171,"nodeType":"ExpressionStatement","src":"5365:33:19"},{"expression":{"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5408:41:19","subExpression":{"baseExpression":{"baseExpression":{"id":4172,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3890,"src":"5415:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":4174,"indexExpression":{"id":4173,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"5428:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5415:18:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4176,"indexExpression":{"id":4175,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"5434:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5415:34:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4178,"nodeType":"ExpressionStatement","src":"5408:41:19"}]},"documentation":{"id":4118,"nodeType":"StructuredDocumentation","src":"3875:606:19","text":" @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for\n gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n This has O(1) time complexity, but alters the order of the _ownedTokens array.\n @param from address representing the previous owner of the given token ID\n @param tokenId uint256 ID of the token to be removed from the tokens list of the given address"},"id":4180,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromOwnerEnumeration","nameLocation":"4495:32:19","nodeType":"FunctionDefinition","parameters":{"id":4123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4120,"mutability":"mutable","name":"from","nameLocation":"4536:4:19","nodeType":"VariableDeclaration","scope":4180,"src":"4528:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4119,"name":"address","nodeType":"ElementaryTypeName","src":"4528:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4122,"mutability":"mutable","name":"tokenId","nameLocation":"4550:7:19","nodeType":"VariableDeclaration","scope":4180,"src":"4542:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4121,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4527:31:19"},"returnParameters":{"id":4124,"nodeType":"ParameterList","parameters":[],"src":"4567:0:19"},"scope":4229,"src":"4486:970:19","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4227,"nodeType":"Block","src":"5815:990:19","statements":[{"assignments":[4187],"declarations":[{"constant":false,"id":4187,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"6001:14:19","nodeType":"VariableDeclaration","scope":4227,"src":"5993:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4186,"name":"uint256","nodeType":"ElementaryTypeName","src":"5993:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4192,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4188,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"6018:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6018:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6038:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6018:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5993:46:19"},{"assignments":[4194],"declarations":[{"constant":false,"id":4194,"mutability":"mutable","name":"tokenIndex","nameLocation":"6057:10:19","nodeType":"VariableDeclaration","scope":4227,"src":"6049:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4193,"name":"uint256","nodeType":"ElementaryTypeName","src":"6049:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4198,"initialValue":{"baseExpression":{"id":4195,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3901,"src":"6070:15:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4197,"indexExpression":{"id":4196,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"6086:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6070:24:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6049:45:19"},{"assignments":[4200],"declarations":[{"constant":false,"id":4200,"mutability":"mutable","name":"lastTokenId","nameLocation":"6424:11:19","nodeType":"VariableDeclaration","scope":4227,"src":"6416:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4199,"name":"uint256","nodeType":"ElementaryTypeName","src":"6416:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4204,"initialValue":{"baseExpression":{"id":4201,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"6438:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4203,"indexExpression":{"id":4202,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4187,"src":"6449:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6438:26:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6416:48:19"},{"expression":{"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4205,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"6475:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4207,"indexExpression":{"id":4206,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4194,"src":"6486:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6475:22:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4208,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4200,"src":"6500:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6475:36:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4210,"nodeType":"ExpressionStatement","src":"6475:36:19"},{"expression":{"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4211,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3901,"src":"6579:15:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4213,"indexExpression":{"id":4212,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4200,"src":"6595:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6579:28:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4214,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4194,"src":"6610:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6579:41:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4216,"nodeType":"ExpressionStatement","src":"6579:41:19"},{"expression":{"id":4220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6741:31:19","subExpression":{"baseExpression":{"id":4217,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3901,"src":"6748:15:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4219,"indexExpression":{"id":4218,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"6764:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6748:24:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4221,"nodeType":"ExpressionStatement","src":"6741:31:19"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4222,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"6782:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"6782:14:19","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer)"}},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6782:16:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4226,"nodeType":"ExpressionStatement","src":"6782:16:19"}]},"documentation":{"id":4181,"nodeType":"StructuredDocumentation","src":"5462:277:19","text":" @dev Private function to remove a token from this extension's token tracking data structures.\n This has O(1) time complexity, but alters the order of the _allTokens array.\n @param tokenId uint256 ID of the token to be removed from the tokens list"},"id":4228,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromAllTokensEnumeration","nameLocation":"5753:36:19","nodeType":"FunctionDefinition","parameters":{"id":4184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4183,"mutability":"mutable","name":"tokenId","nameLocation":"5798:7:19","nodeType":"VariableDeclaration","scope":4228,"src":"5790:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4182,"name":"uint256","nodeType":"ElementaryTypeName","src":"5790:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5789:17:19"},"returnParameters":{"id":4185,"nodeType":"ParameterList","parameters":[],"src":"5815:0:19"},"scope":4229,"src":"5744:1061:19","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":4230,"src":"412:6395:19","usedErrors":[]}],"src":"128:6680:19"},"id":19},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","exportedSymbols":{"IERC165":[5988],"IERC721":[3857],"IERC721Enumerable":[4260]},"id":4261,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4231,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"129:23:20"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":4232,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4261,"sourceUnit":3858,"src":"154:24:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4234,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":3857,"src":"348:7:20"},"id":4235,"nodeType":"InheritanceSpecifier","src":"348:7:20"}],"canonicalName":"IERC721Enumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":4233,"nodeType":"StructuredDocumentation","src":"180:136:20","text":" @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":4260,"linearizedBaseContracts":[4260,3857,5988],"name":"IERC721Enumerable","nameLocation":"327:17:20","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4236,"nodeType":"StructuredDocumentation","src":"362:82:20","text":" @dev Returns the total amount of tokens stored by the contract."},"functionSelector":"18160ddd","id":4241,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"458:11:20","nodeType":"FunctionDefinition","parameters":{"id":4237,"nodeType":"ParameterList","parameters":[],"src":"469:2:20"},"returnParameters":{"id":4240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4241,"src":"495:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4238,"name":"uint256","nodeType":"ElementaryTypeName","src":"495:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"494:9:20"},"scope":4260,"src":"449:55:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4242,"nodeType":"StructuredDocumentation","src":"510:171:20","text":" @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"functionSelector":"2f745c59","id":4251,"implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"695:19:20","nodeType":"FunctionDefinition","parameters":{"id":4247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4244,"mutability":"mutable","name":"owner","nameLocation":"723:5:20","nodeType":"VariableDeclaration","scope":4251,"src":"715:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4243,"name":"address","nodeType":"ElementaryTypeName","src":"715:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4246,"mutability":"mutable","name":"index","nameLocation":"738:5:20","nodeType":"VariableDeclaration","scope":4251,"src":"730:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4245,"name":"uint256","nodeType":"ElementaryTypeName","src":"730:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"714:30:20"},"returnParameters":{"id":4250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4251,"src":"768:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4248,"name":"uint256","nodeType":"ElementaryTypeName","src":"768:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"767:9:20"},"scope":4260,"src":"686:91:20","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4252,"nodeType":"StructuredDocumentation","src":"783:164:20","text":" @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens."},"functionSelector":"4f6ccce7","id":4259,"implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"961:12:20","nodeType":"FunctionDefinition","parameters":{"id":4255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4254,"mutability":"mutable","name":"index","nameLocation":"982:5:20","nodeType":"VariableDeclaration","scope":4259,"src":"974:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4253,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"973:15:20"},"returnParameters":{"id":4258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4259,"src":"1012:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4256,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:9:20"},"scope":4260,"src":"952:69:20","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4261,"src":"317:706:20","usedErrors":[]}],"src":"129:895:20"},"id":20},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[5988],"IERC721":[3857],"IERC721Metadata":[4287]},"id":4288,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4262,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:21"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":4263,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4288,"sourceUnit":3858,"src":"137:24:21","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4265,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":3857,"src":"326:7:21"},"id":4266,"nodeType":"InheritanceSpecifier","src":"326:7:21"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":4264,"nodeType":"StructuredDocumentation","src":"163:133:21","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":4287,"linearizedBaseContracts":[4287,3857,5988],"name":"IERC721Metadata","nameLocation":"307:15:21","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4267,"nodeType":"StructuredDocumentation","src":"340:58:21","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":4272,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:21","nodeType":"FunctionDefinition","parameters":{"id":4268,"nodeType":"ParameterList","parameters":[],"src":"416:2:21"},"returnParameters":{"id":4271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4272,"src":"442:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4269,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:21"},"scope":4287,"src":"403:54:21","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4273,"nodeType":"StructuredDocumentation","src":"463:60:21","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":4278,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:21","nodeType":"FunctionDefinition","parameters":{"id":4274,"nodeType":"ParameterList","parameters":[],"src":"543:2:21"},"returnParameters":{"id":4277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4278,"src":"569:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4275,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:21"},"scope":4287,"src":"528:56:21","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":4279,"nodeType":"StructuredDocumentation","src":"590:90:21","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":4286,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:21","nodeType":"FunctionDefinition","parameters":{"id":4282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4281,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:21","nodeType":"VariableDeclaration","scope":4286,"src":"703:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4280,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:21"},"returnParameters":{"id":4285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4286,"src":"743:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4283,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:21"},"scope":4287,"src":"685:73:21","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":4288,"src":"297:463:21","usedErrors":[]}],"src":"112:649:21"},"id":21},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[4617]},"id":4618,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4289,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:22"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":4290,"nodeType":"StructuredDocumentation","src":"126:67:22","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":4617,"linearizedBaseContracts":[4617],"name":"Address","nameLocation":"202:7:22","nodeType":"ContractDefinition","nodes":[{"body":{"id":4304,"nodeType":"Block","src":"1241:254:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4298,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4293,"src":"1465:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1465:12:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1465:19:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4297,"id":4303,"nodeType":"Return","src":"1458:30:22"}]},"documentation":{"id":4291,"nodeType":"StructuredDocumentation","src":"216:954:22","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":4305,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:22","nodeType":"FunctionDefinition","parameters":{"id":4294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4293,"mutability":"mutable","name":"account","nameLocation":"1203:7:22","nodeType":"VariableDeclaration","scope":4305,"src":"1195:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4292,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:22"},"returnParameters":{"id":4297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4305,"src":"1235:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4295,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:22"},"scope":4617,"src":"1175:320:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4338,"nodeType":"Block","src":"2483:241:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4316,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2509:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$4617","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$4617","typeString":"library Address"}],"id":4315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4314,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:22","typeDescriptions":{}}},"id":4317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2501:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2501:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4319,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4310,"src":"2526:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":4321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":4313,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2493:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2493:73:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4323,"nodeType":"ExpressionStatement","src":"2493:73:22"},{"assignments":[4325,null],"declarations":[{"constant":false,"id":4325,"mutability":"mutable","name":"success","nameLocation":"2583:7:22","nodeType":"VariableDeclaration","scope":4338,"src":"2578:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4324,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":4332,"initialValue":{"arguments":[{"hexValue":"","id":4330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":4326,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4308,"src":"2596:9:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2596:14:22","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":4328,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4310,"src":"2618:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:22","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2596:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:22"},{"expression":{"arguments":[{"id":4334,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4325,"src":"2647:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":4335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":4333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2639:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:78:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4337,"nodeType":"ExpressionStatement","src":"2639:78:22"}]},"documentation":{"id":4306,"nodeType":"StructuredDocumentation","src":"1501:906:22","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":4339,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:22","nodeType":"FunctionDefinition","parameters":{"id":4311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4308,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:22","nodeType":"VariableDeclaration","scope":4339,"src":"2431:25:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4307,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:22","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":4310,"mutability":"mutable","name":"amount","nameLocation":"2466:6:22","nodeType":"VariableDeclaration","scope":4339,"src":"2458:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:22"},"returnParameters":{"id":4312,"nodeType":"ParameterList","parameters":[],"src":"2483:0:22"},"scope":4617,"src":"2412:312:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4356,"nodeType":"Block","src":"3555:96:22","statements":[{"expression":{"arguments":[{"id":4350,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4342,"src":"3594:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4351,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4344,"src":"3602:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":4352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3608:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":4353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3611:32:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":4349,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[4397,4441],"referencedDeclaration":4441,"src":"3572:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":4354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:72:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4348,"id":4355,"nodeType":"Return","src":"3565:79:22"}]},"documentation":{"id":4340,"nodeType":"StructuredDocumentation","src":"2730:731:22","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":4357,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:22","nodeType":"FunctionDefinition","parameters":{"id":4345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4342,"mutability":"mutable","name":"target","nameLocation":"3496:6:22","nodeType":"VariableDeclaration","scope":4357,"src":"3488:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4341,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4344,"mutability":"mutable","name":"data","nameLocation":"3517:4:22","nodeType":"VariableDeclaration","scope":4357,"src":"3504:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4343,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:22"},"returnParameters":{"id":4348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4357,"src":"3541:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4346,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:22"},"scope":4617,"src":"3466:185:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4376,"nodeType":"Block","src":"4020:76:22","statements":[{"expression":{"arguments":[{"id":4370,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4360,"src":"4059:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4371,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4362,"src":"4067:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":4372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4073:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4373,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"4076:12:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4369,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[4397,4441],"referencedDeclaration":4441,"src":"4037:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4037:52:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4368,"id":4375,"nodeType":"Return","src":"4030:59:22"}]},"documentation":{"id":4358,"nodeType":"StructuredDocumentation","src":"3657:211:22","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":4377,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3882:12:22","nodeType":"FunctionDefinition","parameters":{"id":4365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4360,"mutability":"mutable","name":"target","nameLocation":"3912:6:22","nodeType":"VariableDeclaration","scope":4377,"src":"3904:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4359,"name":"address","nodeType":"ElementaryTypeName","src":"3904:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4362,"mutability":"mutable","name":"data","nameLocation":"3941:4:22","nodeType":"VariableDeclaration","scope":4377,"src":"3928:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4361,"name":"bytes","nodeType":"ElementaryTypeName","src":"3928:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4364,"mutability":"mutable","name":"errorMessage","nameLocation":"3969:12:22","nodeType":"VariableDeclaration","scope":4377,"src":"3955:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4363,"name":"string","nodeType":"ElementaryTypeName","src":"3955:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3894:93:22"},"returnParameters":{"id":4368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4377,"src":"4006:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4366,"name":"bytes","nodeType":"ElementaryTypeName","src":"4006:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4005:14:22"},"scope":4617,"src":"3873:223:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4396,"nodeType":"Block","src":"4601:111:22","statements":[{"expression":{"arguments":[{"id":4390,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"4640:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4391,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4382,"src":"4648:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4392,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4384,"src":"4654:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":4393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4661:43:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":4389,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[4397,4441],"referencedDeclaration":4441,"src":"4618:21:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4618:87:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4388,"id":4395,"nodeType":"Return","src":"4611:94:22"}]},"documentation":{"id":4378,"nodeType":"StructuredDocumentation","src":"4102:351:22","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":4397,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4467:21:22","nodeType":"FunctionDefinition","parameters":{"id":4385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4380,"mutability":"mutable","name":"target","nameLocation":"4506:6:22","nodeType":"VariableDeclaration","scope":4397,"src":"4498:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4379,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4382,"mutability":"mutable","name":"data","nameLocation":"4535:4:22","nodeType":"VariableDeclaration","scope":4397,"src":"4522:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4381,"name":"bytes","nodeType":"ElementaryTypeName","src":"4522:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4384,"mutability":"mutable","name":"value","nameLocation":"4557:5:22","nodeType":"VariableDeclaration","scope":4397,"src":"4549:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4383,"name":"uint256","nodeType":"ElementaryTypeName","src":"4549:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4488:80:22"},"returnParameters":{"id":4388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4397,"src":"4587:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4386,"name":"bytes","nodeType":"ElementaryTypeName","src":"4587:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4586:14:22"},"scope":4617,"src":"4458:254:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4440,"nodeType":"Block","src":"5139:267:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4414,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5165:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$4617","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$4617","typeString":"library Address"}],"id":4413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5157:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4412,"name":"address","nodeType":"ElementaryTypeName","src":"5157:7:22","typeDescriptions":{}}},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5157:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5157:21:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4417,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"5182:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:30:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":4419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5189:40:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":4411,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5149:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5149:81:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4421,"nodeType":"ExpressionStatement","src":"5149:81:22"},{"assignments":[4423,4425],"declarations":[{"constant":false,"id":4423,"mutability":"mutable","name":"success","nameLocation":"5246:7:22","nodeType":"VariableDeclaration","scope":4440,"src":"5241:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4422,"name":"bool","nodeType":"ElementaryTypeName","src":"5241:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4425,"mutability":"mutable","name":"returndata","nameLocation":"5268:10:22","nodeType":"VariableDeclaration","scope":4440,"src":"5255:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4424,"name":"bytes","nodeType":"ElementaryTypeName","src":"5255:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4432,"initialValue":{"arguments":[{"id":4430,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4402,"src":"5308:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4426,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4400,"src":"5282:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5282:11:22","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":4428,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"5301:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5282:25:22","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5282:31:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5240:73:22"},{"expression":{"arguments":[{"id":4434,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4400,"src":"5357:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4435,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4423,"src":"5365:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4436,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"5374:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4437,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"5386:12:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4433,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4572,"src":"5330:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5330:69:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4410,"id":4439,"nodeType":"Return","src":"5323:76:22"}]},"documentation":{"id":4398,"nodeType":"StructuredDocumentation","src":"4718:237:22","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":4441,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4969:21:22","nodeType":"FunctionDefinition","parameters":{"id":4407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4400,"mutability":"mutable","name":"target","nameLocation":"5008:6:22","nodeType":"VariableDeclaration","scope":4441,"src":"5000:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4399,"name":"address","nodeType":"ElementaryTypeName","src":"5000:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4402,"mutability":"mutable","name":"data","nameLocation":"5037:4:22","nodeType":"VariableDeclaration","scope":4441,"src":"5024:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4401,"name":"bytes","nodeType":"ElementaryTypeName","src":"5024:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4404,"mutability":"mutable","name":"value","nameLocation":"5059:5:22","nodeType":"VariableDeclaration","scope":4441,"src":"5051:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4403,"name":"uint256","nodeType":"ElementaryTypeName","src":"5051:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4406,"mutability":"mutable","name":"errorMessage","nameLocation":"5088:12:22","nodeType":"VariableDeclaration","scope":4441,"src":"5074:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4405,"name":"string","nodeType":"ElementaryTypeName","src":"5074:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4990:116:22"},"returnParameters":{"id":4410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4441,"src":"5125:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4408,"name":"bytes","nodeType":"ElementaryTypeName","src":"5125:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5124:14:22"},"scope":4617,"src":"4960:446:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4457,"nodeType":"Block","src":"5683:97:22","statements":[{"expression":{"arguments":[{"id":4452,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"5719:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4453,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4446,"src":"5727:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":4454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5733:39:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":4451,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[4458,4487],"referencedDeclaration":4487,"src":"5700:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":4455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5700:73:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4450,"id":4456,"nodeType":"Return","src":"5693:80:22"}]},"documentation":{"id":4442,"nodeType":"StructuredDocumentation","src":"5412:166:22","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":4458,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5592:18:22","nodeType":"FunctionDefinition","parameters":{"id":4447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4444,"mutability":"mutable","name":"target","nameLocation":"5619:6:22","nodeType":"VariableDeclaration","scope":4458,"src":"5611:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4443,"name":"address","nodeType":"ElementaryTypeName","src":"5611:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4446,"mutability":"mutable","name":"data","nameLocation":"5640:4:22","nodeType":"VariableDeclaration","scope":4458,"src":"5627:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4445,"name":"bytes","nodeType":"ElementaryTypeName","src":"5627:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5610:35:22"},"returnParameters":{"id":4450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4458,"src":"5669:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4448,"name":"bytes","nodeType":"ElementaryTypeName","src":"5669:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5668:14:22"},"scope":4617,"src":"5583:197:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4486,"nodeType":"Block","src":"6122:168:22","statements":[{"assignments":[4471,4473],"declarations":[{"constant":false,"id":4471,"mutability":"mutable","name":"success","nameLocation":"6138:7:22","nodeType":"VariableDeclaration","scope":4486,"src":"6133:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4470,"name":"bool","nodeType":"ElementaryTypeName","src":"6133:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4473,"mutability":"mutable","name":"returndata","nameLocation":"6160:10:22","nodeType":"VariableDeclaration","scope":4486,"src":"6147:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4472,"name":"bytes","nodeType":"ElementaryTypeName","src":"6147:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4478,"initialValue":{"arguments":[{"id":4476,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4463,"src":"6192:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4474,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4461,"src":"6174:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6174:17:22","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":4477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6174:23:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6132:65:22"},{"expression":{"arguments":[{"id":4480,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4461,"src":"6241:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4481,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4471,"src":"6249:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4482,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4473,"src":"6258:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4483,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4465,"src":"6270:12:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4479,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4572,"src":"6214:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":4484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6214:69:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4469,"id":4485,"nodeType":"Return","src":"6207:76:22"}]},"documentation":{"id":4459,"nodeType":"StructuredDocumentation","src":"5786:173:22","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":4487,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5973:18:22","nodeType":"FunctionDefinition","parameters":{"id":4466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4461,"mutability":"mutable","name":"target","nameLocation":"6009:6:22","nodeType":"VariableDeclaration","scope":4487,"src":"6001:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4460,"name":"address","nodeType":"ElementaryTypeName","src":"6001:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4463,"mutability":"mutable","name":"data","nameLocation":"6038:4:22","nodeType":"VariableDeclaration","scope":4487,"src":"6025:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4462,"name":"bytes","nodeType":"ElementaryTypeName","src":"6025:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4465,"mutability":"mutable","name":"errorMessage","nameLocation":"6066:12:22","nodeType":"VariableDeclaration","scope":4487,"src":"6052:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4464,"name":"string","nodeType":"ElementaryTypeName","src":"6052:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5991:93:22"},"returnParameters":{"id":4469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4487,"src":"6108:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4467,"name":"bytes","nodeType":"ElementaryTypeName","src":"6108:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6107:14:22"},"scope":4617,"src":"5964:326:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4503,"nodeType":"Block","src":"6566:101:22","statements":[{"expression":{"arguments":[{"id":4498,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4490,"src":"6604:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4499,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4492,"src":"6612:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":4500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6618:41:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":4497,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[4504,4533],"referencedDeclaration":4533,"src":"6583:20:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6583:77:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4496,"id":4502,"nodeType":"Return","src":"6576:84:22"}]},"documentation":{"id":4488,"nodeType":"StructuredDocumentation","src":"6296:168:22","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":4504,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6478:20:22","nodeType":"FunctionDefinition","parameters":{"id":4493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4490,"mutability":"mutable","name":"target","nameLocation":"6507:6:22","nodeType":"VariableDeclaration","scope":4504,"src":"6499:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4489,"name":"address","nodeType":"ElementaryTypeName","src":"6499:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4492,"mutability":"mutable","name":"data","nameLocation":"6528:4:22","nodeType":"VariableDeclaration","scope":4504,"src":"6515:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4491,"name":"bytes","nodeType":"ElementaryTypeName","src":"6515:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6498:35:22"},"returnParameters":{"id":4496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4504,"src":"6552:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4494,"name":"bytes","nodeType":"ElementaryTypeName","src":"6552:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6551:14:22"},"scope":4617,"src":"6469:198:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4532,"nodeType":"Block","src":"7008:170:22","statements":[{"assignments":[4517,4519],"declarations":[{"constant":false,"id":4517,"mutability":"mutable","name":"success","nameLocation":"7024:7:22","nodeType":"VariableDeclaration","scope":4532,"src":"7019:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4516,"name":"bool","nodeType":"ElementaryTypeName","src":"7019:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4519,"mutability":"mutable","name":"returndata","nameLocation":"7046:10:22","nodeType":"VariableDeclaration","scope":4532,"src":"7033:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4518,"name":"bytes","nodeType":"ElementaryTypeName","src":"7033:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4524,"initialValue":{"arguments":[{"id":4522,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4509,"src":"7080:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4520,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4507,"src":"7060:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"7060:19:22","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":4523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7060:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7018:67:22"},{"expression":{"arguments":[{"id":4526,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4507,"src":"7129:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4527,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4517,"src":"7137:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4528,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4519,"src":"7146:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4529,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4511,"src":"7158:12:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4525,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4572,"src":"7102:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":4530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7102:69:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4515,"id":4531,"nodeType":"Return","src":"7095:76:22"}]},"documentation":{"id":4505,"nodeType":"StructuredDocumentation","src":"6673:175:22","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":4533,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6862:20:22","nodeType":"FunctionDefinition","parameters":{"id":4512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4507,"mutability":"mutable","name":"target","nameLocation":"6900:6:22","nodeType":"VariableDeclaration","scope":4533,"src":"6892:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4506,"name":"address","nodeType":"ElementaryTypeName","src":"6892:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4509,"mutability":"mutable","name":"data","nameLocation":"6929:4:22","nodeType":"VariableDeclaration","scope":4533,"src":"6916:17:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4508,"name":"bytes","nodeType":"ElementaryTypeName","src":"6916:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4511,"mutability":"mutable","name":"errorMessage","nameLocation":"6957:12:22","nodeType":"VariableDeclaration","scope":4533,"src":"6943:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4510,"name":"string","nodeType":"ElementaryTypeName","src":"6943:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6882:93:22"},"returnParameters":{"id":4515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4533,"src":"6994:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4513,"name":"bytes","nodeType":"ElementaryTypeName","src":"6994:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6993:14:22"},"scope":4617,"src":"6853:325:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4571,"nodeType":"Block","src":"7660:434:22","statements":[{"condition":{"id":4547,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4538,"src":"7674:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4569,"nodeType":"Block","src":"8030:58:22","statements":[{"expression":{"arguments":[{"id":4565,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"8052:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4566,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"8064:12:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4564,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"8044:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8044:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4568,"nodeType":"ExpressionStatement","src":"8044:33:22"}]},"id":4570,"nodeType":"IfStatement","src":"7670:418:22","trueBody":{"id":4563,"nodeType":"Block","src":"7683:341:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4548,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"7701:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7701:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7722:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7701:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4560,"nodeType":"IfStatement","src":"7697:286:22","trueBody":{"id":4559,"nodeType":"Block","src":"7725:258:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":4554,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4536,"src":"7927:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4553,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4305,"src":"7916:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7916:18:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":4556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7936:31:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":4552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7908:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7908:60:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4558,"nodeType":"ExpressionStatement","src":"7908:60:22"}]}},{"expression":{"id":4561,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"8003:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4546,"id":4562,"nodeType":"Return","src":"7996:17:22"}]}}]},"documentation":{"id":4534,"nodeType":"StructuredDocumentation","src":"7184:277:22","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":4572,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7475:26:22","nodeType":"FunctionDefinition","parameters":{"id":4543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4536,"mutability":"mutable","name":"target","nameLocation":"7519:6:22","nodeType":"VariableDeclaration","scope":4572,"src":"7511:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4535,"name":"address","nodeType":"ElementaryTypeName","src":"7511:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4538,"mutability":"mutable","name":"success","nameLocation":"7540:7:22","nodeType":"VariableDeclaration","scope":4572,"src":"7535:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4537,"name":"bool","nodeType":"ElementaryTypeName","src":"7535:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4540,"mutability":"mutable","name":"returndata","nameLocation":"7570:10:22","nodeType":"VariableDeclaration","scope":4572,"src":"7557:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4539,"name":"bytes","nodeType":"ElementaryTypeName","src":"7557:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4542,"mutability":"mutable","name":"errorMessage","nameLocation":"7604:12:22","nodeType":"VariableDeclaration","scope":4572,"src":"7590:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4541,"name":"string","nodeType":"ElementaryTypeName","src":"7590:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7501:121:22"},"returnParameters":{"id":4546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4572,"src":"7646:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4544,"name":"bytes","nodeType":"ElementaryTypeName","src":"7646:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7645:14:22"},"scope":4617,"src":"7466:628:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4595,"nodeType":"Block","src":"8475:135:22","statements":[{"condition":{"id":4584,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"8489:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4593,"nodeType":"Block","src":"8546:58:22","statements":[{"expression":{"arguments":[{"id":4589,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4577,"src":"8568:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4590,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4579,"src":"8580:12:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4588,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"8560:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":4591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4592,"nodeType":"ExpressionStatement","src":"8560:33:22"}]},"id":4594,"nodeType":"IfStatement","src":"8485:119:22","trueBody":{"id":4587,"nodeType":"Block","src":"8498:42:22","statements":[{"expression":{"id":4585,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4577,"src":"8519:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4583,"id":4586,"nodeType":"Return","src":"8512:17:22"}]}}]},"documentation":{"id":4573,"nodeType":"StructuredDocumentation","src":"8100:210:22","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":4596,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8324:16:22","nodeType":"FunctionDefinition","parameters":{"id":4580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4575,"mutability":"mutable","name":"success","nameLocation":"8355:7:22","nodeType":"VariableDeclaration","scope":4596,"src":"8350:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4574,"name":"bool","nodeType":"ElementaryTypeName","src":"8350:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4577,"mutability":"mutable","name":"returndata","nameLocation":"8385:10:22","nodeType":"VariableDeclaration","scope":4596,"src":"8372:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4576,"name":"bytes","nodeType":"ElementaryTypeName","src":"8372:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4579,"mutability":"mutable","name":"errorMessage","nameLocation":"8419:12:22","nodeType":"VariableDeclaration","scope":4596,"src":"8405:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4578,"name":"string","nodeType":"ElementaryTypeName","src":"8405:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8340:97:22"},"returnParameters":{"id":4583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4596,"src":"8461:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4581,"name":"bytes","nodeType":"ElementaryTypeName","src":"8461:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8460:14:22"},"scope":4617,"src":"8315:295:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4615,"nodeType":"Block","src":"8699:457:22","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4603,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4598,"src":"8775:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8775:17:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8795:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8775:21:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4613,"nodeType":"Block","src":"9105:45:22","statements":[{"expression":{"arguments":[{"id":4610,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4600,"src":"9126:12:22","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4609,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9119:6:22","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9119:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4612,"nodeType":"ExpressionStatement","src":"9119:20:22"}]},"id":4614,"nodeType":"IfStatement","src":"8771:379:22","trueBody":{"id":4608,"nodeType":"Block","src":"8798:301:22","statements":[{"AST":{"nodeType":"YulBlock","src":"8956:133:22","statements":[{"nodeType":"YulVariableDeclaration","src":"8974:40:22","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9003:10:22"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8997:5:22"},"nodeType":"YulFunctionCall","src":"8997:17:22"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8978:15:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9042:2:22","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9046:10:22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9038:3:22"},"nodeType":"YulFunctionCall","src":"9038:19:22"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9059:15:22"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9031:6:22"},"nodeType":"YulFunctionCall","src":"9031:44:22"},"nodeType":"YulExpressionStatement","src":"9031:44:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":4598,"isOffset":false,"isSlot":false,"src":"9003:10:22","valueSize":1},{"declaration":4598,"isOffset":false,"isSlot":false,"src":"9046:10:22","valueSize":1}],"id":4607,"nodeType":"InlineAssembly","src":"8947:142:22"}]}}]},"id":4616,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8625:7:22","nodeType":"FunctionDefinition","parameters":{"id":4601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4598,"mutability":"mutable","name":"returndata","nameLocation":"8646:10:22","nodeType":"VariableDeclaration","scope":4616,"src":"8633:23:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4597,"name":"bytes","nodeType":"ElementaryTypeName","src":"8633:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4600,"mutability":"mutable","name":"errorMessage","nameLocation":"8672:12:22","nodeType":"VariableDeclaration","scope":4616,"src":"8658:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4599,"name":"string","nodeType":"ElementaryTypeName","src":"8658:6:22","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8632:53:22"},"returnParameters":{"id":4602,"nodeType":"ParameterList","parameters":[],"src":"8699:0:22"},"scope":4617,"src":"8616:540:22","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":4618,"src":"194:8964:22","usedErrors":[]}],"src":"101:9058:22"},"id":22},"@openzeppelin/contracts/utils/Base64.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Base64.sol","exportedSymbols":{"Base64":[4664]},"id":4665,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4619,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:23"},{"abstract":false,"baseContracts":[],"canonicalName":"Base64","contractDependencies":[],"contractKind":"library","documentation":{"id":4620,"nodeType":"StructuredDocumentation","src":"125:105:23","text":" @dev Provides a set of functions to operate with Base64 strings.\n _Available since v4.5._"},"fullyImplemented":true,"id":4664,"linearizedBaseContracts":[4664],"name":"Base64","nameLocation":"239:6:23","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":4621,"nodeType":"StructuredDocumentation","src":"252:54:23","text":" @dev Base64 Encoding/Decoding Table"},"id":4624,"mutability":"constant","name":"_TABLE","nameLocation":"336:6:23","nodeType":"VariableDeclaration","scope":4664,"src":"311:100:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4622,"name":"string","nodeType":"ElementaryTypeName","src":"311:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"345:66:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_84d8a590de33e00cbdc16e1f28c3506f5ec15c599fab9a6a4bcd575cc2f110ce","typeString":"literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\""},"value":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"},"visibility":"internal"},{"body":{"id":4662,"nodeType":"Block","src":"578:2953:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4632,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"795:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"795:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"810:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"795:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" Inspired by Brecht Devos (Brechtpd) implementation - MIT licence\n https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol","id":4638,"nodeType":"IfStatement","src":"791:31:23","trueBody":{"expression":{"hexValue":"","id":4636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"820:2:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":4631,"id":4637,"nodeType":"Return","src":"813:9:23"}},{"assignments":[4640],"declarations":[{"constant":false,"id":4640,"mutability":"mutable","name":"table","nameLocation":"886:5:23","nodeType":"VariableDeclaration","scope":4662,"src":"872:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4639,"name":"string","nodeType":"ElementaryTypeName","src":"872:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4642,"initialValue":{"id":4641,"name":"_TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4624,"src":"894:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"872:28:23"},{"assignments":[4644],"declarations":[{"constant":false,"id":4644,"mutability":"mutable","name":"result","nameLocation":"1317:6:23","nodeType":"VariableDeclaration","scope":4662,"src":"1303:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4643,"name":"string","nodeType":"ElementaryTypeName","src":"1303:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4658,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":4647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1337:1:23","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4648,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4627,"src":"1343:4:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1343:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":4650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1357:1:23","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1343:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4652,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1342:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33","id":4653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:23","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"1342:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4655,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1341:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1337:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1326:10:23","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":4645,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":4657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1326:39:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1303:62:23"},{"AST":{"nodeType":"YulBlock","src":"1428:2073:23","statements":[{"nodeType":"YulVariableDeclaration","src":"1513:29:23","value":{"arguments":[{"name":"table","nodeType":"YulIdentifier","src":"1533:5:23"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:23","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1529:3:23"},"nodeType":"YulFunctionCall","src":"1529:13:23"},"variables":[{"name":"tablePtr","nodeType":"YulTypedName","src":"1517:8:23","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1612:32:23","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"1633:6:23"},{"kind":"number","nodeType":"YulLiteral","src":"1641:2:23","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1629:3:23"},"nodeType":"YulFunctionCall","src":"1629:15:23"},"variables":[{"name":"resultPtr","nodeType":"YulTypedName","src":"1616:9:23","type":""}]},{"body":{"nodeType":"YulBlock","src":"1857:1257:23","statements":[{"nodeType":"YulAssignment","src":"1910:26:23","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1925:7:23"},{"kind":"number","nodeType":"YulLiteral","src":"1934:1:23","type":"","value":"3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1921:3:23"},"nodeType":"YulFunctionCall","src":"1921:15:23"},"variableNames":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1910:7:23"}]},{"nodeType":"YulVariableDeclaration","src":"1953:27:23","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1972:7:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1966:5:23"},"nodeType":"YulFunctionCall","src":"1966:14:23"},"variables":[{"name":"input","nodeType":"YulTypedName","src":"1957:5:23","type":""}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2564:9:23"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"2585:8:23"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2603:2:23","type":"","value":"18"},{"name":"input","nodeType":"YulIdentifier","src":"2607:5:23"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2599:3:23"},"nodeType":"YulFunctionCall","src":"2599:14:23"},{"kind":"number","nodeType":"YulLiteral","src":"2615:4:23","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2595:3:23"},"nodeType":"YulFunctionCall","src":"2595:25:23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2581:3:23"},"nodeType":"YulFunctionCall","src":"2581:40:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2575:5:23"},"nodeType":"YulFunctionCall","src":"2575:47:23"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"2556:7:23"},"nodeType":"YulFunctionCall","src":"2556:67:23"},"nodeType":"YulExpressionStatement","src":"2556:67:23"},{"nodeType":"YulAssignment","src":"2640:30:23","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2657:9:23"},{"kind":"number","nodeType":"YulLiteral","src":"2668:1:23","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:23"},"nodeType":"YulFunctionCall","src":"2653:17:23"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2640:9:23"}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2707:9:23"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"2728:8:23"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2746:2:23","type":"","value":"12"},{"name":"input","nodeType":"YulIdentifier","src":"2750:5:23"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2742:3:23"},"nodeType":"YulFunctionCall","src":"2742:14:23"},{"kind":"number","nodeType":"YulLiteral","src":"2758:4:23","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2738:3:23"},"nodeType":"YulFunctionCall","src":"2738:25:23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2724:3:23"},"nodeType":"YulFunctionCall","src":"2724:40:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2718:5:23"},"nodeType":"YulFunctionCall","src":"2718:47:23"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"2699:7:23"},"nodeType":"YulFunctionCall","src":"2699:67:23"},"nodeType":"YulExpressionStatement","src":"2699:67:23"},{"nodeType":"YulAssignment","src":"2783:30:23","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2800:9:23"},{"kind":"number","nodeType":"YulLiteral","src":"2811:1:23","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2796:3:23"},"nodeType":"YulFunctionCall","src":"2796:17:23"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2783:9:23"}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2850:9:23"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"2871:8:23"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2889:1:23","type":"","value":"6"},{"name":"input","nodeType":"YulIdentifier","src":"2892:5:23"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2885:3:23"},"nodeType":"YulFunctionCall","src":"2885:13:23"},{"kind":"number","nodeType":"YulLiteral","src":"2900:4:23","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2881:3:23"},"nodeType":"YulFunctionCall","src":"2881:24:23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2867:3:23"},"nodeType":"YulFunctionCall","src":"2867:39:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2861:5:23"},"nodeType":"YulFunctionCall","src":"2861:46:23"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"2842:7:23"},"nodeType":"YulFunctionCall","src":"2842:66:23"},"nodeType":"YulExpressionStatement","src":"2842:66:23"},{"nodeType":"YulAssignment","src":"2925:30:23","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2942:9:23"},{"kind":"number","nodeType":"YulLiteral","src":"2953:1:23","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2938:3:23"},"nodeType":"YulFunctionCall","src":"2938:17:23"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2925:9:23"}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2992:9:23"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"3013:8:23"},{"arguments":[{"name":"input","nodeType":"YulIdentifier","src":"3027:5:23"},{"kind":"number","nodeType":"YulLiteral","src":"3034:4:23","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3023:3:23"},"nodeType":"YulFunctionCall","src":"3023:16:23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3009:3:23"},"nodeType":"YulFunctionCall","src":"3009:31:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3003:5:23"},"nodeType":"YulFunctionCall","src":"3003:38:23"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"2984:7:23"},"nodeType":"YulFunctionCall","src":"2984:58:23"},"nodeType":"YulExpressionStatement","src":"2984:58:23"},{"nodeType":"YulAssignment","src":"3059:30:23","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"3076:9:23"},{"kind":"number","nodeType":"YulLiteral","src":"3087:1:23","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3072:3:23"},"nodeType":"YulFunctionCall","src":"3072:17:23"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"3059:9:23"}]}]},"condition":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1823:7:23"},{"name":"endPtr","nodeType":"YulIdentifier","src":"1832:6:23"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1820:2:23"},"nodeType":"YulFunctionCall","src":"1820:19:23"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1840:16:23","statements":[]},"pre":{"nodeType":"YulBlock","src":"1715:104:23","statements":[{"nodeType":"YulVariableDeclaration","src":"1733:19:23","value":{"name":"data","nodeType":"YulIdentifier","src":"1748:4:23"},"variables":[{"name":"dataPtr","nodeType":"YulTypedName","src":"1737:7:23","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1769:36:23","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1787:4:23"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1799:4:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1793:5:23"},"nodeType":"YulFunctionCall","src":"1793:11:23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1783:3:23"},"nodeType":"YulFunctionCall","src":"1783:22:23"},"variables":[{"name":"endPtr","nodeType":"YulTypedName","src":"1773:6:23","type":""}]}]},"src":"1711:1403:23"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3294:113:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"3324:9:23"},{"kind":"number","nodeType":"YulLiteral","src":"3335:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3320:3:23"},"nodeType":"YulFunctionCall","src":"3320:17:23"},{"kind":"number","nodeType":"YulLiteral","src":"3339:4:23","type":"","value":"0x3d"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"3312:7:23"},"nodeType":"YulFunctionCall","src":"3312:32:23"},"nodeType":"YulExpressionStatement","src":"3312:32:23"},{"expression":{"arguments":[{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"3373:9:23"},{"kind":"number","nodeType":"YulLiteral","src":"3384:1:23","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3369:3:23"},"nodeType":"YulFunctionCall","src":"3369:17:23"},{"kind":"number","nodeType":"YulLiteral","src":"3388:4:23","type":"","value":"0x3d"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"3361:7:23"},"nodeType":"YulFunctionCall","src":"3361:32:23"},"nodeType":"YulExpressionStatement","src":"3361:32:23"}]},"nodeType":"YulCase","src":"3287:120:23","value":{"kind":"number","nodeType":"YulLiteral","src":"3292:1:23","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3427:64:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"3457:9:23"},{"kind":"number","nodeType":"YulLiteral","src":"3468:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3453:3:23"},"nodeType":"YulFunctionCall","src":"3453:17:23"},{"kind":"number","nodeType":"YulLiteral","src":"3472:4:23","type":"","value":"0x3d"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"3445:7:23"},"nodeType":"YulFunctionCall","src":"3445:32:23"},"nodeType":"YulExpressionStatement","src":"3445:32:23"}]},"nodeType":"YulCase","src":"3420:71:23","value":{"kind":"number","nodeType":"YulLiteral","src":"3425:1:23","type":"","value":"2"}}],"expression":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3265:4:23"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3259:5:23"},"nodeType":"YulFunctionCall","src":"3259:11:23"},{"kind":"number","nodeType":"YulLiteral","src":"3272:1:23","type":"","value":"3"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"3255:3:23"},"nodeType":"YulFunctionCall","src":"3255:19:23"},"nodeType":"YulSwitch","src":"3248:243:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":4627,"isOffset":false,"isSlot":false,"src":"1748:4:23","valueSize":1},{"declaration":4627,"isOffset":false,"isSlot":false,"src":"1787:4:23","valueSize":1},{"declaration":4627,"isOffset":false,"isSlot":false,"src":"1799:4:23","valueSize":1},{"declaration":4627,"isOffset":false,"isSlot":false,"src":"3265:4:23","valueSize":1},{"declaration":4644,"isOffset":false,"isSlot":false,"src":"1633:6:23","valueSize":1},{"declaration":4640,"isOffset":false,"isSlot":false,"src":"1533:5:23","valueSize":1}],"id":4659,"nodeType":"InlineAssembly","src":"1419:2082:23"},{"expression":{"id":4660,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4644,"src":"3518:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4631,"id":4661,"nodeType":"Return","src":"3511:13:23"}]},"documentation":{"id":4625,"nodeType":"StructuredDocumentation","src":"418:82:23","text":" @dev Converts a `bytes` to its Bytes64 `string` representation."},"id":4663,"implemented":true,"kind":"function","modifiers":[],"name":"encode","nameLocation":"514:6:23","nodeType":"FunctionDefinition","parameters":{"id":4628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4627,"mutability":"mutable","name":"data","nameLocation":"534:4:23","nodeType":"VariableDeclaration","scope":4663,"src":"521:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4626,"name":"bytes","nodeType":"ElementaryTypeName","src":"521:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"520:19:23"},"returnParameters":{"id":4631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4630,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4663,"src":"563:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4629,"name":"string","nodeType":"ElementaryTypeName","src":"563:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"562:15:23"},"scope":4664,"src":"505:3026:23","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4665,"src":"231:3302:23","usedErrors":[]}],"src":"100:3434:23"},"id":23},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[4686]},"id":4687,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4666,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:24"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":4667,"nodeType":"StructuredDocumentation","src":"111:496:24","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":4686,"linearizedBaseContracts":[4686],"name":"Context","nameLocation":"626:7:24","nodeType":"ContractDefinition","nodes":[{"body":{"id":4675,"nodeType":"Block","src":"702:34:24","statements":[{"expression":{"expression":{"id":4672,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4671,"id":4674,"nodeType":"Return","src":"712:17:24"}]},"id":4676,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:24","nodeType":"FunctionDefinition","parameters":{"id":4668,"nodeType":"ParameterList","parameters":[],"src":"659:2:24"},"returnParameters":{"id":4671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4670,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4676,"src":"693:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4669,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:24"},"scope":4686,"src":"640:96:24","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":4684,"nodeType":"Block","src":"809:32:24","statements":[{"expression":{"expression":{"id":4681,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":4680,"id":4683,"nodeType":"Return","src":"819:15:24"}]},"id":4685,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:24","nodeType":"FunctionDefinition","parameters":{"id":4677,"nodeType":"ParameterList","parameters":[],"src":"759:2:24"},"returnParameters":{"id":4680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4685,"src":"793:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4678,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:24"},"scope":4686,"src":"742:99:24","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":4687,"src":"608:235:24","usedErrors":[]}],"src":"86:758:24"},"id":24},"@openzeppelin/contracts/utils/Counters.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","exportedSymbols":{"Counters":[4760]},"id":4761,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4688,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:25"},{"abstract":false,"baseContracts":[],"canonicalName":"Counters","contractDependencies":[],"contractKind":"library","documentation":{"id":4689,"nodeType":"StructuredDocumentation","src":"112:311:25","text":" @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"},"fullyImplemented":true,"id":4760,"linearizedBaseContracts":[4760],"name":"Counters","nameLocation":"432:8:25","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Counters.Counter","id":4692,"members":[{"constant":false,"id":4691,"mutability":"mutable","name":"_value","nameLocation":"794:6:25","nodeType":"VariableDeclaration","scope":4692,"src":"786:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4690,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:25","nodeType":"StructDefinition","scope":4760,"src":"447:374:25","visibility":"public"},{"body":{"id":4703,"nodeType":"Block","src":"901:38:25","statements":[{"expression":{"expression":{"id":4700,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4695,"src":"918:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":4701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":4691,"src":"918:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4699,"id":4702,"nodeType":"Return","src":"911:21:25"}]},"id":4704,"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:25","nodeType":"FunctionDefinition","parameters":{"id":4696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4695,"mutability":"mutable","name":"counter","nameLocation":"860:7:25","nodeType":"VariableDeclaration","scope":4704,"src":"844:23:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":4694,"nodeType":"UserDefinedTypeName","pathNode":{"id":4693,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":4692,"src":"844:7:25"},"referencedDeclaration":4692,"src":"844:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:25"},"returnParameters":{"id":4699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4704,"src":"892:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4697,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:25"},"scope":4760,"src":"827:112:25","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4717,"nodeType":"Block","src":"998:70:25","statements":[{"id":4716,"nodeType":"UncheckedBlock","src":"1008:54:25","statements":[{"expression":{"id":4714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4710,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4707,"src":"1032:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":4712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":4691,"src":"1032:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4715,"nodeType":"ExpressionStatement","src":"1032:19:25"}]}]},"id":4718,"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:25","nodeType":"FunctionDefinition","parameters":{"id":4708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4707,"mutability":"mutable","name":"counter","nameLocation":"980:7:25","nodeType":"VariableDeclaration","scope":4718,"src":"964:23:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":4706,"nodeType":"UserDefinedTypeName","pathNode":{"id":4705,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":4692,"src":"964:7:25"},"referencedDeclaration":4692,"src":"964:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:25"},"returnParameters":{"id":4709,"nodeType":"ParameterList","parameters":[],"src":"998:0:25"},"scope":4760,"src":"945:123:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4745,"nodeType":"Block","src":"1127:176:25","statements":[{"assignments":[4725],"declarations":[{"constant":false,"id":4725,"mutability":"mutable","name":"value","nameLocation":"1145:5:25","nodeType":"VariableDeclaration","scope":4745,"src":"1137:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4724,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4728,"initialValue":{"expression":{"id":4726,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4721,"src":"1153:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":4727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":4691,"src":"1153:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4730,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4725,"src":"1185:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":4733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""},"value":"Counter: decrement overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""}],"id":4729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1177:49:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4735,"nodeType":"ExpressionStatement","src":"1177:49:25"},{"id":4744,"nodeType":"UncheckedBlock","src":"1236:61:25","statements":[{"expression":{"id":4742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4736,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4721,"src":"1260:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":4738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":4691,"src":"1260:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4739,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4725,"src":"1277:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4743,"nodeType":"ExpressionStatement","src":"1260:26:25"}]}]},"id":4746,"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:25","nodeType":"FunctionDefinition","parameters":{"id":4722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4721,"mutability":"mutable","name":"counter","nameLocation":"1109:7:25","nodeType":"VariableDeclaration","scope":4746,"src":"1093:23:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":4720,"nodeType":"UserDefinedTypeName","pathNode":{"id":4719,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":4692,"src":"1093:7:25"},"referencedDeclaration":4692,"src":"1093:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:25"},"returnParameters":{"id":4723,"nodeType":"ParameterList","parameters":[],"src":"1127:0:25"},"scope":4760,"src":"1074:229:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4758,"nodeType":"Block","src":"1358:35:25","statements":[{"expression":{"id":4756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4752,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4749,"src":"1368:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":4754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":4691,"src":"1368:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":4755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4757,"nodeType":"ExpressionStatement","src":"1368:18:25"}]},"id":4759,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:25","nodeType":"FunctionDefinition","parameters":{"id":4750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4749,"mutability":"mutable","name":"counter","nameLocation":"1340:7:25","nodeType":"VariableDeclaration","scope":4759,"src":"1324:23:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":4748,"nodeType":"UserDefinedTypeName","pathNode":{"id":4747,"name":"Counter","nodeType":"IdentifierPath","referencedDeclaration":4692,"src":"1324:7:25"},"referencedDeclaration":4692,"src":"1324:7:25","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$4692_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:25"},"returnParameters":{"id":4751,"nodeType":"ParameterList","parameters":[],"src":"1358:0:25"},"scope":4760,"src":"1309:84:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":4761,"src":"424:971:25","usedErrors":[]}],"src":"87:1309:25"},"id":25},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[6853],"Strings":[4935]},"id":4936,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4762,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:26"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":4763,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4936,"sourceUnit":6854,"src":"126:25:26","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":4764,"nodeType":"StructuredDocumentation","src":"153:34:26","text":" @dev String operations."},"fullyImplemented":true,"id":4935,"linearizedBaseContracts":[4935],"name":"Strings","nameLocation":"196:7:26","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4767,"mutability":"constant","name":"_SYMBOLS","nameLocation":"235:8:26","nodeType":"VariableDeclaration","scope":4935,"src":"210:54:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":4765,"name":"bytes16","nodeType":"ElementaryTypeName","src":"210:7:26","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":4766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246:18:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":4770,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"293:15:26","nodeType":"VariableDeclaration","scope":4935,"src":"270:43:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4768,"name":"uint8","nodeType":"ElementaryTypeName","src":"270:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":4769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:2:26","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":4817,"nodeType":"Block","src":"486:625:26","statements":[{"id":4816,"nodeType":"UncheckedBlock","src":"496:609:26","statements":[{"assignments":[4779],"declarations":[{"constant":false,"id":4779,"mutability":"mutable","name":"length","nameLocation":"528:6:26","nodeType":"VariableDeclaration","scope":4816,"src":"520:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4778,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4786,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4782,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"548:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4780,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"537:4:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6853_$","typeString":"type(library Math)"}},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":6690,"src":"537:10:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"537:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"557:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"537:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"520:38:26"},{"assignments":[4788],"declarations":[{"constant":false,"id":4788,"mutability":"mutable","name":"buffer","nameLocation":"586:6:26","nodeType":"VariableDeclaration","scope":4816,"src":"572:20:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4787,"name":"string","nodeType":"ElementaryTypeName","src":"572:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4793,"initialValue":{"arguments":[{"id":4791,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4779,"src":"606:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"595:10:26","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":4789,"name":"string","nodeType":"ElementaryTypeName","src":"599:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":4792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"595:18:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"572:41:26"},{"assignments":[4795],"declarations":[{"constant":false,"id":4795,"mutability":"mutable","name":"ptr","nameLocation":"635:3:26","nodeType":"VariableDeclaration","scope":4816,"src":"627:11:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4794,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4796,"nodeType":"VariableDeclarationStatement","src":"627:11:26"},{"AST":{"nodeType":"YulBlock","src":"708:67:26","statements":[{"nodeType":"YulAssignment","src":"726:35:26","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"737:6:26"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"749:2:26","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"753:6:26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"745:3:26"},"nodeType":"YulFunctionCall","src":"745:15:26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"733:3:26"},"nodeType":"YulFunctionCall","src":"733:28:26"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"726:3:26"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":4788,"isOffset":false,"isSlot":false,"src":"737:6:26","valueSize":1},{"declaration":4779,"isOffset":false,"isSlot":false,"src":"753:6:26","valueSize":1},{"declaration":4795,"isOffset":false,"isSlot":false,"src":"726:3:26","valueSize":1}],"id":4797,"nodeType":"InlineAssembly","src":"699:76:26"},{"body":{"id":4812,"nodeType":"Block","src":"801:267:26","statements":[{"expression":{"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"819:5:26","subExpression":{"id":4799,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4795,"src":"819:3:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4801,"nodeType":"ExpressionStatement","src":"819:5:26"},{"AST":{"nodeType":"YulBlock","src":"902:84:26","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"932:3:26"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"946:5:26"},{"kind":"number","nodeType":"YulLiteral","src":"953:2:26","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"942:3:26"},"nodeType":"YulFunctionCall","src":"942:14:26"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"958:8:26"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"937:4:26"},"nodeType":"YulFunctionCall","src":"937:30:26"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"924:7:26"},"nodeType":"YulFunctionCall","src":"924:44:26"},"nodeType":"YulExpressionStatement","src":"924:44:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":4767,"isOffset":false,"isSlot":false,"src":"958:8:26","valueSize":1},{"declaration":4795,"isOffset":false,"isSlot":false,"src":"932:3:26","valueSize":1},{"declaration":4773,"isOffset":false,"isSlot":false,"src":"946:5:26","valueSize":1}],"id":4802,"nodeType":"InlineAssembly","src":"893:93:26"},{"expression":{"id":4805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4803,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"1003:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":4804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1012:2:26","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1003:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4806,"nodeType":"ExpressionStatement","src":"1003:11:26"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4807,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4773,"src":"1036:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1036:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4811,"nodeType":"IfStatement","src":"1032:21:26","trueBody":{"id":4810,"nodeType":"Break","src":"1048:5:26"}}]},"condition":{"hexValue":"74727565","id":4798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"795:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":4813,"nodeType":"WhileStatement","src":"788:280:26"},{"expression":{"id":4814,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"1088:6:26","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4777,"id":4815,"nodeType":"Return","src":"1081:13:26"}]}]},"documentation":{"id":4771,"nodeType":"StructuredDocumentation","src":"320:90:26","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":4818,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"424:8:26","nodeType":"FunctionDefinition","parameters":{"id":4774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4773,"mutability":"mutable","name":"value","nameLocation":"441:5:26","nodeType":"VariableDeclaration","scope":4818,"src":"433:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4772,"name":"uint256","nodeType":"ElementaryTypeName","src":"433:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"432:15:26"},"returnParameters":{"id":4777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4818,"src":"471:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4775,"name":"string","nodeType":"ElementaryTypeName","src":"471:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"470:15:26"},"scope":4935,"src":"415:696:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4837,"nodeType":"Block","src":"1290:100:26","statements":[{"id":4836,"nodeType":"UncheckedBlock","src":"1300:84:26","statements":[{"expression":{"arguments":[{"id":4827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4821,"src":"1343:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4821,"src":"1362:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4828,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"1350:4:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6853_$","typeString":"type(library Math)"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":6813,"src":"1350:11:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1350:18:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1350:22:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4826,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[4838,4914,4934],"referencedDeclaration":4914,"src":"1331:11:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":4834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1331:42:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4825,"id":4835,"nodeType":"Return","src":"1324:49:26"}]}]},"documentation":{"id":4819,"nodeType":"StructuredDocumentation","src":"1117:94:26","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":4838,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1225:11:26","nodeType":"FunctionDefinition","parameters":{"id":4822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4821,"mutability":"mutable","name":"value","nameLocation":"1245:5:26","nodeType":"VariableDeclaration","scope":4838,"src":"1237:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4820,"name":"uint256","nodeType":"ElementaryTypeName","src":"1237:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1236:15:26"},"returnParameters":{"id":4825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4838,"src":"1275:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4823,"name":"string","nodeType":"ElementaryTypeName","src":"1275:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1274:15:26"},"scope":4935,"src":"1216:174:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4913,"nodeType":"Block","src":"1603:347:26","statements":[{"assignments":[4849],"declarations":[{"constant":false,"id":4849,"mutability":"mutable","name":"buffer","nameLocation":"1626:6:26","nodeType":"VariableDeclaration","scope":4913,"src":"1613:19:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4848,"name":"bytes","nodeType":"ElementaryTypeName","src":"1613:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4858,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4853,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"1649:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1645:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":4855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1645:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1635:9:26","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4850,"name":"bytes","nodeType":"ElementaryTypeName","src":"1639:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1635:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1613:47:26"},{"expression":{"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4859,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4849,"src":"1670:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4861,"indexExpression":{"hexValue":"30","id":4860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1677:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1670:9:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":4862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1682:3:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1670:15:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":4864,"nodeType":"ExpressionStatement","src":"1670:15:26"},{"expression":{"id":4869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4865,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4849,"src":"1695:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4867,"indexExpression":{"hexValue":"31","id":4866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1702:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1695:9:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":4868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1707:3:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1695:15:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":4870,"nodeType":"ExpressionStatement","src":"1695:15:26"},{"body":{"id":4899,"nodeType":"Block","src":"1765:83:26","statements":[{"expression":{"id":4893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4885,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4849,"src":"1779:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4887,"indexExpression":{"id":4886,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"1786:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1779:9:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4888,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4767,"src":"1791:8:26","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":4892,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4889,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"1800:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":4890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:3:26","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1800:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1791:21:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1779:33:26","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":4894,"nodeType":"ExpressionStatement","src":"1779:33:26"},{"expression":{"id":4897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4895,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"1826:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":4896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1836:1:26","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1826:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4898,"nodeType":"ExpressionStatement","src":"1826:11:26"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"1753:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":4880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1753:5:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4900,"initializationExpression":{"assignments":[4872],"declarations":[{"constant":false,"id":4872,"mutability":"mutable","name":"i","nameLocation":"1733:1:26","nodeType":"VariableDeclaration","scope":4900,"src":"1725:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1725:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4878,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1737:1:26","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4874,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"1741:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1737:10:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1750:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1737:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1725:26:26"},"loopExpression":{"expression":{"id":4883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1760:3:26","subExpression":{"id":4882,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"1762:1:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4884,"nodeType":"ExpressionStatement","src":"1760:3:26"},"nodeType":"ForStatement","src":"1720:128:26"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4902,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"1865:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1874:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1865:10:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":4905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1877:34:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":4901,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1857:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1857:55:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4907,"nodeType":"ExpressionStatement","src":"1857:55:26"},{"expression":{"arguments":[{"id":4910,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4849,"src":"1936:6:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1929:6:26","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4908,"name":"string","nodeType":"ElementaryTypeName","src":"1929:6:26","typeDescriptions":{}}},"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1929:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4847,"id":4912,"nodeType":"Return","src":"1922:21:26"}]},"documentation":{"id":4839,"nodeType":"StructuredDocumentation","src":"1396:112:26","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":4914,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1522:11:26","nodeType":"FunctionDefinition","parameters":{"id":4844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4841,"mutability":"mutable","name":"value","nameLocation":"1542:5:26","nodeType":"VariableDeclaration","scope":4914,"src":"1534:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4840,"name":"uint256","nodeType":"ElementaryTypeName","src":"1534:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4843,"mutability":"mutable","name":"length","nameLocation":"1557:6:26","nodeType":"VariableDeclaration","scope":4914,"src":"1549:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1533:31:26"},"returnParameters":{"id":4847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4846,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4914,"src":"1588:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4845,"name":"string","nodeType":"ElementaryTypeName","src":"1588:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1587:15:26"},"scope":4935,"src":"1513:437:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4933,"nodeType":"Block","src":"2175:76:26","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":4927,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4917,"src":"2220:4:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2212:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4925,"name":"uint160","nodeType":"ElementaryTypeName","src":"2212:7:26","typeDescriptions":{}}},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2212:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2204:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4923,"name":"uint256","nodeType":"ElementaryTypeName","src":"2204:7:26","typeDescriptions":{}}},"id":4929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2204:22:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4930,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"2228:15:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4922,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[4838,4914,4934],"referencedDeclaration":4914,"src":"2192:11:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":4931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2192:52:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4921,"id":4932,"nodeType":"Return","src":"2185:59:26"}]},"documentation":{"id":4915,"nodeType":"StructuredDocumentation","src":"1956:141:26","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":4934,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2111:11:26","nodeType":"FunctionDefinition","parameters":{"id":4918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4917,"mutability":"mutable","name":"addr","nameLocation":"2131:4:26","nodeType":"VariableDeclaration","scope":4934,"src":"2123:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4916,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2122:14:26"},"returnParameters":{"id":4921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4934,"src":"2160:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4919,"name":"string","nodeType":"ElementaryTypeName","src":"2160:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2159:15:26"},"scope":4935,"src":"2102:149:26","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4936,"src":"188:2065:26","usedErrors":[]}],"src":"101:2153:26"},"id":26},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[5296],"Math":[6853],"Strings":[4935]},"id":5297,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4937,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:27"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":4938,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5297,"sourceUnit":4936,"src":"137:24:27","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":4939,"nodeType":"StructuredDocumentation","src":"163:205:27","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":5296,"linearizedBaseContracts":[5296],"name":"ECDSA","nameLocation":"377:5:27","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":4945,"members":[{"id":4940,"name":"NoError","nameLocation":"417:7:27","nodeType":"EnumValue","src":"417:7:27"},{"id":4941,"name":"InvalidSignature","nameLocation":"434:16:27","nodeType":"EnumValue","src":"434:16:27"},{"id":4942,"name":"InvalidSignatureLength","nameLocation":"460:22:27","nodeType":"EnumValue","src":"460:22:27"},{"id":4943,"name":"InvalidSignatureS","nameLocation":"492:17:27","nodeType":"EnumValue","src":"492:17:27"},{"id":4944,"name":"InvalidSignatureV","nameLocation":"519:17:27","nodeType":"EnumValue","src":"519:17:27"}],"name":"RecoverError","nameLocation":"394:12:27","nodeType":"EnumDefinition","src":"389:175:27"},{"body":{"id":4988,"nodeType":"Block","src":"624:457:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"id":4954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4951,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"638:5:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4952,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"647:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":4940,"src":"647:20:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"src":"638:29:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"id":4960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4957,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"734:5:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4958,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"743:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":4959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":4941,"src":"743:29:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"src":"734:38:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"id":4969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4966,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"843:5:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4967,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"852:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":4942,"src":"852:35:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"src":"843:44:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"id":4978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4975,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4948,"src":"965:5:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4976,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"974:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":4977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":4943,"src":"974:30:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"src":"965:39:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4984,"nodeType":"IfStatement","src":"961:114:27","trueBody":{"id":4983,"nodeType":"Block","src":"1006:69:27","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c7565","id":4980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1027:36:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""},"value":"ECDSA: invalid signature 's' value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""}],"id":4979,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1020:6:27","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1020:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4982,"nodeType":"ExpressionStatement","src":"1020:44:27"}]}},"id":4985,"nodeType":"IfStatement","src":"839:236:27","trueBody":{"id":4974,"nodeType":"Block","src":"889:66:27","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","id":4971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"910:33:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""},"value":"ECDSA: invalid signature length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""}],"id":4970,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"903:6:27","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"903:41:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4973,"nodeType":"ExpressionStatement","src":"903:41:27"}]}},"id":4986,"nodeType":"IfStatement","src":"730:345:27","trueBody":{"id":4965,"nodeType":"Block","src":"774:59:27","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","id":4962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"795:26:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""},"value":"ECDSA: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""}],"id":4961,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"788:6:27","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"788:34:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4964,"nodeType":"ExpressionStatement","src":"788:34:27"}]}},"id":4987,"nodeType":"IfStatement","src":"634:441:27","trueBody":{"id":4956,"nodeType":"Block","src":"669:55:27","statements":[{"functionReturnParameters":4950,"id":4955,"nodeType":"Return","src":"683:7:27"}]}}]},"id":4989,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"579:11:27","nodeType":"FunctionDefinition","parameters":{"id":4949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4948,"mutability":"mutable","name":"error","nameLocation":"604:5:27","nodeType":"VariableDeclaration","scope":4989,"src":"591:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":4947,"nodeType":"UserDefinedTypeName","pathNode":{"id":4946,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":4945,"src":"591:12:27"},"referencedDeclaration":4945,"src":"591:12:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"590:20:27"},"returnParameters":{"id":4950,"nodeType":"ParameterList","parameters":[],"src":"624:0:27"},"scope":5296,"src":"570:511:27","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":5034,"nodeType":"Block","src":"2249:626:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5002,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"2263:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2263:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":5004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:2:27","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2263:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5032,"nodeType":"Block","src":"2788:81:27","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":5026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:27","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":5025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2810:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5024,"name":"address","nodeType":"ElementaryTypeName","src":"2810:7:27","typeDescriptions":{}}},"id":5027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2810:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5028,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"2822:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":5029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":4942,"src":"2822:35:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}}],"id":5030,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2809:49:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":5001,"id":5031,"nodeType":"Return","src":"2802:56:27"}]},"id":5033,"nodeType":"IfStatement","src":"2259:610:27","trueBody":{"id":5023,"nodeType":"Block","src":"2287:495:27","statements":[{"assignments":[5007],"declarations":[{"constant":false,"id":5007,"mutability":"mutable","name":"r","nameLocation":"2309:1:27","nodeType":"VariableDeclaration","scope":5023,"src":"2301:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2301:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5008,"nodeType":"VariableDeclarationStatement","src":"2301:9:27"},{"assignments":[5010],"declarations":[{"constant":false,"id":5010,"mutability":"mutable","name":"s","nameLocation":"2332:1:27","nodeType":"VariableDeclaration","scope":5023,"src":"2324:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5009,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5011,"nodeType":"VariableDeclarationStatement","src":"2324:9:27"},{"assignments":[5013],"declarations":[{"constant":false,"id":5013,"mutability":"mutable","name":"v","nameLocation":"2353:1:27","nodeType":"VariableDeclaration","scope":5023,"src":"2347:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5012,"name":"uint8","nodeType":"ElementaryTypeName","src":"2347:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":5014,"nodeType":"VariableDeclarationStatement","src":"2347:7:27"},{"AST":{"nodeType":"YulBlock","src":"2555:171:27","statements":[{"nodeType":"YulAssignment","src":"2573:32:27","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2588:9:27"},{"kind":"number","nodeType":"YulLiteral","src":"2599:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:27"},"nodeType":"YulFunctionCall","src":"2584:20:27"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2578:5:27"},"nodeType":"YulFunctionCall","src":"2578:27:27"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2573:1:27"}]},{"nodeType":"YulAssignment","src":"2622:32:27","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2637:9:27"},{"kind":"number","nodeType":"YulLiteral","src":"2648:4:27","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2633:3:27"},"nodeType":"YulFunctionCall","src":"2633:20:27"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2627:5:27"},"nodeType":"YulFunctionCall","src":"2627:27:27"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2622:1:27"}]},{"nodeType":"YulAssignment","src":"2671:41:27","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2681:1:27","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2694:9:27"},{"kind":"number","nodeType":"YulLiteral","src":"2705:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2690:3:27"},"nodeType":"YulFunctionCall","src":"2690:20:27"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2684:5:27"},"nodeType":"YulFunctionCall","src":"2684:27:27"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2676:4:27"},"nodeType":"YulFunctionCall","src":"2676:36:27"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2671:1:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":5007,"isOffset":false,"isSlot":false,"src":"2573:1:27","valueSize":1},{"declaration":5010,"isOffset":false,"isSlot":false,"src":"2622:1:27","valueSize":1},{"declaration":4994,"isOffset":false,"isSlot":false,"src":"2588:9:27","valueSize":1},{"declaration":4994,"isOffset":false,"isSlot":false,"src":"2637:9:27","valueSize":1},{"declaration":4994,"isOffset":false,"isSlot":false,"src":"2694:9:27","valueSize":1},{"declaration":5013,"isOffset":false,"isSlot":false,"src":"2671:1:27","valueSize":1}],"id":5015,"nodeType":"InlineAssembly","src":"2546:180:27"},{"expression":{"arguments":[{"id":5017,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4992,"src":"2757:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5018,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5013,"src":"2763:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":5019,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5007,"src":"2766:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5020,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5010,"src":"2769:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5016,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[5035,5109,5203],"referencedDeclaration":5203,"src":"2746:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":5021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2746:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":5001,"id":5022,"nodeType":"Return","src":"2739:32:27"}]}}]},"documentation":{"id":4990,"nodeType":"StructuredDocumentation","src":"1087:1053:27","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"id":5035,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2154:10:27","nodeType":"FunctionDefinition","parameters":{"id":4995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4992,"mutability":"mutable","name":"hash","nameLocation":"2173:4:27","nodeType":"VariableDeclaration","scope":5035,"src":"2165:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2165:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4994,"mutability":"mutable","name":"signature","nameLocation":"2192:9:27","nodeType":"VariableDeclaration","scope":5035,"src":"2179:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4993,"name":"bytes","nodeType":"ElementaryTypeName","src":"2179:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2164:38:27"},"returnParameters":{"id":5001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5035,"src":"2226:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4996,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5035,"src":"2235:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":4999,"nodeType":"UserDefinedTypeName","pathNode":{"id":4998,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":4945,"src":"2235:12:27"},"referencedDeclaration":4945,"src":"2235:12:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"2225:23:27"},"scope":5296,"src":"2145:730:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5061,"nodeType":"Block","src":"3748:140:27","statements":[{"assignments":[5046,5049],"declarations":[{"constant":false,"id":5046,"mutability":"mutable","name":"recovered","nameLocation":"3767:9:27","nodeType":"VariableDeclaration","scope":5061,"src":"3759:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5045,"name":"address","nodeType":"ElementaryTypeName","src":"3759:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5049,"mutability":"mutable","name":"error","nameLocation":"3791:5:27","nodeType":"VariableDeclaration","scope":5061,"src":"3778:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":5048,"nodeType":"UserDefinedTypeName","pathNode":{"id":5047,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":4945,"src":"3778:12:27"},"referencedDeclaration":4945,"src":"3778:12:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":5054,"initialValue":{"arguments":[{"id":5051,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5038,"src":"3811:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5052,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5040,"src":"3817:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5050,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[5035,5109,5203],"referencedDeclaration":5035,"src":"3800:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":5053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3800:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"3758:69:27"},{"expression":{"arguments":[{"id":5056,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5049,"src":"3849:5:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}],"id":5055,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"3837:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$4945_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":5057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3837:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5058,"nodeType":"ExpressionStatement","src":"3837:18:27"},{"expression":{"id":5059,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"3872:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5044,"id":5060,"nodeType":"Return","src":"3865:16:27"}]},"documentation":{"id":5036,"nodeType":"StructuredDocumentation","src":"2881:775:27","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"id":5062,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3670:7:27","nodeType":"FunctionDefinition","parameters":{"id":5041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5038,"mutability":"mutable","name":"hash","nameLocation":"3686:4:27","nodeType":"VariableDeclaration","scope":5062,"src":"3678:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5040,"mutability":"mutable","name":"signature","nameLocation":"3705:9:27","nodeType":"VariableDeclaration","scope":5062,"src":"3692:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5039,"name":"bytes","nodeType":"ElementaryTypeName","src":"3692:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3677:38:27"},"returnParameters":{"id":5044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5062,"src":"3739:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5042,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3738:9:27"},"scope":5296,"src":"3661:227:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5108,"nodeType":"Block","src":"4275:203:27","statements":[{"assignments":[5078],"declarations":[{"constant":false,"id":5078,"mutability":"mutable","name":"s","nameLocation":"4293:1:27","nodeType":"VariableDeclaration","scope":5108,"src":"4285:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4285:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5085,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5079,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5069,"src":"4297:2:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":5082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4310:66:27","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":5081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4302:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4302:7:27","typeDescriptions":{}}},"id":5083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4302:75:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4297:80:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4285:92:27"},{"assignments":[5087],"declarations":[{"constant":false,"id":5087,"mutability":"mutable","name":"v","nameLocation":"4393:1:27","nodeType":"VariableDeclaration","scope":5108,"src":"4387:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5086,"name":"uint8","nodeType":"ElementaryTypeName","src":"4387:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":5100,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5092,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5069,"src":"4412:2:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4404:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5090,"name":"uint256","nodeType":"ElementaryTypeName","src":"4404:7:27","typeDescriptions":{}}},"id":5093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4404:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":5094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4419:3:27","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4404:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5096,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4403:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":5097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4426:2:27","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4403:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4397:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5088,"name":"uint8","nodeType":"ElementaryTypeName","src":"4397:5:27","typeDescriptions":{}}},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4397:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4387:42:27"},{"expression":{"arguments":[{"id":5102,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5065,"src":"4457:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5103,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"4463:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":5104,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5067,"src":"4466:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5078,"src":"4469:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5101,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[5035,5109,5203],"referencedDeclaration":5203,"src":"4446:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":5106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4446:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":5076,"id":5107,"nodeType":"Return","src":"4439:32:27"}]},"documentation":{"id":5063,"nodeType":"StructuredDocumentation","src":"3894:243:27","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"id":5109,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4151:10:27","nodeType":"FunctionDefinition","parameters":{"id":5070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5065,"mutability":"mutable","name":"hash","nameLocation":"4179:4:27","nodeType":"VariableDeclaration","scope":5109,"src":"4171:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4171:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5067,"mutability":"mutable","name":"r","nameLocation":"4201:1:27","nodeType":"VariableDeclaration","scope":5109,"src":"4193:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4193:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5069,"mutability":"mutable","name":"vs","nameLocation":"4220:2:27","nodeType":"VariableDeclaration","scope":5109,"src":"4212:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4212:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:67:27"},"returnParameters":{"id":5076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5109,"src":"4252:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5071,"name":"address","nodeType":"ElementaryTypeName","src":"4252:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5109,"src":"4261:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":5074,"nodeType":"UserDefinedTypeName","pathNode":{"id":5073,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":4945,"src":"4261:12:27"},"referencedDeclaration":4945,"src":"4261:12:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"4251:23:27"},"scope":5296,"src":"4142:336:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5138,"nodeType":"Block","src":"4759:136:27","statements":[{"assignments":[5122,5125],"declarations":[{"constant":false,"id":5122,"mutability":"mutable","name":"recovered","nameLocation":"4778:9:27","nodeType":"VariableDeclaration","scope":5138,"src":"4770:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5121,"name":"address","nodeType":"ElementaryTypeName","src":"4770:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5125,"mutability":"mutable","name":"error","nameLocation":"4802:5:27","nodeType":"VariableDeclaration","scope":5138,"src":"4789:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":5124,"nodeType":"UserDefinedTypeName","pathNode":{"id":5123,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":4945,"src":"4789:12:27"},"referencedDeclaration":4945,"src":"4789:12:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":5131,"initialValue":{"arguments":[{"id":5127,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5112,"src":"4822:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5128,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"4828:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5129,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4831:2:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5126,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[5035,5109,5203],"referencedDeclaration":5109,"src":"4811:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":5130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4811:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"4769:65:27"},{"expression":{"arguments":[{"id":5133,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5125,"src":"4856:5:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}],"id":5132,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"4844:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$4945_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":5134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4844:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5135,"nodeType":"ExpressionStatement","src":"4844:18:27"},{"expression":{"id":5136,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"4879:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5120,"id":5137,"nodeType":"Return","src":"4872:16:27"}]},"documentation":{"id":5110,"nodeType":"StructuredDocumentation","src":"4484:154:27","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"id":5139,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4652:7:27","nodeType":"FunctionDefinition","parameters":{"id":5117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5112,"mutability":"mutable","name":"hash","nameLocation":"4677:4:27","nodeType":"VariableDeclaration","scope":5139,"src":"4669:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4669:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5114,"mutability":"mutable","name":"r","nameLocation":"4699:1:27","nodeType":"VariableDeclaration","scope":5139,"src":"4691:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4691:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5116,"mutability":"mutable","name":"vs","nameLocation":"4718:2:27","nodeType":"VariableDeclaration","scope":5139,"src":"4710:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4710:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4659:67:27"},"returnParameters":{"id":5120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5139,"src":"4750:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5118,"name":"address","nodeType":"ElementaryTypeName","src":"4750:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4749:9:27"},"scope":5296,"src":"4643:252:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5202,"nodeType":"Block","src":"5218:1345:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5158,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5148,"src":"6114:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6106:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5156,"name":"uint256","nodeType":"ElementaryTypeName","src":"6106:7:27","typeDescriptions":{}}},"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6106:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":5160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6119:66:27","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6106:79:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5171,"nodeType":"IfStatement","src":"6102:161:27","trueBody":{"id":5170,"nodeType":"Block","src":"6187:76:27","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6217:1:27","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":5163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6209:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5162,"name":"address","nodeType":"ElementaryTypeName","src":"6209:7:27","typeDescriptions":{}}},"id":5165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6209:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5166,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"6221:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":5167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":4943,"src":"6221:30:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}}],"id":5168,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6208:44:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":5155,"id":5169,"nodeType":"Return","src":"6201:51:27"}]}},{"assignments":[5173],"declarations":[{"constant":false,"id":5173,"mutability":"mutable","name":"signer","nameLocation":"6365:6:27","nodeType":"VariableDeclaration","scope":5202,"src":"6357:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5172,"name":"address","nodeType":"ElementaryTypeName","src":"6357:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5180,"initialValue":{"arguments":[{"id":5175,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5142,"src":"6384:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5176,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5144,"src":"6390:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":5177,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5146,"src":"6393:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5178,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5148,"src":"6396:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5174,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6374:9:27","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":5179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6374:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6357:41:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5181,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"6412:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6430:1:27","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":5183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6422:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5182,"name":"address","nodeType":"ElementaryTypeName","src":"6422:7:27","typeDescriptions":{}}},"id":5185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6422:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6412:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5196,"nodeType":"IfStatement","src":"6408:101:27","trueBody":{"id":5195,"nodeType":"Block","src":"6434:75:27","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":5189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6464:1:27","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":5188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6456:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5187,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:27","typeDescriptions":{}}},"id":5190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6456:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5191,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"6468:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":5192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":4941,"src":"6468:29:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}}],"id":5193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6455:43:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":5155,"id":5194,"nodeType":"Return","src":"6448:50:27"}]}},{"expression":{"components":[{"id":5197,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"6527:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5198,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"6535:12:27","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$4945_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":5199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":4940,"src":"6535:20:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}}],"id":5200,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6526:30:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":5155,"id":5201,"nodeType":"Return","src":"6519:37:27"}]},"documentation":{"id":5140,"nodeType":"StructuredDocumentation","src":"4901:163:27","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"id":5203,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5078:10:27","nodeType":"FunctionDefinition","parameters":{"id":5149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5142,"mutability":"mutable","name":"hash","nameLocation":"5106:4:27","nodeType":"VariableDeclaration","scope":5203,"src":"5098:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5098:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5144,"mutability":"mutable","name":"v","nameLocation":"5126:1:27","nodeType":"VariableDeclaration","scope":5203,"src":"5120:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5143,"name":"uint8","nodeType":"ElementaryTypeName","src":"5120:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5146,"mutability":"mutable","name":"r","nameLocation":"5145:1:27","nodeType":"VariableDeclaration","scope":5203,"src":"5137:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5137:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5148,"mutability":"mutable","name":"s","nameLocation":"5164:1:27","nodeType":"VariableDeclaration","scope":5203,"src":"5156:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5156:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5088:83:27"},"returnParameters":{"id":5155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5203,"src":"5195:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5150,"name":"address","nodeType":"ElementaryTypeName","src":"5195:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5203,"src":"5204:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":5153,"nodeType":"UserDefinedTypeName","pathNode":{"id":5152,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":4945,"src":"5204:12:27"},"referencedDeclaration":4945,"src":"5204:12:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"5194:23:27"},"scope":5296,"src":"5069:1494:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5235,"nodeType":"Block","src":"6828:138:27","statements":[{"assignments":[5218,5221],"declarations":[{"constant":false,"id":5218,"mutability":"mutable","name":"recovered","nameLocation":"6847:9:27","nodeType":"VariableDeclaration","scope":5235,"src":"6839:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5217,"name":"address","nodeType":"ElementaryTypeName","src":"6839:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5221,"mutability":"mutable","name":"error","nameLocation":"6871:5:27","nodeType":"VariableDeclaration","scope":5235,"src":"6858:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":5220,"nodeType":"UserDefinedTypeName","pathNode":{"id":5219,"name":"RecoverError","nodeType":"IdentifierPath","referencedDeclaration":4945,"src":"6858:12:27"},"referencedDeclaration":4945,"src":"6858:12:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":5228,"initialValue":{"arguments":[{"id":5223,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"6891:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5224,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5208,"src":"6897:1:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":5225,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5210,"src":"6900:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5226,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"6903:1:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5222,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[5035,5109,5203],"referencedDeclaration":5203,"src":"6880:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":5227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6880:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$4945_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"6838:67:27"},{"expression":{"arguments":[{"id":5230,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"6927:5:27","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$4945","typeString":"enum ECDSA.RecoverError"}],"id":5229,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"6915:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$4945_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":5231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6915:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5232,"nodeType":"ExpressionStatement","src":"6915:18:27"},{"expression":{"id":5233,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"6950:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5216,"id":5234,"nodeType":"Return","src":"6943:16:27"}]},"documentation":{"id":5204,"nodeType":"StructuredDocumentation","src":"6569:122:27","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":5236,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6705:7:27","nodeType":"FunctionDefinition","parameters":{"id":5213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5206,"mutability":"mutable","name":"hash","nameLocation":"6730:4:27","nodeType":"VariableDeclaration","scope":5236,"src":"6722:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6722:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5208,"mutability":"mutable","name":"v","nameLocation":"6750:1:27","nodeType":"VariableDeclaration","scope":5236,"src":"6744:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5207,"name":"uint8","nodeType":"ElementaryTypeName","src":"6744:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5210,"mutability":"mutable","name":"r","nameLocation":"6769:1:27","nodeType":"VariableDeclaration","scope":5236,"src":"6761:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6761:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5212,"mutability":"mutable","name":"s","nameLocation":"6788:1:27","nodeType":"VariableDeclaration","scope":5236,"src":"6780:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6780:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6712:83:27"},"returnParameters":{"id":5216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5236,"src":"6819:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5214,"name":"address","nodeType":"ElementaryTypeName","src":"6819:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6818:9:27"},"scope":5296,"src":"6696:270:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5252,"nodeType":"Block","src":"7334:187:27","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":5247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7472:34:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},"value":"\u0019Ethereum Signed Message:\n32"},{"id":5248,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5239,"src":"7508:4:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5245,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7455:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7455:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7455:58:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5244,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7445:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7445:69:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5243,"id":5251,"nodeType":"Return","src":"7438:76:27"}]},"documentation":{"id":5237,"nodeType":"StructuredDocumentation","src":"6972:279:27","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":5253,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7265:22:27","nodeType":"FunctionDefinition","parameters":{"id":5240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5239,"mutability":"mutable","name":"hash","nameLocation":"7296:4:27","nodeType":"VariableDeclaration","scope":5253,"src":"7288:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7288:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7287:14:27"},"returnParameters":{"id":5243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5253,"src":"7325:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7325:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7324:9:27"},"scope":5296,"src":"7256:265:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5274,"nodeType":"Block","src":"7886:116:27","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":5264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7930:32:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":5267,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"7981:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7981:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5265,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4935,"src":"7964:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$4935_$","typeString":"type(library Strings)"}},"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"7964:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":5269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7964:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5270,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5256,"src":"7992:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5262,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7913:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7913:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7913:81:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5261,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7903:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7903:92:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5260,"id":5273,"nodeType":"Return","src":"7896:99:27"}]},"documentation":{"id":5254,"nodeType":"StructuredDocumentation","src":"7527:274:27","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":5275,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7815:22:27","nodeType":"FunctionDefinition","parameters":{"id":5257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5256,"mutability":"mutable","name":"s","nameLocation":"7851:1:27","nodeType":"VariableDeclaration","scope":5275,"src":"7838:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5255,"name":"bytes","nodeType":"ElementaryTypeName","src":"7838:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7837:16:27"},"returnParameters":{"id":5260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5275,"src":"7877:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7877:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7876:9:27"},"scope":5296,"src":"7806:196:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5294,"nodeType":"Block","src":"8443:92:27","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":5288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8487:10:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"id":5289,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5278,"src":"8499:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5290,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5280,"src":"8516:10:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8470:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"8470:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8470:57:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5285,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8460:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8460:68:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5284,"id":5293,"nodeType":"Return","src":"8453:75:27"}]},"documentation":{"id":5276,"nodeType":"StructuredDocumentation","src":"8008:328:27","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"id":5295,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"8350:15:27","nodeType":"FunctionDefinition","parameters":{"id":5281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5278,"mutability":"mutable","name":"domainSeparator","nameLocation":"8374:15:27","nodeType":"VariableDeclaration","scope":5295,"src":"8366:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8366:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5280,"mutability":"mutable","name":"structHash","nameLocation":"8399:10:27","nodeType":"VariableDeclaration","scope":5295,"src":"8391:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8391:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8365:45:27"},"returnParameters":{"id":5284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"8434:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8434:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8433:9:27"},"scope":5296,"src":"8341:194:27","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":5297,"src":"369:8168:27","usedErrors":[]}],"src":"112:8426:27"},"id":27},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","exportedSymbols":{"ECDSA":[5296],"EIP712":[5450],"Math":[6853],"Strings":[4935]},"id":5451,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5298,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:28"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":5299,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5451,"sourceUnit":5297,"src":"138:21:28","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":5300,"nodeType":"StructuredDocumentation","src":"161:1142:28","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n _Available since v3.4._"},"fullyImplemented":true,"id":5450,"linearizedBaseContracts":[5450],"name":"EIP712","nameLocation":"1322:6:28","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5302,"mutability":"immutable","name":"_CACHED_DOMAIN_SEPARATOR","nameLocation":"1598:24:28","nodeType":"VariableDeclaration","scope":5450,"src":"1572:50:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1572:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":5304,"mutability":"immutable","name":"_CACHED_CHAIN_ID","nameLocation":"1654:16:28","nodeType":"VariableDeclaration","scope":5450,"src":"1628:42:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5303,"name":"uint256","nodeType":"ElementaryTypeName","src":"1628:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":5306,"mutability":"immutable","name":"_CACHED_THIS","nameLocation":"1702:12:28","nodeType":"VariableDeclaration","scope":5450,"src":"1676:38:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5305,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":5308,"mutability":"immutable","name":"_HASHED_NAME","nameLocation":"1747:12:28","nodeType":"VariableDeclaration","scope":5450,"src":"1721:38:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1721:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":5310,"mutability":"immutable","name":"_HASHED_VERSION","nameLocation":"1791:15:28","nodeType":"VariableDeclaration","scope":5450,"src":"1765:41:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1765:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":5312,"mutability":"immutable","name":"_TYPE_HASH","nameLocation":"1838:10:28","nodeType":"VariableDeclaration","scope":5450,"src":"1812:36:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1812:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"body":{"id":5376,"nodeType":"Block","src":"2519:547:28","statements":[{"assignments":[5321],"declarations":[{"constant":false,"id":5321,"mutability":"mutable","name":"hashedName","nameLocation":"2537:10:28","nodeType":"VariableDeclaration","scope":5376,"src":"2529:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2529:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5328,"initialValue":{"arguments":[{"arguments":[{"id":5325,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5315,"src":"2566:4:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2560:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5323,"name":"bytes","nodeType":"ElementaryTypeName","src":"2560:5:28","typeDescriptions":{}}},"id":5326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2560:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5322,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2550:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2550:22:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2529:43:28"},{"assignments":[5330],"declarations":[{"constant":false,"id":5330,"mutability":"mutable","name":"hashedVersion","nameLocation":"2590:13:28","nodeType":"VariableDeclaration","scope":5376,"src":"2582:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2582:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5337,"initialValue":{"arguments":[{"arguments":[{"id":5334,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5317,"src":"2622:7:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2616:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5332,"name":"bytes","nodeType":"ElementaryTypeName","src":"2616:5:28","typeDescriptions":{}}},"id":5335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2616:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5331,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2606:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2606:25:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2582:49:28"},{"assignments":[5339],"declarations":[{"constant":false,"id":5339,"mutability":"mutable","name":"typeHash","nameLocation":"2649:8:28","nodeType":"VariableDeclaration","scope":5376,"src":"2641:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2641:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5343,"initialValue":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":5341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2683:84:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":5340,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2660:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2660:117:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2641:136:28"},{"expression":{"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5344,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5308,"src":"2787:12:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5345,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5321,"src":"2802:10:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2787:25:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5347,"nodeType":"ExpressionStatement","src":"2787:25:28"},{"expression":{"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5348,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5310,"src":"2822:15:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5349,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5330,"src":"2840:13:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2822:31:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5351,"nodeType":"ExpressionStatement","src":"2822:31:28"},{"expression":{"id":5355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5352,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5304,"src":"2863:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":5353,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2882:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2882:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2863:32:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5356,"nodeType":"ExpressionStatement","src":"2863:32:28"},{"expression":{"id":5363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5357,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5302,"src":"2905:24:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5359,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5339,"src":"2954:8:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5360,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5321,"src":"2964:10:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5361,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5330,"src":"2976:13:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5358,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"2932:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":5362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2932:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2905:85:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5364,"nodeType":"ExpressionStatement","src":"2905:85:28"},{"expression":{"id":5370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5365,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5306,"src":"3000:12:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5368,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3023:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$5450","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$5450","typeString":"contract EIP712"}],"id":5367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3015:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5366,"name":"address","nodeType":"ElementaryTypeName","src":"3015:7:28","typeDescriptions":{}}},"id":5369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3015:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3000:28:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5371,"nodeType":"ExpressionStatement","src":"3000:28:28"},{"expression":{"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5372,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"3038:10:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5373,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5339,"src":"3051:8:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3038:21:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5375,"nodeType":"ExpressionStatement","src":"3038:21:28"}]},"documentation":{"id":5313,"nodeType":"StructuredDocumentation","src":"1900:559:28","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"id":5377,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5315,"mutability":"mutable","name":"name","nameLocation":"2490:4:28","nodeType":"VariableDeclaration","scope":5377,"src":"2476:18:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5314,"name":"string","nodeType":"ElementaryTypeName","src":"2476:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5317,"mutability":"mutable","name":"version","nameLocation":"2510:7:28","nodeType":"VariableDeclaration","scope":5377,"src":"2496:21:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5316,"name":"string","nodeType":"ElementaryTypeName","src":"2496:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2475:43:28"},"returnParameters":{"id":5319,"nodeType":"ParameterList","parameters":[],"src":"2519:0:28"},"scope":5450,"src":"2464:602:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5405,"nodeType":"Block","src":"3214:246:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5385,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3236:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$5450","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$5450","typeString":"contract EIP712"}],"id":5384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5383,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:28","typeDescriptions":{}}},"id":5386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5387,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5306,"src":"3245:12:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3228:29:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5389,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3261:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3261:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5391,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5304,"src":"3278:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3261:33:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3228:66:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5403,"nodeType":"Block","src":"3358:96:28","statements":[{"expression":{"arguments":[{"id":5398,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5312,"src":"3401:10:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5399,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5308,"src":"3413:12:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5400,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5310,"src":"3427:15:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5397,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"3379:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":5401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3379:64:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5382,"id":5402,"nodeType":"Return","src":"3372:71:28"}]},"id":5404,"nodeType":"IfStatement","src":"3224:230:28","trueBody":{"id":5396,"nodeType":"Block","src":"3296:56:28","statements":[{"expression":{"id":5394,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5302,"src":"3317:24:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5382,"id":5395,"nodeType":"Return","src":"3310:31:28"}]}}]},"documentation":{"id":5378,"nodeType":"StructuredDocumentation","src":"3072:75:28","text":" @dev Returns the domain separator for the current chain."},"id":5406,"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3161:18:28","nodeType":"FunctionDefinition","parameters":{"id":5379,"nodeType":"ParameterList","parameters":[],"src":"3179:2:28"},"returnParameters":{"id":5382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5406,"src":"3205:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3205:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3204:9:28"},"scope":5450,"src":"3152:308:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5432,"nodeType":"Block","src":"3615:108:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":5420,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5408,"src":"3653:8:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5421,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"3663:8:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5422,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5412,"src":"3673:11:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5423,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3686:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3686:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":5427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3709:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$5450","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$5450","typeString":"contract EIP712"}],"id":5426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3701:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5425,"name":"address","nodeType":"ElementaryTypeName","src":"3701:7:28","typeDescriptions":{}}},"id":5428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3701:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3642:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3642:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3642:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5417,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3632:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3632:84:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5416,"id":5431,"nodeType":"Return","src":"3625:91:28"}]},"id":5433,"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3475:21:28","nodeType":"FunctionDefinition","parameters":{"id":5413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5408,"mutability":"mutable","name":"typeHash","nameLocation":"3514:8:28","nodeType":"VariableDeclaration","scope":5433,"src":"3506:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3506:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5410,"mutability":"mutable","name":"nameHash","nameLocation":"3540:8:28","nodeType":"VariableDeclaration","scope":5433,"src":"3532:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3532:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5412,"mutability":"mutable","name":"versionHash","nameLocation":"3566:11:28","nodeType":"VariableDeclaration","scope":5433,"src":"3558:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3558:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3496:87:28"},"returnParameters":{"id":5416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5433,"src":"3606:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3606:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3605:9:28"},"scope":5450,"src":"3466:257:28","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":5448,"nodeType":"Block","src":"4434:79:28","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5443,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"4473:18:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":5444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4473:20:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5445,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"4495:10:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5441,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5296,"src":"4451:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$5296_$","typeString":"type(library ECDSA)"}},"id":5442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"4451:21:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4451:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5440,"id":5447,"nodeType":"Return","src":"4444:62:28"}]},"documentation":{"id":5434,"nodeType":"StructuredDocumentation","src":"3729:614:28","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     keccak256(\"Mail(address to,string contents)\"),\n     mailTo,\n     keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"id":5449,"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4357:16:28","nodeType":"FunctionDefinition","parameters":{"id":5437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5436,"mutability":"mutable","name":"structHash","nameLocation":"4382:10:28","nodeType":"VariableDeclaration","scope":5449,"src":"4374:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4374:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4373:20:28"},"returnParameters":{"id":5440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5449,"src":"4425:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4425:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4424:9:28"},"scope":5450,"src":"4348:165:28","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":5451,"src":"1304:3211:28","usedErrors":[]}],"src":"113:4403:28"},"id":28},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","exportedSymbols":{"MerkleProof":[5952]},"id":5953,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5452,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:29"},{"abstract":false,"baseContracts":[],"canonicalName":"MerkleProof","contractDependencies":[],"contractKind":"library","documentation":{"id":5453,"nodeType":"StructuredDocumentation","src":"143:658:29","text":" @dev These functions deal with verification of Merkle Tree proofs.\n The tree and the proofs can be generated using our\n https://github.com/OpenZeppelin/merkle-tree[JavaScript library].\n You will find a quickstart guide in the readme.\n WARNING: You should avoid using leaf values that are 64 bytes long prior to\n hashing, or use a hash function other than keccak256 for hashing leaves.\n This is because the concatenation of a sorted pair of internal nodes in\n the merkle tree could be reinterpreted as a leaf value.\n OpenZeppelin's JavaScript library generates merkle trees that are safe\n against this attack out of the box."},"fullyImplemented":true,"id":5952,"linearizedBaseContracts":[5952],"name":"MerkleProof","nameLocation":"810:11:29","nodeType":"ContractDefinition","nodes":[{"body":{"id":5473,"nodeType":"Block","src":"1283:57:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5467,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5457,"src":"1313:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":5468,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5461,"src":"1320:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5466,"name":"processProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"1300:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bytes32) pure returns (bytes32)"}},"id":5469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1300:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5470,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5459,"src":"1329:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1300:33:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5465,"id":5472,"nodeType":"Return","src":"1293:40:29"}]},"documentation":{"id":5454,"nodeType":"StructuredDocumentation","src":"828:323:29","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted."},"id":5474,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1165:6:29","nodeType":"FunctionDefinition","parameters":{"id":5462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5457,"mutability":"mutable","name":"proof","nameLocation":"1198:5:29","nodeType":"VariableDeclaration","scope":5474,"src":"1181:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1181:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5456,"nodeType":"ArrayTypeName","src":"1181:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5459,"mutability":"mutable","name":"root","nameLocation":"1221:4:29","nodeType":"VariableDeclaration","scope":5474,"src":"1213:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1213:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5461,"mutability":"mutable","name":"leaf","nameLocation":"1243:4:29","nodeType":"VariableDeclaration","scope":5474,"src":"1235:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1235:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1171:82:29"},"returnParameters":{"id":5465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5474,"src":"1277:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5463,"name":"bool","nodeType":"ElementaryTypeName","src":"1277:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1276:6:29"},"scope":5952,"src":"1156:184:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5494,"nodeType":"Block","src":"1578:65:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5488,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5478,"src":"1616:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":5489,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5482,"src":"1623:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5487,"name":"processProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5575,"src":"1595:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32) pure returns (bytes32)"}},"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1595:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5491,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5480,"src":"1632:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1595:41:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5486,"id":5493,"nodeType":"Return","src":"1588:48:29"}]},"documentation":{"id":5475,"nodeType":"StructuredDocumentation","src":"1346:90:29","text":" @dev Calldata version of {verify}\n _Available since v4.7._"},"id":5495,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCalldata","nameLocation":"1450:14:29","nodeType":"FunctionDefinition","parameters":{"id":5483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5478,"mutability":"mutable","name":"proof","nameLocation":"1493:5:29","nodeType":"VariableDeclaration","scope":5495,"src":"1474:24:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5476,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1474:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5477,"nodeType":"ArrayTypeName","src":"1474:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5480,"mutability":"mutable","name":"root","nameLocation":"1516:4:29","nodeType":"VariableDeclaration","scope":5495,"src":"1508:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1508:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5482,"mutability":"mutable","name":"leaf","nameLocation":"1538:4:29","nodeType":"VariableDeclaration","scope":5495,"src":"1530:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1530:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1464:84:29"},"returnParameters":{"id":5486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5495,"src":"1572:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5484,"name":"bool","nodeType":"ElementaryTypeName","src":"1572:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1571:6:29"},"scope":5952,"src":"1441:202:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5534,"nodeType":"Block","src":"2086:198:29","statements":[{"assignments":[5507],"declarations":[{"constant":false,"id":5507,"mutability":"mutable","name":"computedHash","nameLocation":"2104:12:29","nodeType":"VariableDeclaration","scope":5534,"src":"2096:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2096:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5509,"initialValue":{"id":5508,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5501,"src":"2119:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2096:27:29"},{"body":{"id":5530,"nodeType":"Block","src":"2176:73:29","statements":[{"expression":{"id":5528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5521,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5507,"src":"2190:12:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5523,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5507,"src":"2215:12:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":5524,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5499,"src":"2229:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5526,"indexExpression":{"id":5525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"2235:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2229:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5522,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"2205:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2205:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2190:48:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5529,"nodeType":"ExpressionStatement","src":"2190:48:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5514,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"2153:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5515,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5499,"src":"2157:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2157:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2153:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5531,"initializationExpression":{"assignments":[5511],"declarations":[{"constant":false,"id":5511,"mutability":"mutable","name":"i","nameLocation":"2146:1:29","nodeType":"VariableDeclaration","scope":5531,"src":"2138:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5510,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5513,"initialValue":{"hexValue":"30","id":5512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2150:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2138:13:29"},"loopExpression":{"expression":{"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2171:3:29","subExpression":{"id":5518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5511,"src":"2171:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5520,"nodeType":"ExpressionStatement","src":"2171:3:29"},"nodeType":"ForStatement","src":"2133:116:29"},{"expression":{"id":5532,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5507,"src":"2265:12:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5505,"id":5533,"nodeType":"Return","src":"2258:19:29"}]},"documentation":{"id":5496,"nodeType":"StructuredDocumentation","src":"1649:340:29","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leafs & pre-images are assumed to be sorted.\n _Available since v4.4._"},"id":5535,"implemented":true,"kind":"function","modifiers":[],"name":"processProof","nameLocation":"2003:12:29","nodeType":"FunctionDefinition","parameters":{"id":5502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5499,"mutability":"mutable","name":"proof","nameLocation":"2033:5:29","nodeType":"VariableDeclaration","scope":5535,"src":"2016:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2016:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5498,"nodeType":"ArrayTypeName","src":"2016:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5501,"mutability":"mutable","name":"leaf","nameLocation":"2048:4:29","nodeType":"VariableDeclaration","scope":5535,"src":"2040:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2040:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2015:38:29"},"returnParameters":{"id":5505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5535,"src":"2077:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2077:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2076:9:29"},"scope":5952,"src":"1994:290:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5574,"nodeType":"Block","src":"2493:198:29","statements":[{"assignments":[5547],"declarations":[{"constant":false,"id":5547,"mutability":"mutable","name":"computedHash","nameLocation":"2511:12:29","nodeType":"VariableDeclaration","scope":5574,"src":"2503:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2503:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5549,"initialValue":{"id":5548,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5541,"src":"2526:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2503:27:29"},{"body":{"id":5570,"nodeType":"Block","src":"2583:73:29","statements":[{"expression":{"id":5568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5561,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"2597:12:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5563,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"2622:12:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":5564,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"2636:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":5566,"indexExpression":{"id":5565,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5551,"src":"2642:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2636:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5562,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"2612:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":5567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2612:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2597:48:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5569,"nodeType":"ExpressionStatement","src":"2597:48:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5551,"src":"2560:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5555,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"2564:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":5556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2564:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2560:16:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5571,"initializationExpression":{"assignments":[5551],"declarations":[{"constant":false,"id":5551,"mutability":"mutable","name":"i","nameLocation":"2553:1:29","nodeType":"VariableDeclaration","scope":5571,"src":"2545:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5550,"name":"uint256","nodeType":"ElementaryTypeName","src":"2545:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5553,"initialValue":{"hexValue":"30","id":5552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2557:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2545:13:29"},"loopExpression":{"expression":{"id":5559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2578:3:29","subExpression":{"id":5558,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5551,"src":"2578:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5560,"nodeType":"ExpressionStatement","src":"2578:3:29"},"nodeType":"ForStatement","src":"2540:116:29"},{"expression":{"id":5572,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"2672:12:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5545,"id":5573,"nodeType":"Return","src":"2665:19:29"}]},"documentation":{"id":5536,"nodeType":"StructuredDocumentation","src":"2290:96:29","text":" @dev Calldata version of {processProof}\n _Available since v4.7._"},"id":5575,"implemented":true,"kind":"function","modifiers":[],"name":"processProofCalldata","nameLocation":"2400:20:29","nodeType":"FunctionDefinition","parameters":{"id":5542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5539,"mutability":"mutable","name":"proof","nameLocation":"2440:5:29","nodeType":"VariableDeclaration","scope":5575,"src":"2421:24:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2421:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5538,"nodeType":"ArrayTypeName","src":"2421:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5541,"mutability":"mutable","name":"leaf","nameLocation":"2455:4:29","nodeType":"VariableDeclaration","scope":5575,"src":"2447:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2447:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2420:40:29"},"returnParameters":{"id":5545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5575,"src":"2484:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2484:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2483:9:29"},"scope":5952,"src":"2391:300:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5600,"nodeType":"Block","src":"3234:76:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5593,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"3269:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":5594,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5582,"src":"3276:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":5595,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5587,"src":"3288:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":5592,"name":"processMultiProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5772,"src":"3251:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bool[] memory,bytes32[] memory) pure returns (bytes32)"}},"id":5596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3251:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5597,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5584,"src":"3299:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3251:52:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5591,"id":5599,"nodeType":"Return","src":"3244:59:29"}]},"documentation":{"id":5576,"nodeType":"StructuredDocumentation","src":"2697:350:29","text":" @dev Returns true if the `leaves` can be simultaneously proven to be a part of a merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"id":5601,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerify","nameLocation":"3061:16:29","nodeType":"FunctionDefinition","parameters":{"id":5588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5579,"mutability":"mutable","name":"proof","nameLocation":"3104:5:29","nodeType":"VariableDeclaration","scope":5601,"src":"3087:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5578,"nodeType":"ArrayTypeName","src":"3087:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5582,"mutability":"mutable","name":"proofFlags","nameLocation":"3133:10:29","nodeType":"VariableDeclaration","scope":5601,"src":"3119:24:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":5580,"name":"bool","nodeType":"ElementaryTypeName","src":"3119:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5581,"nodeType":"ArrayTypeName","src":"3119:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":5584,"mutability":"mutable","name":"root","nameLocation":"3161:4:29","nodeType":"VariableDeclaration","scope":5601,"src":"3153:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3153:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5587,"mutability":"mutable","name":"leaves","nameLocation":"3192:6:29","nodeType":"VariableDeclaration","scope":5601,"src":"3175:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3175:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5586,"nodeType":"ArrayTypeName","src":"3175:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3077:127:29"},"returnParameters":{"id":5591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5601,"src":"3228:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5589,"name":"bool","nodeType":"ElementaryTypeName","src":"3228:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3227:6:29"},"scope":5952,"src":"3052:258:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5626,"nodeType":"Block","src":"3715:84:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5619,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"3758:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":5620,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5608,"src":"3765:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},{"id":5621,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5613,"src":"3777:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":5618,"name":"processMultiProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"3732:25:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_array$_t_bool_$dyn_calldata_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bool[] calldata,bytes32[] memory) pure returns (bytes32)"}},"id":5622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3732:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5623,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5610,"src":"3788:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3732:60:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5617,"id":5625,"nodeType":"Return","src":"3725:67:29"}]},"documentation":{"id":5602,"nodeType":"StructuredDocumentation","src":"3316:200:29","text":" @dev Calldata version of {multiProofVerify}\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"id":5627,"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerifyCalldata","nameLocation":"3530:24:29","nodeType":"FunctionDefinition","parameters":{"id":5614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5605,"mutability":"mutable","name":"proof","nameLocation":"3583:5:29","nodeType":"VariableDeclaration","scope":5627,"src":"3564:24:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3564:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5604,"nodeType":"ArrayTypeName","src":"3564:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5608,"mutability":"mutable","name":"proofFlags","nameLocation":"3614:10:29","nodeType":"VariableDeclaration","scope":5627,"src":"3598:26:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":5606,"name":"bool","nodeType":"ElementaryTypeName","src":"3598:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5607,"nodeType":"ArrayTypeName","src":"3598:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":5610,"mutability":"mutable","name":"root","nameLocation":"3642:4:29","nodeType":"VariableDeclaration","scope":5627,"src":"3634:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3634:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5613,"mutability":"mutable","name":"leaves","nameLocation":"3673:6:29","nodeType":"VariableDeclaration","scope":5627,"src":"3656:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3656:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5612,"nodeType":"ArrayTypeName","src":"3656:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3554:131:29"},"returnParameters":{"id":5617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5627,"src":"3709:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5615,"name":"bool","nodeType":"ElementaryTypeName","src":"3709:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3708:6:29"},"scope":5952,"src":"3521:278:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5771,"nodeType":"Block","src":"4753:1860:29","statements":[{"assignments":[5643],"declarations":[{"constant":false,"id":5643,"mutability":"mutable","name":"leavesLen","nameLocation":"5144:9:29","nodeType":"VariableDeclaration","scope":5771,"src":"5136:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5642,"name":"uint256","nodeType":"ElementaryTypeName","src":"5136:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5646,"initialValue":{"expression":{"id":5644,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5637,"src":"5156:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5156:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5136:33:29"},{"assignments":[5648],"declarations":[{"constant":false,"id":5648,"mutability":"mutable","name":"totalHashes","nameLocation":"5187:11:29","nodeType":"VariableDeclaration","scope":5771,"src":"5179:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5647,"name":"uint256","nodeType":"ElementaryTypeName","src":"5179:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5651,"initialValue":{"expression":{"id":5649,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"5201:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":5650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5201:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5179:39:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5653,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"5270:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":5654,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5631,"src":"5282:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5282:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5270:24:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5297:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5270:28:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5659,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"5302:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5270:43:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f66","id":5661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5315:33:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""},"value":"MerkleProof: invalid multiproof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""}],"id":5652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5262:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5262:87:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5663,"nodeType":"ExpressionStatement","src":"5262:87:29"},{"assignments":[5668],"declarations":[{"constant":false,"id":5668,"mutability":"mutable","name":"hashes","nameLocation":"5611:6:29","nodeType":"VariableDeclaration","scope":5771,"src":"5594:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5594:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5667,"nodeType":"ArrayTypeName","src":"5594:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":5674,"initialValue":{"arguments":[{"id":5672,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"5634:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5620:13:29","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":5669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5624:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5670,"nodeType":"ArrayTypeName","src":"5624:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5620:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5594:52:29"},{"assignments":[5676],"declarations":[{"constant":false,"id":5676,"mutability":"mutable","name":"leafPos","nameLocation":"5664:7:29","nodeType":"VariableDeclaration","scope":5771,"src":"5656:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5675,"name":"uint256","nodeType":"ElementaryTypeName","src":"5656:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5678,"initialValue":{"hexValue":"30","id":5677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5674:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5656:19:29"},{"assignments":[5680],"declarations":[{"constant":false,"id":5680,"mutability":"mutable","name":"hashPos","nameLocation":"5693:7:29","nodeType":"VariableDeclaration","scope":5771,"src":"5685:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5679,"name":"uint256","nodeType":"ElementaryTypeName","src":"5685:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5682,"initialValue":{"hexValue":"30","id":5681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5703:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5685:19:29"},{"assignments":[5684],"declarations":[{"constant":false,"id":5684,"mutability":"mutable","name":"proofPos","nameLocation":"5722:8:29","nodeType":"VariableDeclaration","scope":5771,"src":"5714:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5683,"name":"uint256","nodeType":"ElementaryTypeName","src":"5714:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5686,"initialValue":{"hexValue":"30","id":5685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5733:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5714:20:29"},{"body":{"id":5744,"nodeType":"Block","src":"6151:258:29","statements":[{"assignments":[5698],"declarations":[{"constant":false,"id":5698,"mutability":"mutable","name":"a","nameLocation":"6173:1:29","nodeType":"VariableDeclaration","scope":5744,"src":"6165:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6165:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5711,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5699,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"6177:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5700,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"6187:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6177:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":5706,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"6219:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5709,"indexExpression":{"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6226:9:29","subExpression":{"id":5707,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5680,"src":"6226:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6219:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6177:59:29","trueExpression":{"baseExpression":{"id":5702,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5637,"src":"6199:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5705,"indexExpression":{"id":5704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6206:9:29","subExpression":{"id":5703,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"6206:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6199:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6165:71:29"},{"assignments":[5713],"declarations":[{"constant":false,"id":5713,"mutability":"mutable","name":"b","nameLocation":"6258:1:29","nodeType":"VariableDeclaration","scope":5744,"src":"6250:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6250:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5734,"initialValue":{"condition":{"baseExpression":{"id":5714,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"6262:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":5716,"indexExpression":{"id":5715,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"6273:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6262:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":5729,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5631,"src":"6340:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5732,"indexExpression":{"id":5731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6346:10:29","subExpression":{"id":5730,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5684,"src":"6346:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6340:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6262:95:29","trueExpression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5717,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"6278:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5718,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"6288:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6278:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":5724,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"6320:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5727,"indexExpression":{"id":5726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6327:9:29","subExpression":{"id":5725,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5680,"src":"6327:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6320:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6278:59:29","trueExpression":{"baseExpression":{"id":5720,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5637,"src":"6300:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5723,"indexExpression":{"id":5722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6307:9:29","subExpression":{"id":5721,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"6307:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6300:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6250:107:29"},{"expression":{"id":5742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5735,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"6371:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5737,"indexExpression":{"id":5736,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"6378:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6371:9:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5739,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5698,"src":"6393:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5740,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5713,"src":"6396:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5738,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"6383:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6383:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6371:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5743,"nodeType":"ExpressionStatement","src":"6371:27:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5691,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"6129:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5692,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"6133:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6129:15:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5745,"initializationExpression":{"assignments":[5688],"declarations":[{"constant":false,"id":5688,"mutability":"mutable","name":"i","nameLocation":"6122:1:29","nodeType":"VariableDeclaration","scope":5745,"src":"6114:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5687,"name":"uint256","nodeType":"ElementaryTypeName","src":"6114:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5690,"initialValue":{"hexValue":"30","id":5689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6126:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6114:13:29"},"loopExpression":{"expression":{"id":5695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6146:3:29","subExpression":{"id":5694,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"6146:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5696,"nodeType":"ExpressionStatement","src":"6146:3:29"},"nodeType":"ForStatement","src":"6109:300:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5746,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"6423:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6437:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6423:15:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5756,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5643,"src":"6505:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6517:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6505:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5768,"nodeType":"Block","src":"6567:40:29","statements":[{"expression":{"baseExpression":{"id":5764,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5631,"src":"6588:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5766,"indexExpression":{"hexValue":"30","id":5765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6594:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6588:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5641,"id":5767,"nodeType":"Return","src":"6581:15:29"}]},"id":5769,"nodeType":"IfStatement","src":"6501:106:29","trueBody":{"id":5763,"nodeType":"Block","src":"6520:41:29","statements":[{"expression":{"baseExpression":{"id":5759,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5637,"src":"6541:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5761,"indexExpression":{"hexValue":"30","id":5760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6548:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6541:9:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5641,"id":5762,"nodeType":"Return","src":"6534:16:29"}]}},"id":5770,"nodeType":"IfStatement","src":"6419:188:29","trueBody":{"id":5755,"nodeType":"Block","src":"6440:55:29","statements":[{"expression":{"baseExpression":{"id":5749,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"6461:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5753,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5750,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"6468:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6482:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6468:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6461:23:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5641,"id":5754,"nodeType":"Return","src":"6454:30:29"}]}}]},"documentation":{"id":5628,"nodeType":"StructuredDocumentation","src":"3805:768:29","text":" @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n respectively.\n CAUTION: Not all merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n _Available since v4.7._"},"id":5772,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProof","nameLocation":"4587:17:29","nodeType":"FunctionDefinition","parameters":{"id":5638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5631,"mutability":"mutable","name":"proof","nameLocation":"4631:5:29","nodeType":"VariableDeclaration","scope":5772,"src":"4614:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4614:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5630,"nodeType":"ArrayTypeName","src":"4614:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5634,"mutability":"mutable","name":"proofFlags","nameLocation":"4660:10:29","nodeType":"VariableDeclaration","scope":5772,"src":"4646:24:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":5632,"name":"bool","nodeType":"ElementaryTypeName","src":"4646:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5633,"nodeType":"ArrayTypeName","src":"4646:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":5637,"mutability":"mutable","name":"leaves","nameLocation":"4697:6:29","nodeType":"VariableDeclaration","scope":5772,"src":"4680:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4680:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5636,"nodeType":"ArrayTypeName","src":"4680:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4604:105:29"},"returnParameters":{"id":5641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5640,"mutability":"mutable","name":"merkleRoot","nameLocation":"4741:10:29","nodeType":"VariableDeclaration","scope":5772,"src":"4733:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4733:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4732:20:29"},"scope":5952,"src":"4578:2035:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5916,"nodeType":"Block","src":"7013:1860:29","statements":[{"assignments":[5788],"declarations":[{"constant":false,"id":5788,"mutability":"mutable","name":"leavesLen","nameLocation":"7404:9:29","nodeType":"VariableDeclaration","scope":5916,"src":"7396:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5787,"name":"uint256","nodeType":"ElementaryTypeName","src":"7396:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5791,"initialValue":{"expression":{"id":5789,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"7416:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7416:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7396:33:29"},{"assignments":[5793],"declarations":[{"constant":false,"id":5793,"mutability":"mutable","name":"totalHashes","nameLocation":"7447:11:29","nodeType":"VariableDeclaration","scope":5916,"src":"7439:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5792,"name":"uint256","nodeType":"ElementaryTypeName","src":"7439:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5796,"initialValue":{"expression":{"id":5794,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"7461:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":5795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7461:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7439:39:29"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5798,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5788,"src":"7530:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":5799,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"7542:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":5800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7542:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7530:24:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7557:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7530:28:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5804,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"7562:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7530:43:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f66","id":5806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7575:33:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""},"value":"MerkleProof: invalid multiproof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ffedb6c6cbea997e7c1340fc6ef8db6298ec2fb1f2ffb34b77ce45e725b2049","typeString":"literal_string \"MerkleProof: invalid multiproof\""}],"id":5797,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7522:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7522:87:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5808,"nodeType":"ExpressionStatement","src":"7522:87:29"},{"assignments":[5813],"declarations":[{"constant":false,"id":5813,"mutability":"mutable","name":"hashes","nameLocation":"7871:6:29","nodeType":"VariableDeclaration","scope":5916,"src":"7854:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5811,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7854:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5812,"nodeType":"ArrayTypeName","src":"7854:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":5819,"initialValue":{"arguments":[{"id":5817,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"7894:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7880:13:29","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":5814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7884:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5815,"nodeType":"ArrayTypeName","src":"7884:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":5818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7880:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7854:52:29"},{"assignments":[5821],"declarations":[{"constant":false,"id":5821,"mutability":"mutable","name":"leafPos","nameLocation":"7924:7:29","nodeType":"VariableDeclaration","scope":5916,"src":"7916:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5820,"name":"uint256","nodeType":"ElementaryTypeName","src":"7916:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5823,"initialValue":{"hexValue":"30","id":5822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7934:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7916:19:29"},{"assignments":[5825],"declarations":[{"constant":false,"id":5825,"mutability":"mutable","name":"hashPos","nameLocation":"7953:7:29","nodeType":"VariableDeclaration","scope":5916,"src":"7945:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5824,"name":"uint256","nodeType":"ElementaryTypeName","src":"7945:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5827,"initialValue":{"hexValue":"30","id":5826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7945:19:29"},{"assignments":[5829],"declarations":[{"constant":false,"id":5829,"mutability":"mutable","name":"proofPos","nameLocation":"7982:8:29","nodeType":"VariableDeclaration","scope":5916,"src":"7974:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5828,"name":"uint256","nodeType":"ElementaryTypeName","src":"7974:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5831,"initialValue":{"hexValue":"30","id":5830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7993:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7974:20:29"},{"body":{"id":5889,"nodeType":"Block","src":"8411:258:29","statements":[{"assignments":[5843],"declarations":[{"constant":false,"id":5843,"mutability":"mutable","name":"a","nameLocation":"8433:1:29","nodeType":"VariableDeclaration","scope":5889,"src":"8425:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8425:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5856,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5844,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"8437:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5845,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5788,"src":"8447:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8437:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":5851,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"8479:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5854,"indexExpression":{"id":5853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8486:9:29","subExpression":{"id":5852,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5825,"src":"8486:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8479:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:59:29","trueExpression":{"baseExpression":{"id":5847,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"8459:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5850,"indexExpression":{"id":5849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8466:9:29","subExpression":{"id":5848,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"8466:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8459:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8425:71:29"},{"assignments":[5858],"declarations":[{"constant":false,"id":5858,"mutability":"mutable","name":"b","nameLocation":"8518:1:29","nodeType":"VariableDeclaration","scope":5889,"src":"8510:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8510:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5879,"initialValue":{"condition":{"baseExpression":{"id":5859,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"8522:10:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":5861,"indexExpression":{"id":5860,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"8533:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8522:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":5874,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"8600:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":5877,"indexExpression":{"id":5876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8606:10:29","subExpression":{"id":5875,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5829,"src":"8606:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8600:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8522:95:29","trueExpression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5862,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"8538:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5863,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5788,"src":"8548:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8538:19:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":5869,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"8580:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5872,"indexExpression":{"id":5871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8587:9:29","subExpression":{"id":5870,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5825,"src":"8587:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8580:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8538:59:29","trueExpression":{"baseExpression":{"id":5865,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"8560:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5868,"indexExpression":{"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8567:9:29","subExpression":{"id":5866,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"8567:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8560:17:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8510:107:29"},{"expression":{"id":5887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5880,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"8631:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5882,"indexExpression":{"id":5881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"8638:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8631:9:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5884,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5843,"src":"8653:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5885,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5858,"src":"8656:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5883,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"8643:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":5886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8643:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8631:27:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5888,"nodeType":"ExpressionStatement","src":"8631:27:29"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"8389:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5837,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"8393:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8389:15:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5890,"initializationExpression":{"assignments":[5833],"declarations":[{"constant":false,"id":5833,"mutability":"mutable","name":"i","nameLocation":"8382:1:29","nodeType":"VariableDeclaration","scope":5890,"src":"8374:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5832,"name":"uint256","nodeType":"ElementaryTypeName","src":"8374:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5835,"initialValue":{"hexValue":"30","id":5834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8386:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8374:13:29"},"loopExpression":{"expression":{"id":5840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8406:3:29","subExpression":{"id":5839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"8406:1:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5841,"nodeType":"ExpressionStatement","src":"8406:3:29"},"nodeType":"ForStatement","src":"8369:300:29"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5891,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"8683:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8697:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8683:15:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5901,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5788,"src":"8765:9:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8777:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8765:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5913,"nodeType":"Block","src":"8827:40:29","statements":[{"expression":{"baseExpression":{"id":5909,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"8848:5:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":5911,"indexExpression":{"hexValue":"30","id":5910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8854:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8848:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5786,"id":5912,"nodeType":"Return","src":"8841:15:29"}]},"id":5914,"nodeType":"IfStatement","src":"8761:106:29","trueBody":{"id":5908,"nodeType":"Block","src":"8780:41:29","statements":[{"expression":{"baseExpression":{"id":5904,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"8801:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5906,"indexExpression":{"hexValue":"30","id":5905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8808:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8801:9:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5786,"id":5907,"nodeType":"Return","src":"8794:16:29"}]}},"id":5915,"nodeType":"IfStatement","src":"8679:188:29","trueBody":{"id":5900,"nodeType":"Block","src":"8700:55:29","statements":[{"expression":{"baseExpression":{"id":5894,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"8721:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5898,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5895,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"8728:11:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8742:1:29","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8728:15:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8721:23:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5786,"id":5899,"nodeType":"Return","src":"8714:30:29"}]}}]},"documentation":{"id":5773,"nodeType":"StructuredDocumentation","src":"6619:202:29","text":" @dev Calldata version of {processMultiProof}.\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"id":5917,"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProofCalldata","nameLocation":"6835:25:29","nodeType":"FunctionDefinition","parameters":{"id":5783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5776,"mutability":"mutable","name":"proof","nameLocation":"6889:5:29","nodeType":"VariableDeclaration","scope":5917,"src":"6870:24:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6870:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5775,"nodeType":"ArrayTypeName","src":"6870:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":5779,"mutability":"mutable","name":"proofFlags","nameLocation":"6920:10:29","nodeType":"VariableDeclaration","scope":5917,"src":"6904:26:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":5777,"name":"bool","nodeType":"ElementaryTypeName","src":"6904:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5778,"nodeType":"ArrayTypeName","src":"6904:6:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":5782,"mutability":"mutable","name":"leaves","nameLocation":"6957:6:29","nodeType":"VariableDeclaration","scope":5917,"src":"6940:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6940:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5781,"nodeType":"ArrayTypeName","src":"6940:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6860:109:29"},"returnParameters":{"id":5786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5785,"mutability":"mutable","name":"merkleRoot","nameLocation":"7001:10:29","nodeType":"VariableDeclaration","scope":5917,"src":"6993:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6993:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6992:20:29"},"scope":5952,"src":"6826:2047:29","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5939,"nodeType":"Block","src":"8951:75:29","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5926,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5919,"src":"8968:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5927,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"8972:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8968:5:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":5934,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"9014:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5935,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5919,"src":"9017:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5933,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"8999:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":5936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8999:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8968:51:29","trueExpression":{"arguments":[{"id":5930,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5919,"src":"8991:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5931,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"8994:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5929,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"8976:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":5932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8976:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5925,"id":5938,"nodeType":"Return","src":"8961:58:29"}]},"id":5940,"implemented":true,"kind":"function","modifiers":[],"name":"_hashPair","nameLocation":"8888:9:29","nodeType":"FunctionDefinition","parameters":{"id":5922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5919,"mutability":"mutable","name":"a","nameLocation":"8906:1:29","nodeType":"VariableDeclaration","scope":5940,"src":"8898:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5918,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8898:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5921,"mutability":"mutable","name":"b","nameLocation":"8917:1:29","nodeType":"VariableDeclaration","scope":5940,"src":"8909:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8909:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8897:22:29"},"returnParameters":{"id":5925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5940,"src":"8942:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8942:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8941:9:29"},"scope":5952,"src":"8879:147:29","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":5950,"nodeType":"Block","src":"9115:178:29","statements":[{"AST":{"nodeType":"YulBlock","src":"9177:110:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9198:4:29","type":"","value":"0x00"},{"name":"a","nodeType":"YulIdentifier","src":"9204:1:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9191:6:29"},"nodeType":"YulFunctionCall","src":"9191:15:29"},"nodeType":"YulExpressionStatement","src":"9191:15:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9226:4:29","type":"","value":"0x20"},{"name":"b","nodeType":"YulIdentifier","src":"9232:1:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9219:6:29"},"nodeType":"YulFunctionCall","src":"9219:15:29"},"nodeType":"YulExpressionStatement","src":"9219:15:29"},{"nodeType":"YulAssignment","src":"9247:30:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9266:4:29","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"9272:4:29","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9256:9:29"},"nodeType":"YulFunctionCall","src":"9256:21:29"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9247:5:29"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":5942,"isOffset":false,"isSlot":false,"src":"9204:1:29","valueSize":1},{"declaration":5944,"isOffset":false,"isSlot":false,"src":"9232:1:29","valueSize":1},{"declaration":5947,"isOffset":false,"isSlot":false,"src":"9247:5:29","valueSize":1}],"id":5949,"nodeType":"InlineAssembly","src":"9168:119:29"}]},"id":5951,"implemented":true,"kind":"function","modifiers":[],"name":"_efficientHash","nameLocation":"9041:14:29","nodeType":"FunctionDefinition","parameters":{"id":5945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5942,"mutability":"mutable","name":"a","nameLocation":"9064:1:29","nodeType":"VariableDeclaration","scope":5951,"src":"9056:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9056:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5944,"mutability":"mutable","name":"b","nameLocation":"9075:1:29","nodeType":"VariableDeclaration","scope":5951,"src":"9067:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5943,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9067:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9055:22:29"},"returnParameters":{"id":5948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5947,"mutability":"mutable","name":"value","nameLocation":"9108:5:29","nodeType":"VariableDeclaration","scope":5951,"src":"9100:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9100:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9099:15:29"},"scope":5952,"src":"9032:261:29","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":5953,"src":"802:8493:29","usedErrors":[]}],"src":"118:9178:29"},"id":29},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[5976],"IERC165":[5988]},"id":5977,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5954,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:30"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":5955,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5977,"sourceUnit":5989,"src":"124:23:30","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5957,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":5988,"src":"754:7:30"},"id":5958,"nodeType":"InheritanceSpecifier","src":"754:7:30"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":5956,"nodeType":"StructuredDocumentation","src":"149:576:30","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":5976,"linearizedBaseContracts":[5976,5988],"name":"ERC165","nameLocation":"744:6:30","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[5987],"body":{"id":5974,"nodeType":"Block","src":"920:64:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5967,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"937:11:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5969,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5988,"src":"957:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$5988_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$5988_$","typeString":"type(contract IERC165)"}],"id":5968,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$5988","typeString":"type(contract IERC165)"}},"id":5971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5966,"id":5973,"nodeType":"Return","src":"930:47:30"}]},"documentation":{"id":5959,"nodeType":"StructuredDocumentation","src":"768:56:30","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":5975,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:30","nodeType":"FunctionDefinition","overrides":{"id":5963,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:30"},"parameters":{"id":5962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5961,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:30","nodeType":"VariableDeclaration","scope":5975,"src":"856:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5960,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:30"},"returnParameters":{"id":5966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5975,"src":"914:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5964,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:30"},"scope":5976,"src":"829:155:30","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":5977,"src":"726:260:30","usedErrors":[]}],"src":"99:888:30"},"id":30},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[5988]},"id":5989,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5978,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:31"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":5979,"nodeType":"StructuredDocumentation","src":"125:279:31","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":5988,"linearizedBaseContracts":[5988],"name":"IERC165","nameLocation":"415:7:31","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5980,"nodeType":"StructuredDocumentation","src":"429:340:31","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":5987,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:31","nodeType":"FunctionDefinition","parameters":{"id":5983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5982,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:31","nodeType":"VariableDeclaration","scope":5987,"src":"801:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5981,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:31"},"returnParameters":{"id":5986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5987,"src":"844:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5984,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:31"},"scope":5988,"src":"774:76:31","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5989,"src":"405:447:31","usedErrors":[]}],"src":"100:753:31"},"id":31},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[6853]},"id":6854,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5990,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:32"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":5991,"nodeType":"StructuredDocumentation","src":"128:73:32","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":6853,"linearizedBaseContracts":[6853],"name":"Math","nameLocation":"210:4:32","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":5995,"members":[{"id":5992,"name":"Down","nameLocation":"245:4:32","nodeType":"EnumValue","src":"245:4:32"},{"id":5993,"name":"Up","nameLocation":"287:2:32","nodeType":"EnumValue","src":"287:2:32"},{"id":5994,"name":"Zero","nameLocation":"318:4:32","nodeType":"EnumValue","src":"318:4:32"}],"name":"Rounding","nameLocation":"226:8:32","nodeType":"EnumDefinition","src":"221:122:32"},{"body":{"id":6012,"nodeType":"Block","src":"480:37:32","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6005,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"497:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":6006,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6000,"src":"501:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":6009,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6000,"src":"509:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:32","trueExpression":{"id":6008,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"505:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6004,"id":6011,"nodeType":"Return","src":"490:20:32"}]},"documentation":{"id":5996,"nodeType":"StructuredDocumentation","src":"349:59:32","text":" @dev Returns the largest of two numbers."},"id":6013,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:32","nodeType":"FunctionDefinition","parameters":{"id":6001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5998,"mutability":"mutable","name":"a","nameLocation":"434:1:32","nodeType":"VariableDeclaration","scope":6013,"src":"426:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5997,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6000,"mutability":"mutable","name":"b","nameLocation":"445:1:32","nodeType":"VariableDeclaration","scope":6013,"src":"437:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5999,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:32"},"returnParameters":{"id":6004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6013,"src":"471:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6002,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:32"},"scope":6853,"src":"413:104:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6030,"nodeType":"Block","src":"655:37:32","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6023,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"672:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6024,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6018,"src":"676:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":6027,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6018,"src":"684:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:32","trueExpression":{"id":6026,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6016,"src":"680:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6022,"id":6029,"nodeType":"Return","src":"665:20:32"}]},"documentation":{"id":6014,"nodeType":"StructuredDocumentation","src":"523:60:32","text":" @dev Returns the smallest of two numbers."},"id":6031,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:32","nodeType":"FunctionDefinition","parameters":{"id":6019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6016,"mutability":"mutable","name":"a","nameLocation":"609:1:32","nodeType":"VariableDeclaration","scope":6031,"src":"601:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6015,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6018,"mutability":"mutable","name":"b","nameLocation":"620:1:32","nodeType":"VariableDeclaration","scope":6031,"src":"612:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6017,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:32"},"returnParameters":{"id":6022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6031,"src":"646:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6020,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:32"},"scope":6853,"src":"588:104:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6053,"nodeType":"Block","src":"876:82:32","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6041,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6034,"src":"931:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":6042,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"935:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6044,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6045,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6034,"src":"941:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":6046,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"945:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6048,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":6049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6040,"id":6052,"nodeType":"Return","src":"923:28:32"}]},"documentation":{"id":6032,"nodeType":"StructuredDocumentation","src":"698:102:32","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":6054,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:32","nodeType":"FunctionDefinition","parameters":{"id":6037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6034,"mutability":"mutable","name":"a","nameLocation":"830:1:32","nodeType":"VariableDeclaration","scope":6054,"src":"822:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6033,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6036,"mutability":"mutable","name":"b","nameLocation":"841:1:32","nodeType":"VariableDeclaration","scope":6054,"src":"833:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6035,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:32"},"returnParameters":{"id":6040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6054,"src":"867:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6038,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:32"},"scope":6853,"src":"805:153:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6078,"nodeType":"Block","src":"1228:123:32","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6064,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"1316:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6068,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"1330:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6071,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6072,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6059,"src":"1339:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:32","trueExpression":{"hexValue":"30","id":6067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6063,"id":6077,"nodeType":"Return","src":"1309:35:32"}]},"documentation":{"id":6055,"nodeType":"StructuredDocumentation","src":"964:188:32","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":6079,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:32","nodeType":"FunctionDefinition","parameters":{"id":6060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6057,"mutability":"mutable","name":"a","nameLocation":"1182:1:32","nodeType":"VariableDeclaration","scope":6079,"src":"1174:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6056,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6059,"mutability":"mutable","name":"b","nameLocation":"1193:1:32","nodeType":"VariableDeclaration","scope":6079,"src":"1185:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6058,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:32"},"returnParameters":{"id":6063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6079,"src":"1219:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6061,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:32"},"scope":6853,"src":"1157:194:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6200,"nodeType":"Block","src":"1795:3797:32","statements":[{"id":6199,"nodeType":"UncheckedBlock","src":"1805:3781:32","statements":[{"assignments":[6092],"declarations":[{"constant":false,"id":6092,"mutability":"mutable","name":"prod0","nameLocation":"2134:5:32","nodeType":"VariableDeclaration","scope":6199,"src":"2126:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6091,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6093,"nodeType":"VariableDeclarationStatement","src":"2126:13:32"},{"assignments":[6095],"declarations":[{"constant":false,"id":6095,"mutability":"mutable","name":"prod1","nameLocation":"2206:5:32","nodeType":"VariableDeclaration","scope":6199,"src":"2198:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6094,"name":"uint256","nodeType":"ElementaryTypeName","src":"2198:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6096,"nodeType":"VariableDeclarationStatement","src":"2198:13:32"},{"AST":{"nodeType":"YulBlock","src":"2278:157:32","statements":[{"nodeType":"YulVariableDeclaration","src":"2296:30:32","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2313:1:32"},{"name":"y","nodeType":"YulIdentifier","src":"2316:1:32"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2323:1:32","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2319:3:32"},"nodeType":"YulFunctionCall","src":"2319:6:32"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2306:6:32"},"nodeType":"YulFunctionCall","src":"2306:20:32"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2300:2:32","type":""}]},{"nodeType":"YulAssignment","src":"2343:18:32","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2356:1:32"},{"name":"y","nodeType":"YulIdentifier","src":"2359:1:32"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2352:3:32"},"nodeType":"YulFunctionCall","src":"2352:9:32"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2343:5:32"}]},{"nodeType":"YulAssignment","src":"2378:43:32","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2395:2:32"},{"name":"prod0","nodeType":"YulIdentifier","src":"2399:5:32"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2391:3:32"},"nodeType":"YulFunctionCall","src":"2391:14:32"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2410:2:32"},{"name":"prod0","nodeType":"YulIdentifier","src":"2414:5:32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2407:2:32"},"nodeType":"YulFunctionCall","src":"2407:13:32"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2387:3:32"},"nodeType":"YulFunctionCall","src":"2387:34:32"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2378:5:32"}]}]},"evmVersion":"london","externalReferences":[{"declaration":6092,"isOffset":false,"isSlot":false,"src":"2343:5:32","valueSize":1},{"declaration":6092,"isOffset":false,"isSlot":false,"src":"2399:5:32","valueSize":1},{"declaration":6092,"isOffset":false,"isSlot":false,"src":"2414:5:32","valueSize":1},{"declaration":6095,"isOffset":false,"isSlot":false,"src":"2378:5:32","valueSize":1},{"declaration":6082,"isOffset":false,"isSlot":false,"src":"2313:1:32","valueSize":1},{"declaration":6082,"isOffset":false,"isSlot":false,"src":"2356:1:32","valueSize":1},{"declaration":6084,"isOffset":false,"isSlot":false,"src":"2316:1:32","valueSize":1},{"declaration":6084,"isOffset":false,"isSlot":false,"src":"2359:1:32","valueSize":1}],"id":6097,"nodeType":"InlineAssembly","src":"2269:166:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6098,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"2516:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2525:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2516:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6106,"nodeType":"IfStatement","src":"2512:75:32","trueBody":{"id":6105,"nodeType":"Block","src":"2528:59:32","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6101,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6092,"src":"2553:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6102,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"2561:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2553:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6090,"id":6104,"nodeType":"Return","src":"2546:26:32"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6108,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"2697:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":6109,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"2711:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2697:19:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2689:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":6111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2689:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6112,"nodeType":"ExpressionStatement","src":"2689:28:32"},{"assignments":[6114],"declarations":[{"constant":false,"id":6114,"mutability":"mutable","name":"remainder","nameLocation":"2981:9:32","nodeType":"VariableDeclaration","scope":6199,"src":"2973:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6113,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6115,"nodeType":"VariableDeclarationStatement","src":"2973:17:32"},{"AST":{"nodeType":"YulBlock","src":"3013:291:32","statements":[{"nodeType":"YulAssignment","src":"3082:38:32","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3102:1:32"},{"name":"y","nodeType":"YulIdentifier","src":"3105:1:32"},{"name":"denominator","nodeType":"YulIdentifier","src":"3108:11:32"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3095:6:32"},"nodeType":"YulFunctionCall","src":"3095:25:32"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3082:9:32"}]},{"nodeType":"YulAssignment","src":"3202:41:32","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3215:5:32"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3225:9:32"},{"name":"prod0","nodeType":"YulIdentifier","src":"3236:5:32"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3222:2:32"},"nodeType":"YulFunctionCall","src":"3222:20:32"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3211:3:32"},"nodeType":"YulFunctionCall","src":"3211:32:32"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3202:5:32"}]},{"nodeType":"YulAssignment","src":"3260:30:32","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3273:5:32"},{"name":"remainder","nodeType":"YulIdentifier","src":"3280:9:32"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3269:3:32"},"nodeType":"YulFunctionCall","src":"3269:21:32"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3260:5:32"}]}]},"evmVersion":"london","externalReferences":[{"declaration":6086,"isOffset":false,"isSlot":false,"src":"3108:11:32","valueSize":1},{"declaration":6092,"isOffset":false,"isSlot":false,"src":"3236:5:32","valueSize":1},{"declaration":6092,"isOffset":false,"isSlot":false,"src":"3260:5:32","valueSize":1},{"declaration":6092,"isOffset":false,"isSlot":false,"src":"3273:5:32","valueSize":1},{"declaration":6095,"isOffset":false,"isSlot":false,"src":"3202:5:32","valueSize":1},{"declaration":6095,"isOffset":false,"isSlot":false,"src":"3215:5:32","valueSize":1},{"declaration":6114,"isOffset":false,"isSlot":false,"src":"3082:9:32","valueSize":1},{"declaration":6114,"isOffset":false,"isSlot":false,"src":"3225:9:32","valueSize":1},{"declaration":6114,"isOffset":false,"isSlot":false,"src":"3280:9:32","valueSize":1},{"declaration":6082,"isOffset":false,"isSlot":false,"src":"3102:1:32","valueSize":1},{"declaration":6084,"isOffset":false,"isSlot":false,"src":"3105:1:32","valueSize":1}],"id":6116,"nodeType":"InlineAssembly","src":"3004:300:32"},{"assignments":[6118],"declarations":[{"constant":false,"id":6118,"mutability":"mutable","name":"twos","nameLocation":"3619:4:32","nodeType":"VariableDeclaration","scope":6199,"src":"3611:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3611:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6126,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6119,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"3626:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3641:12:32","subExpression":{"id":6120,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"3642:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":6122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3656:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3641:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6124,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3640:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3626:32:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3611:47:32"},{"AST":{"nodeType":"YulBlock","src":"3681:362:32","statements":[{"nodeType":"YulAssignment","src":"3746:37:32","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"3765:11:32"},{"name":"twos","nodeType":"YulIdentifier","src":"3778:4:32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3761:3:32"},"nodeType":"YulFunctionCall","src":"3761:22:32"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"3746:11:32"}]},{"nodeType":"YulAssignment","src":"3850:25:32","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3863:5:32"},{"name":"twos","nodeType":"YulIdentifier","src":"3870:4:32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3859:3:32"},"nodeType":"YulFunctionCall","src":"3859:16:32"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3850:5:32"}]},{"nodeType":"YulAssignment","src":"3990:39:32","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4010:1:32","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4013:4:32"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4006:3:32"},"nodeType":"YulFunctionCall","src":"4006:12:32"},{"name":"twos","nodeType":"YulIdentifier","src":"4020:4:32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4002:3:32"},"nodeType":"YulFunctionCall","src":"4002:23:32"},{"kind":"number","nodeType":"YulLiteral","src":"4027:1:32","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3998:3:32"},"nodeType":"YulFunctionCall","src":"3998:31:32"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"3990:4:32"}]}]},"evmVersion":"london","externalReferences":[{"declaration":6086,"isOffset":false,"isSlot":false,"src":"3746:11:32","valueSize":1},{"declaration":6086,"isOffset":false,"isSlot":false,"src":"3765:11:32","valueSize":1},{"declaration":6092,"isOffset":false,"isSlot":false,"src":"3850:5:32","valueSize":1},{"declaration":6092,"isOffset":false,"isSlot":false,"src":"3863:5:32","valueSize":1},{"declaration":6118,"isOffset":false,"isSlot":false,"src":"3778:4:32","valueSize":1},{"declaration":6118,"isOffset":false,"isSlot":false,"src":"3870:4:32","valueSize":1},{"declaration":6118,"isOffset":false,"isSlot":false,"src":"3990:4:32","valueSize":1},{"declaration":6118,"isOffset":false,"isSlot":false,"src":"4013:4:32","valueSize":1},{"declaration":6118,"isOffset":false,"isSlot":false,"src":"4020:4:32","valueSize":1}],"id":6127,"nodeType":"InlineAssembly","src":"3672:371:32"},{"expression":{"id":6132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6128,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6092,"src":"4109:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6129,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"4118:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6130,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6118,"src":"4126:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4118:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4109:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6133,"nodeType":"ExpressionStatement","src":"4109:21:32"},{"assignments":[6135],"declarations":[{"constant":false,"id":6135,"mutability":"mutable","name":"inverse","nameLocation":"4456:7:32","nodeType":"VariableDeclaration","scope":6199,"src":"4448:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6134,"name":"uint256","nodeType":"ElementaryTypeName","src":"4448:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6142,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":6136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:32","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6137,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4471:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4467:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6139,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4466:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":6140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4486:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4466:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4448:39:32"},{"expression":{"id":6149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6143,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4704:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":6144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4715:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6145,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4719:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6146,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4733:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4719:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4715:25:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4704:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6150,"nodeType":"ExpressionStatement","src":"4704:36:32"},{"expression":{"id":6157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6151,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4773:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":6152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4784:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6153,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4788:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6154,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4802:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4788:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4784:25:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4773:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6158,"nodeType":"ExpressionStatement","src":"4773:36:32"},{"expression":{"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6159,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4843:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":6160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4854:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6161,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4858:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6162,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4872:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4858:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4854:25:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6166,"nodeType":"ExpressionStatement","src":"4843:36:32"},{"expression":{"id":6173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6167,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4913:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":6168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4924:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6169,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4928:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6170,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4942:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4928:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4924:25:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4913:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6174,"nodeType":"ExpressionStatement","src":"4913:36:32"},{"expression":{"id":6181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6175,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"4983:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":6176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4994:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6177,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"4998:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6178,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"5012:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4994:25:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4983:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6182,"nodeType":"ExpressionStatement","src":"4983:36:32"},{"expression":{"id":6189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6183,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"5054:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":6184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5065:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6185,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"5069:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6186,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"5083:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5069:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:25:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5054:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6190,"nodeType":"ExpressionStatement","src":"5054:36:32"},{"expression":{"id":6195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6191,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"5524:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6192,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6092,"src":"5533:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6193,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"5541:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5533:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5524:24:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6196,"nodeType":"ExpressionStatement","src":"5524:24:32"},{"expression":{"id":6197,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6089,"src":"5569:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6090,"id":6198,"nodeType":"Return","src":"5562:13:32"}]}]},"documentation":{"id":6080,"nodeType":"StructuredDocumentation","src":"1357:305:32","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":6201,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:32","nodeType":"FunctionDefinition","parameters":{"id":6087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6082,"mutability":"mutable","name":"x","nameLocation":"1700:1:32","nodeType":"VariableDeclaration","scope":6201,"src":"1692:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6081,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6084,"mutability":"mutable","name":"y","nameLocation":"1719:1:32","nodeType":"VariableDeclaration","scope":6201,"src":"1711:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6083,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6086,"mutability":"mutable","name":"denominator","nameLocation":"1738:11:32","nodeType":"VariableDeclaration","scope":6201,"src":"1730:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6085,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:73:32"},"returnParameters":{"id":6090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6089,"mutability":"mutable","name":"result","nameLocation":"1787:6:32","nodeType":"VariableDeclaration","scope":6201,"src":"1779:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6088,"name":"uint256","nodeType":"ElementaryTypeName","src":"1779:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1778:16:32"},"scope":6853,"src":"1667:3925:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6244,"nodeType":"Block","src":"5872:189:32","statements":[{"assignments":[6217],"declarations":[{"constant":false,"id":6217,"mutability":"mutable","name":"result","nameLocation":"5890:6:32","nodeType":"VariableDeclaration","scope":6244,"src":"5882:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6216,"name":"uint256","nodeType":"ElementaryTypeName","src":"5882:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6223,"initialValue":{"arguments":[{"id":6219,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6204,"src":"5906:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6220,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6206,"src":"5909:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6221,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"5912:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6218,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[6201,6245],"referencedDeclaration":6201,"src":"5899:6:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":6222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5899:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5882:42:32"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6224,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6211,"src":"5938:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6225,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"5950:8:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$5995_$","typeString":"type(enum Math.Rounding)"}},"id":6226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":5993,"src":"5950:11:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"src":"5938:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6229,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6204,"src":"5972:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6230,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6206,"src":"5975:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6231,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6208,"src":"5978:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6228,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"5965:6:32","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":6232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5965:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5993:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5965:29:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5938:56:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6241,"nodeType":"IfStatement","src":"5934:98:32","trueBody":{"id":6240,"nodeType":"Block","src":"5996:36:32","statements":[{"expression":{"id":6238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6236,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"6010:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6020:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6010:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6239,"nodeType":"ExpressionStatement","src":"6010:11:32"}]}},{"expression":{"id":6242,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"6048:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6215,"id":6243,"nodeType":"Return","src":"6041:13:32"}]},"documentation":{"id":6202,"nodeType":"StructuredDocumentation","src":"5598:121:32","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":6245,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5733:6:32","nodeType":"FunctionDefinition","parameters":{"id":6212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6204,"mutability":"mutable","name":"x","nameLocation":"5757:1:32","nodeType":"VariableDeclaration","scope":6245,"src":"5749:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6203,"name":"uint256","nodeType":"ElementaryTypeName","src":"5749:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6206,"mutability":"mutable","name":"y","nameLocation":"5776:1:32","nodeType":"VariableDeclaration","scope":6245,"src":"5768:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6205,"name":"uint256","nodeType":"ElementaryTypeName","src":"5768:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6208,"mutability":"mutable","name":"denominator","nameLocation":"5795:11:32","nodeType":"VariableDeclaration","scope":6245,"src":"5787:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6207,"name":"uint256","nodeType":"ElementaryTypeName","src":"5787:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6211,"mutability":"mutable","name":"rounding","nameLocation":"5825:8:32","nodeType":"VariableDeclaration","scope":6245,"src":"5816:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"typeName":{"id":6210,"nodeType":"UserDefinedTypeName","pathNode":{"id":6209,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":5995,"src":"5816:8:32"},"referencedDeclaration":5995,"src":"5816:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"5739:100:32"},"returnParameters":{"id":6215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6245,"src":"5863:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6213,"name":"uint256","nodeType":"ElementaryTypeName","src":"5863:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5862:9:32"},"scope":6853,"src":"5724:337:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6356,"nodeType":"Block","src":"6337:1585:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6253,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"6351:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6356:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6351:6:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6259,"nodeType":"IfStatement","src":"6347:45:32","trueBody":{"id":6258,"nodeType":"Block","src":"6359:33:32","statements":[{"expression":{"hexValue":"30","id":6256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6380:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":6252,"id":6257,"nodeType":"Return","src":"6373:8:32"}]}},{"assignments":[6261],"declarations":[{"constant":false,"id":6261,"mutability":"mutable","name":"result","nameLocation":"7079:6:32","nodeType":"VariableDeclaration","scope":6356,"src":"7071:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6260,"name":"uint256","nodeType":"ElementaryTypeName","src":"7071:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6270,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7088:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6264,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7099:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6263,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[6525,6561],"referencedDeclaration":6525,"src":"7094:4:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7094:7:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7105:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7094:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6268,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7093:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7088:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7071:36:32"},{"id":6355,"nodeType":"UncheckedBlock","src":"7508:408:32","statements":[{"expression":{"id":6280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6271,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7532:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6272,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7542:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6273,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7551:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6274,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7555:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7551:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7542:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6277,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7541:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7566:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7541:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7532:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6281,"nodeType":"ExpressionStatement","src":"7532:35:32"},{"expression":{"id":6291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6282,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7581:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6283,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7591:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6284,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7600:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7604:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7600:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7591:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7590:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7590:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7581:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6292,"nodeType":"ExpressionStatement","src":"7581:35:32"},{"expression":{"id":6302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6293,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7630:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6294,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7640:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6295,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7649:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6296,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7653:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7649:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7640:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6299,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7639:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7664:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7639:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7630:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6303,"nodeType":"ExpressionStatement","src":"7630:35:32"},{"expression":{"id":6313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6304,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7679:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6305,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7689:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6306,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7698:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6307,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7702:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7698:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7689:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6310,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7688:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7713:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7688:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7679:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6314,"nodeType":"ExpressionStatement","src":"7679:35:32"},{"expression":{"id":6324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6315,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7728:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6316,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7738:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6317,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7747:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6318,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7751:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7747:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7738:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6321,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7737:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7762:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7737:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7728:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6325,"nodeType":"ExpressionStatement","src":"7728:35:32"},{"expression":{"id":6335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7777:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6327,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7787:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6328,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7796:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6329,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7800:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7796:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7787:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6332,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7786:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7811:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7786:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7777:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6336,"nodeType":"ExpressionStatement","src":"7777:35:32"},{"expression":{"id":6346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6337,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7826:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6338,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7836:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6339,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7845:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6340,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7849:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7845:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7836:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7835:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7860:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7835:26:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7826:35:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6347,"nodeType":"ExpressionStatement","src":"7826:35:32"},{"expression":{"arguments":[{"id":6349,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7886:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6350,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6248,"src":"7894:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6351,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6261,"src":"7898:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7894:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6348,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"7882:3:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":6353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7882:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6252,"id":6354,"nodeType":"Return","src":"7875:30:32"}]}]},"documentation":{"id":6246,"nodeType":"StructuredDocumentation","src":"6067:208:32","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":6357,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6289:4:32","nodeType":"FunctionDefinition","parameters":{"id":6249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6248,"mutability":"mutable","name":"a","nameLocation":"6302:1:32","nodeType":"VariableDeclaration","scope":6357,"src":"6294:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6247,"name":"uint256","nodeType":"ElementaryTypeName","src":"6294:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6293:11:32"},"returnParameters":{"id":6252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6357,"src":"6328:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6250,"name":"uint256","nodeType":"ElementaryTypeName","src":"6328:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6327:9:32"},"scope":6853,"src":"6280:1642:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6392,"nodeType":"Block","src":"8098:161:32","statements":[{"id":6391,"nodeType":"UncheckedBlock","src":"8108:145:32","statements":[{"assignments":[6369],"declarations":[{"constant":false,"id":6369,"mutability":"mutable","name":"result","nameLocation":"8140:6:32","nodeType":"VariableDeclaration","scope":6391,"src":"8132:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6368,"name":"uint256","nodeType":"ElementaryTypeName","src":"8132:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6373,"initialValue":{"arguments":[{"id":6371,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6360,"src":"8154:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6370,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[6357,6393],"referencedDeclaration":6357,"src":"8149:4:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8149:7:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8132:24:32"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6374,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"8177:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6375,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6363,"src":"8187:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6376,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"8199:8:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$5995_$","typeString":"type(enum Math.Rounding)"}},"id":6377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":5993,"src":"8199:11:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"src":"8187:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6379,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"8214:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6380,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6369,"src":"8223:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6382,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6360,"src":"8232:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:19:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8187:46:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":6386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8240:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8187:54:32","trueExpression":{"hexValue":"31","id":6385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8236:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":6388,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8186:56:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8177:65:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6367,"id":6390,"nodeType":"Return","src":"8170:72:32"}]}]},"documentation":{"id":6358,"nodeType":"StructuredDocumentation","src":"7928:89:32","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":6393,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8031:4:32","nodeType":"FunctionDefinition","parameters":{"id":6364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6360,"mutability":"mutable","name":"a","nameLocation":"8044:1:32","nodeType":"VariableDeclaration","scope":6393,"src":"8036:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6359,"name":"uint256","nodeType":"ElementaryTypeName","src":"8036:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6363,"mutability":"mutable","name":"rounding","nameLocation":"8056:8:32","nodeType":"VariableDeclaration","scope":6393,"src":"8047:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"typeName":{"id":6362,"nodeType":"UserDefinedTypeName","pathNode":{"id":6361,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":5995,"src":"8047:8:32"},"referencedDeclaration":5995,"src":"8047:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8035:30:32"},"returnParameters":{"id":6367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6393,"src":"8089:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6365,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8088:9:32"},"scope":6853,"src":"8022:237:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6524,"nodeType":"Block","src":"8444:922:32","statements":[{"assignments":[6402],"declarations":[{"constant":false,"id":6402,"mutability":"mutable","name":"result","nameLocation":"8462:6:32","nodeType":"VariableDeclaration","scope":6524,"src":"8454:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6401,"name":"uint256","nodeType":"ElementaryTypeName","src":"8454:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6404,"initialValue":{"hexValue":"30","id":6403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8454:18:32"},{"id":6521,"nodeType":"UncheckedBlock","src":"8482:855:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8510:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":6406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8519:3:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8510:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8525:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8510:16:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6419,"nodeType":"IfStatement","src":"8506:99:32","trueBody":{"id":6418,"nodeType":"Block","src":"8528:77:32","statements":[{"expression":{"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8546:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":6411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8556:3:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8546:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6413,"nodeType":"ExpressionStatement","src":"8546:13:32"},{"expression":{"id":6416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6414,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"8577:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":6415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8587:3:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8577:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6417,"nodeType":"ExpressionStatement","src":"8577:13:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8622:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":6421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8631:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8622:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8636:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8622:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6434,"nodeType":"IfStatement","src":"8618:96:32","trueBody":{"id":6433,"nodeType":"Block","src":"8639:75:32","statements":[{"expression":{"id":6427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6425,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8657:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":6426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8667:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8657:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6428,"nodeType":"ExpressionStatement","src":"8657:12:32"},{"expression":{"id":6431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6429,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"8687:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":6430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8697:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8687:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6432,"nodeType":"ExpressionStatement","src":"8687:12:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6435,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8731:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":6436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8740:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8731:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8745:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8731:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6449,"nodeType":"IfStatement","src":"8727:96:32","trueBody":{"id":6448,"nodeType":"Block","src":"8748:75:32","statements":[{"expression":{"id":6442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6440,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8766:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":6441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8776:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8766:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6443,"nodeType":"ExpressionStatement","src":"8766:12:32"},{"expression":{"id":6446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6444,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"8796:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":6445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8796:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6447,"nodeType":"ExpressionStatement","src":"8796:12:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6450,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8840:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":6451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8849:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8840:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8854:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8840:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6464,"nodeType":"IfStatement","src":"8836:96:32","trueBody":{"id":6463,"nodeType":"Block","src":"8857:75:32","statements":[{"expression":{"id":6457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6455,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8875:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":6456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8885:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8875:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6458,"nodeType":"ExpressionStatement","src":"8875:12:32"},{"expression":{"id":6461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6459,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"8905:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":6460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8915:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8905:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6462,"nodeType":"ExpressionStatement","src":"8905:12:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8949:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":6466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8958:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8949:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8962:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8949:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6479,"nodeType":"IfStatement","src":"8945:93:32","trueBody":{"id":6478,"nodeType":"Block","src":"8965:73:32","statements":[{"expression":{"id":6472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"8983:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":6471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8993:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8983:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6473,"nodeType":"ExpressionStatement","src":"8983:11:32"},{"expression":{"id":6476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6474,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"9012:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":6475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9022:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9012:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6477,"nodeType":"ExpressionStatement","src":"9012:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6480,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"9055:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":6481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9064:1:32","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9055:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9068:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9055:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6494,"nodeType":"IfStatement","src":"9051:93:32","trueBody":{"id":6493,"nodeType":"Block","src":"9071:73:32","statements":[{"expression":{"id":6487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6485,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"9089:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":6486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:1:32","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9089:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6488,"nodeType":"ExpressionStatement","src":"9089:11:32"},{"expression":{"id":6491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6489,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"9118:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":6490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9128:1:32","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9118:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6492,"nodeType":"ExpressionStatement","src":"9118:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6495,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"9161:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":6496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9170:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9161:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9174:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9161:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6509,"nodeType":"IfStatement","src":"9157:93:32","trueBody":{"id":6508,"nodeType":"Block","src":"9177:73:32","statements":[{"expression":{"id":6502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"9195:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":6501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9205:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9195:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6503,"nodeType":"ExpressionStatement","src":"9195:11:32"},{"expression":{"id":6506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6504,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"9224:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":6505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9234:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9224:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6507,"nodeType":"ExpressionStatement","src":"9224:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6510,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"9267:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9276:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9267:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9280:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9267:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6520,"nodeType":"IfStatement","src":"9263:64:32","trueBody":{"id":6519,"nodeType":"Block","src":"9283:44:32","statements":[{"expression":{"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6515,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"9301:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9301:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6518,"nodeType":"ExpressionStatement","src":"9301:11:32"}]}}]},{"expression":{"id":6522,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"9353:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6400,"id":6523,"nodeType":"Return","src":"9346:13:32"}]},"documentation":{"id":6394,"nodeType":"StructuredDocumentation","src":"8265:113:32","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":6525,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8392:4:32","nodeType":"FunctionDefinition","parameters":{"id":6397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6396,"mutability":"mutable","name":"value","nameLocation":"8405:5:32","nodeType":"VariableDeclaration","scope":6525,"src":"8397:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6395,"name":"uint256","nodeType":"ElementaryTypeName","src":"8397:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8396:15:32"},"returnParameters":{"id":6400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6525,"src":"8435:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6398,"name":"uint256","nodeType":"ElementaryTypeName","src":"8435:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8434:9:32"},"scope":6853,"src":"8383:983:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6560,"nodeType":"Block","src":"9599:165:32","statements":[{"id":6559,"nodeType":"UncheckedBlock","src":"9609:149:32","statements":[{"assignments":[6537],"declarations":[{"constant":false,"id":6537,"mutability":"mutable","name":"result","nameLocation":"9641:6:32","nodeType":"VariableDeclaration","scope":6559,"src":"9633:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6536,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6541,"initialValue":{"arguments":[{"id":6539,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6528,"src":"9655:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6538,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[6525,6561],"referencedDeclaration":6525,"src":"9650:4:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9650:11:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9633:28:32"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6542,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6537,"src":"9682:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"id":6546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6543,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6531,"src":"9692:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6544,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"9704:8:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$5995_$","typeString":"type(enum Math.Rounding)"}},"id":6545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":5993,"src":"9704:11:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"src":"9692:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9719:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":6548,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6537,"src":"9724:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6550,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6528,"src":"9733:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:19:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9692:46:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":6554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9745:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":6555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9692:54:32","trueExpression":{"hexValue":"31","id":6553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9741:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":6556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9691:56:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9682:65:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6535,"id":6558,"nodeType":"Return","src":"9675:72:32"}]}]},"documentation":{"id":6526,"nodeType":"StructuredDocumentation","src":"9372:142:32","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":6561,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9528:4:32","nodeType":"FunctionDefinition","parameters":{"id":6532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6528,"mutability":"mutable","name":"value","nameLocation":"9541:5:32","nodeType":"VariableDeclaration","scope":6561,"src":"9533:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6527,"name":"uint256","nodeType":"ElementaryTypeName","src":"9533:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6531,"mutability":"mutable","name":"rounding","nameLocation":"9557:8:32","nodeType":"VariableDeclaration","scope":6561,"src":"9548:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"typeName":{"id":6530,"nodeType":"UserDefinedTypeName","pathNode":{"id":6529,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":5995,"src":"9548:8:32"},"referencedDeclaration":5995,"src":"9548:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9532:34:32"},"returnParameters":{"id":6535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6534,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6561,"src":"9590:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6533,"name":"uint256","nodeType":"ElementaryTypeName","src":"9590:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9589:9:32"},"scope":6853,"src":"9519:245:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6689,"nodeType":"Block","src":"9951:828:32","statements":[{"assignments":[6570],"declarations":[{"constant":false,"id":6570,"mutability":"mutable","name":"result","nameLocation":"9969:6:32","nodeType":"VariableDeclaration","scope":6689,"src":"9961:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6569,"name":"uint256","nodeType":"ElementaryTypeName","src":"9961:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6572,"initialValue":{"hexValue":"30","id":6571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9961:18:32"},{"id":6686,"nodeType":"UncheckedBlock","src":"9989:761:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6573,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10017:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":6576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10026:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":6575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10030:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10026:6:32","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10017:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6589,"nodeType":"IfStatement","src":"10013:99:32","trueBody":{"id":6588,"nodeType":"Block","src":"10034:78:32","statements":[{"expression":{"id":6582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6578,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10052:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":6581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10061:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":6580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10065:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10061:6:32","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10052:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6583,"nodeType":"ExpressionStatement","src":"10052:15:32"},{"expression":{"id":6586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6584,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10085:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":6585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10095:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10085:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6587,"nodeType":"ExpressionStatement","src":"10085:12:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10129:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":6593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10138:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":6592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10142:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10138:6:32","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10129:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6606,"nodeType":"IfStatement","src":"10125:99:32","trueBody":{"id":6605,"nodeType":"Block","src":"10146:78:32","statements":[{"expression":{"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6595,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10164:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":6598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10173:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":6597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10177:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10173:6:32","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10164:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6600,"nodeType":"ExpressionStatement","src":"10164:15:32"},{"expression":{"id":6603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6601,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10197:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":6602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10207:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10197:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6604,"nodeType":"ExpressionStatement","src":"10197:12:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6607,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10241:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":6610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10250:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":6609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10254:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10250:6:32","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10241:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6623,"nodeType":"IfStatement","src":"10237:99:32","trueBody":{"id":6622,"nodeType":"Block","src":"10258:78:32","statements":[{"expression":{"id":6616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6612,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10276:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":6615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10285:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":6614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10289:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10285:6:32","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10276:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6617,"nodeType":"ExpressionStatement","src":"10276:15:32"},{"expression":{"id":6620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6618,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10309:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":6619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10309:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6621,"nodeType":"ExpressionStatement","src":"10309:12:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6624,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10353:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":6627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10362:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":6626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10366:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10362:5:32","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10353:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6640,"nodeType":"IfStatement","src":"10349:96:32","trueBody":{"id":6639,"nodeType":"Block","src":"10369:76:32","statements":[{"expression":{"id":6633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6629,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10387:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":6632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10396:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":6631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10400:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10396:5:32","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10387:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6634,"nodeType":"ExpressionStatement","src":"10387:14:32"},{"expression":{"id":6637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6635,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10419:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":6636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10419:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6638,"nodeType":"ExpressionStatement","src":"10419:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10462:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":6644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10471:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":6643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10475:1:32","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10471:5:32","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10462:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6657,"nodeType":"IfStatement","src":"10458:96:32","trueBody":{"id":6656,"nodeType":"Block","src":"10478:76:32","statements":[{"expression":{"id":6650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6646,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10496:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":6649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10505:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":6648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10509:1:32","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10505:5:32","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10496:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6651,"nodeType":"ExpressionStatement","src":"10496:14:32"},{"expression":{"id":6654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6652,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10528:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":6653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10538:1:32","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10528:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6655,"nodeType":"ExpressionStatement","src":"10528:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6658,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10571:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":6661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10580:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":6660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10584:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10580:5:32","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10571:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6674,"nodeType":"IfStatement","src":"10567:96:32","trueBody":{"id":6673,"nodeType":"Block","src":"10587:76:32","statements":[{"expression":{"id":6667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10605:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":6666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10614:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":6665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10618:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10614:5:32","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10605:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6668,"nodeType":"ExpressionStatement","src":"10605:14:32"},{"expression":{"id":6671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6669,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10637:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":6670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10647:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10637:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6672,"nodeType":"ExpressionStatement","src":"10637:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10680:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":6678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10689:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":6677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10693:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10689:5:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10680:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6685,"nodeType":"IfStatement","src":"10676:64:32","trueBody":{"id":6684,"nodeType":"Block","src":"10696:44:32","statements":[{"expression":{"id":6682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6680,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10714:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10724:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10714:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6683,"nodeType":"ExpressionStatement","src":"10714:11:32"}]}}]},{"expression":{"id":6687,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"10766:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6568,"id":6688,"nodeType":"Return","src":"10759:13:32"}]},"documentation":{"id":6562,"nodeType":"StructuredDocumentation","src":"9770:114:32","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":6690,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"9898:5:32","nodeType":"FunctionDefinition","parameters":{"id":6565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6564,"mutability":"mutable","name":"value","nameLocation":"9912:5:32","nodeType":"VariableDeclaration","scope":6690,"src":"9904:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6563,"name":"uint256","nodeType":"ElementaryTypeName","src":"9904:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9903:15:32"},"returnParameters":{"id":6568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6690,"src":"9942:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6566,"name":"uint256","nodeType":"ElementaryTypeName","src":"9942:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9941:9:32"},"scope":6853,"src":"9889:890:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6725,"nodeType":"Block","src":"11014:165:32","statements":[{"id":6724,"nodeType":"UncheckedBlock","src":"11024:149:32","statements":[{"assignments":[6702],"declarations":[{"constant":false,"id":6702,"mutability":"mutable","name":"result","nameLocation":"11056:6:32","nodeType":"VariableDeclaration","scope":6724,"src":"11048:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6701,"name":"uint256","nodeType":"ElementaryTypeName","src":"11048:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6706,"initialValue":{"arguments":[{"id":6704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"11071:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6703,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[6690,6726],"referencedDeclaration":6690,"src":"11065:5:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11065:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11048:29:32"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6707,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6702,"src":"11098:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"id":6711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6708,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6696,"src":"11108:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6709,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"11120:8:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$5995_$","typeString":"type(enum Math.Rounding)"}},"id":6710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":5993,"src":"11120:11:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"src":"11108:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11135:2:32","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":6713,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6702,"src":"11139:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"11148:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:18:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11108:45:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":6719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11160:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":6720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11108:53:32","trueExpression":{"hexValue":"31","id":6718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11156:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":6721,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11107:55:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11098:64:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6700,"id":6723,"nodeType":"Return","src":"11091:71:32"}]}]},"documentation":{"id":6691,"nodeType":"StructuredDocumentation","src":"10785:143:32","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":6726,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10942:5:32","nodeType":"FunctionDefinition","parameters":{"id":6697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6693,"mutability":"mutable","name":"value","nameLocation":"10956:5:32","nodeType":"VariableDeclaration","scope":6726,"src":"10948:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6692,"name":"uint256","nodeType":"ElementaryTypeName","src":"10948:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6696,"mutability":"mutable","name":"rounding","nameLocation":"10972:8:32","nodeType":"VariableDeclaration","scope":6726,"src":"10963:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"typeName":{"id":6695,"nodeType":"UserDefinedTypeName","pathNode":{"id":6694,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":5995,"src":"10963:8:32"},"referencedDeclaration":5995,"src":"10963:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10947:34:32"},"returnParameters":{"id":6700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6726,"src":"11005:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6698,"name":"uint256","nodeType":"ElementaryTypeName","src":"11005:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11004:9:32"},"scope":6853,"src":"10933:246:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6812,"nodeType":"Block","src":"11493:600:32","statements":[{"assignments":[6735],"declarations":[{"constant":false,"id":6735,"mutability":"mutable","name":"result","nameLocation":"11511:6:32","nodeType":"VariableDeclaration","scope":6812,"src":"11503:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6734,"name":"uint256","nodeType":"ElementaryTypeName","src":"11503:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6737,"initialValue":{"hexValue":"30","id":6736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11520:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11503:18:32"},{"id":6809,"nodeType":"UncheckedBlock","src":"11531:533:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6738,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11559:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":6739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11568:3:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11559:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11574:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11559:16:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6752,"nodeType":"IfStatement","src":"11555:98:32","trueBody":{"id":6751,"nodeType":"Block","src":"11577:76:32","statements":[{"expression":{"id":6745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6743,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11595:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":6744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11605:3:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11595:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6746,"nodeType":"ExpressionStatement","src":"11595:13:32"},{"expression":{"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6747,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"11626:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":6748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11636:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11626:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6750,"nodeType":"ExpressionStatement","src":"11626:12:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6753,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11670:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":6754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11679:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11670:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11684:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11670:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6767,"nodeType":"IfStatement","src":"11666:95:32","trueBody":{"id":6766,"nodeType":"Block","src":"11687:74:32","statements":[{"expression":{"id":6760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6758,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11705:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":6759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11715:2:32","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11705:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6761,"nodeType":"ExpressionStatement","src":"11705:12:32"},{"expression":{"id":6764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6762,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"11735:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":6763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11745:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11735:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6765,"nodeType":"ExpressionStatement","src":"11735:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6768,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11778:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":6769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11787:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11778:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11792:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11778:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6782,"nodeType":"IfStatement","src":"11774:95:32","trueBody":{"id":6781,"nodeType":"Block","src":"11795:74:32","statements":[{"expression":{"id":6775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6773,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11813:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":6774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11823:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11813:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6776,"nodeType":"ExpressionStatement","src":"11813:12:32"},{"expression":{"id":6779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6777,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"11843:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":6778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11853:1:32","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11843:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6780,"nodeType":"ExpressionStatement","src":"11843:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6783,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11886:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":6784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11895:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11886:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11900:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11886:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6797,"nodeType":"IfStatement","src":"11882:95:32","trueBody":{"id":6796,"nodeType":"Block","src":"11903:74:32","statements":[{"expression":{"id":6790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6788,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11921:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":6789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11931:2:32","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11921:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6791,"nodeType":"ExpressionStatement","src":"11921:12:32"},{"expression":{"id":6794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6792,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"11951:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":6793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11961:1:32","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11951:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6795,"nodeType":"ExpressionStatement","src":"11951:11:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6798,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"11994:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":6799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12003:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11994:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12007:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11994:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6808,"nodeType":"IfStatement","src":"11990:64:32","trueBody":{"id":6807,"nodeType":"Block","src":"12010:44:32","statements":[{"expression":{"id":6805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6803,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"12028:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12028:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6806,"nodeType":"ExpressionStatement","src":"12028:11:32"}]}}]},{"expression":{"id":6810,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"12080:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6733,"id":6811,"nodeType":"Return","src":"12073:13:32"}]},"documentation":{"id":6727,"nodeType":"StructuredDocumentation","src":"11185:240:32","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":6813,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11439:6:32","nodeType":"FunctionDefinition","parameters":{"id":6730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6729,"mutability":"mutable","name":"value","nameLocation":"11454:5:32","nodeType":"VariableDeclaration","scope":6813,"src":"11446:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6728,"name":"uint256","nodeType":"ElementaryTypeName","src":"11446:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11445:15:32"},"returnParameters":{"id":6733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6813,"src":"11484:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6731,"name":"uint256","nodeType":"ElementaryTypeName","src":"11484:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11483:9:32"},"scope":6853,"src":"11430:663:32","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6851,"nodeType":"Block","src":"12329:173:32","statements":[{"id":6850,"nodeType":"UncheckedBlock","src":"12339:157:32","statements":[{"assignments":[6825],"declarations":[{"constant":false,"id":6825,"mutability":"mutable","name":"result","nameLocation":"12371:6:32","nodeType":"VariableDeclaration","scope":6850,"src":"12363:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6824,"name":"uint256","nodeType":"ElementaryTypeName","src":"12363:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6829,"initialValue":{"arguments":[{"id":6827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6816,"src":"12387:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6826,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[6813,6852],"referencedDeclaration":6813,"src":"12380:6:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12380:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12363:30:32"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6830,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6825,"src":"12414:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"id":6834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6831,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6819,"src":"12424:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6832,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"12436:8:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$5995_$","typeString":"type(enum Math.Rounding)"}},"id":6833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":5993,"src":"12436:11:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"src":"12424:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12451:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6836,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6825,"src":"12457:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":6837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12466:1:32","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12457:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6839,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12456:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6841,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6816,"src":"12471:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:25:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12424:52:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":6845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12483:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":6846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12424:60:32","trueExpression":{"hexValue":"31","id":6844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12479:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":6847,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12423:62:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12414:71:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6823,"id":6849,"nodeType":"Return","src":"12407:78:32"}]}]},"documentation":{"id":6814,"nodeType":"StructuredDocumentation","src":"12099:143:32","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":6852,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12256:6:32","nodeType":"FunctionDefinition","parameters":{"id":6820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6816,"mutability":"mutable","name":"value","nameLocation":"12271:5:32","nodeType":"VariableDeclaration","scope":6852,"src":"12263:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6815,"name":"uint256","nodeType":"ElementaryTypeName","src":"12263:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6819,"mutability":"mutable","name":"rounding","nameLocation":"12287:8:32","nodeType":"VariableDeclaration","scope":6852,"src":"12278:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"},"typeName":{"id":6818,"nodeType":"UserDefinedTypeName","pathNode":{"id":6817,"name":"Rounding","nodeType":"IdentifierPath","referencedDeclaration":5995,"src":"12278:8:32"},"referencedDeclaration":5995,"src":"12278:8:32","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5995","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12262:34:32"},"returnParameters":{"id":6823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6852,"src":"12320:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6821,"name":"uint256","nodeType":"ElementaryTypeName","src":"12320:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12319:9:32"},"scope":6853,"src":"12247:255:32","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":6854,"src":"202:12302:32","usedErrors":[]}],"src":"103:12402:32"},"id":32},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[8394]},"id":8395,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6855,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"192:23:33"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":6856,"nodeType":"StructuredDocumentation","src":"217:709:33","text":" @dev Wrappers over Solidity's uintXX/intXX casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always.\n Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing\n all math on `uint256` and `int256` and then downcasting."},"fullyImplemented":true,"id":8394,"linearizedBaseContracts":[8394],"name":"SafeCast","nameLocation":"935:8:33","nodeType":"ContractDefinition","nodes":[{"body":{"id":6880,"nodeType":"Block","src":"1339:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6859,"src":"1357:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":6868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1371:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":6867,"name":"uint248","nodeType":"ElementaryTypeName","src":"1371:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":6866,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1366:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1366:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":6870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1366:17:33","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1357:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":6872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1385:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":6864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1349:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1349:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6874,"nodeType":"ExpressionStatement","src":"1349:78:33"},{"expression":{"arguments":[{"id":6877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6859,"src":"1452:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1444:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":6875,"name":"uint248","nodeType":"ElementaryTypeName","src":"1444:7:33","typeDescriptions":{}}},"id":6878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1444:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":6863,"id":6879,"nodeType":"Return","src":"1437:21:33"}]},"documentation":{"id":6857,"nodeType":"StructuredDocumentation","src":"950:318:33","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":6881,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1282:9:33","nodeType":"FunctionDefinition","parameters":{"id":6860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6859,"mutability":"mutable","name":"value","nameLocation":"1300:5:33","nodeType":"VariableDeclaration","scope":6881,"src":"1292:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6858,"name":"uint256","nodeType":"ElementaryTypeName","src":"1292:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1291:15:33"},"returnParameters":{"id":6863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6881,"src":"1330:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":6861,"name":"uint248","nodeType":"ElementaryTypeName","src":"1330:7:33","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1329:9:33"},"scope":8394,"src":"1273:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6905,"nodeType":"Block","src":"1860:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6884,"src":"1878:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":6893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1892:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":6892,"name":"uint240","nodeType":"ElementaryTypeName","src":"1892:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":6891,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1887:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1887:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":6895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1887:17:33","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"1878:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":6897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1906:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":6889,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1870:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1870:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6899,"nodeType":"ExpressionStatement","src":"1870:78:33"},{"expression":{"arguments":[{"id":6902,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6884,"src":"1973:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1965:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":6900,"name":"uint240","nodeType":"ElementaryTypeName","src":"1965:7:33","typeDescriptions":{}}},"id":6903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1965:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":6888,"id":6904,"nodeType":"Return","src":"1958:21:33"}]},"documentation":{"id":6882,"nodeType":"StructuredDocumentation","src":"1471:318:33","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":6906,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"1803:9:33","nodeType":"FunctionDefinition","parameters":{"id":6885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6884,"mutability":"mutable","name":"value","nameLocation":"1821:5:33","nodeType":"VariableDeclaration","scope":6906,"src":"1813:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6883,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:15:33"},"returnParameters":{"id":6888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6906,"src":"1851:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":6886,"name":"uint240","nodeType":"ElementaryTypeName","src":"1851:7:33","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"1850:9:33"},"scope":8394,"src":"1794:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6930,"nodeType":"Block","src":"2381:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6915,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6909,"src":"2399:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":6918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2413:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":6917,"name":"uint232","nodeType":"ElementaryTypeName","src":"2413:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":6916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2408:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2408:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":6920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2408:17:33","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2399:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":6922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2427:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":6914,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2391:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2391:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6924,"nodeType":"ExpressionStatement","src":"2391:78:33"},{"expression":{"arguments":[{"id":6927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6909,"src":"2494:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2486:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":6925,"name":"uint232","nodeType":"ElementaryTypeName","src":"2486:7:33","typeDescriptions":{}}},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2486:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":6913,"id":6929,"nodeType":"Return","src":"2479:21:33"}]},"documentation":{"id":6907,"nodeType":"StructuredDocumentation","src":"1992:318:33","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":6931,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2324:9:33","nodeType":"FunctionDefinition","parameters":{"id":6910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6909,"mutability":"mutable","name":"value","nameLocation":"2342:5:33","nodeType":"VariableDeclaration","scope":6931,"src":"2334:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6908,"name":"uint256","nodeType":"ElementaryTypeName","src":"2334:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2333:15:33"},"returnParameters":{"id":6913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6931,"src":"2372:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":6911,"name":"uint232","nodeType":"ElementaryTypeName","src":"2372:7:33","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2371:9:33"},"scope":8394,"src":"2315:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6955,"nodeType":"Block","src":"2902:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"2920:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":6943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2934:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":6942,"name":"uint224","nodeType":"ElementaryTypeName","src":"2934:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":6941,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2929:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2929:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":6945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2929:17:33","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"2920:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":6947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2948:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":6939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2912:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2912:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6949,"nodeType":"ExpressionStatement","src":"2912:78:33"},{"expression":{"arguments":[{"id":6952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6934,"src":"3015:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3007:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":6950,"name":"uint224","nodeType":"ElementaryTypeName","src":"3007:7:33","typeDescriptions":{}}},"id":6953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3007:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":6938,"id":6954,"nodeType":"Return","src":"3000:21:33"}]},"documentation":{"id":6932,"nodeType":"StructuredDocumentation","src":"2513:318:33","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.2._"},"id":6956,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"2845:9:33","nodeType":"FunctionDefinition","parameters":{"id":6935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6934,"mutability":"mutable","name":"value","nameLocation":"2863:5:33","nodeType":"VariableDeclaration","scope":6956,"src":"2855:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6933,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2854:15:33"},"returnParameters":{"id":6938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6956,"src":"2893:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":6936,"name":"uint224","nodeType":"ElementaryTypeName","src":"2893:7:33","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"2892:9:33"},"scope":8394,"src":"2836:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6980,"nodeType":"Block","src":"3423:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6965,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6959,"src":"3441:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":6968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3455:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":6967,"name":"uint216","nodeType":"ElementaryTypeName","src":"3455:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":6966,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3450:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3450:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":6970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3450:17:33","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3441:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":6972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3469:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":6964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3433:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3433:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6974,"nodeType":"ExpressionStatement","src":"3433:78:33"},{"expression":{"arguments":[{"id":6977,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6959,"src":"3536:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3528:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":6975,"name":"uint216","nodeType":"ElementaryTypeName","src":"3528:7:33","typeDescriptions":{}}},"id":6978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3528:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":6963,"id":6979,"nodeType":"Return","src":"3521:21:33"}]},"documentation":{"id":6957,"nodeType":"StructuredDocumentation","src":"3034:318:33","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":6981,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3366:9:33","nodeType":"FunctionDefinition","parameters":{"id":6960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6959,"mutability":"mutable","name":"value","nameLocation":"3384:5:33","nodeType":"VariableDeclaration","scope":6981,"src":"3376:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6958,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3375:15:33"},"returnParameters":{"id":6963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6981,"src":"3414:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":6961,"name":"uint216","nodeType":"ElementaryTypeName","src":"3414:7:33","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3413:9:33"},"scope":8394,"src":"3357:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7005,"nodeType":"Block","src":"3944:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6984,"src":"3962:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":6993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3976:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":6992,"name":"uint208","nodeType":"ElementaryTypeName","src":"3976:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":6991,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3971:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3971:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":6995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3971:17:33","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"3962:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3990:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":6989,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3954:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3954:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6999,"nodeType":"ExpressionStatement","src":"3954:78:33"},{"expression":{"arguments":[{"id":7002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6984,"src":"4057:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4049:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":7000,"name":"uint208","nodeType":"ElementaryTypeName","src":"4049:7:33","typeDescriptions":{}}},"id":7003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4049:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":6988,"id":7004,"nodeType":"Return","src":"4042:21:33"}]},"documentation":{"id":6982,"nodeType":"StructuredDocumentation","src":"3555:318:33","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":7006,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"3887:9:33","nodeType":"FunctionDefinition","parameters":{"id":6985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6984,"mutability":"mutable","name":"value","nameLocation":"3905:5:33","nodeType":"VariableDeclaration","scope":7006,"src":"3897:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6983,"name":"uint256","nodeType":"ElementaryTypeName","src":"3897:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3896:15:33"},"returnParameters":{"id":6988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7006,"src":"3935:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":6986,"name":"uint208","nodeType":"ElementaryTypeName","src":"3935:7:33","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"3934:9:33"},"scope":8394,"src":"3878:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7030,"nodeType":"Block","src":"4465:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7015,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"4483:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4497:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":7017,"name":"uint200","nodeType":"ElementaryTypeName","src":"4497:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":7016,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4492:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4492:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":7020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"4492:17:33","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4483:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":7022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4511:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":7014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4475:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4475:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7024,"nodeType":"ExpressionStatement","src":"4475:78:33"},{"expression":{"arguments":[{"id":7027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7009,"src":"4578:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4570:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":7025,"name":"uint200","nodeType":"ElementaryTypeName","src":"4570:7:33","typeDescriptions":{}}},"id":7028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4570:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":7013,"id":7029,"nodeType":"Return","src":"4563:21:33"}]},"documentation":{"id":7007,"nodeType":"StructuredDocumentation","src":"4076:318:33","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":7031,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4408:9:33","nodeType":"FunctionDefinition","parameters":{"id":7010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7009,"mutability":"mutable","name":"value","nameLocation":"4426:5:33","nodeType":"VariableDeclaration","scope":7031,"src":"4418:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7008,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:15:33"},"returnParameters":{"id":7013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7031,"src":"4456:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":7011,"name":"uint200","nodeType":"ElementaryTypeName","src":"4456:7:33","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4455:9:33"},"scope":8394,"src":"4399:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7055,"nodeType":"Block","src":"4986:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7034,"src":"5004:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5018:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":7042,"name":"uint192","nodeType":"ElementaryTypeName","src":"5018:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":7041,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5013:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5013:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":7045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5013:17:33","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5004:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":7047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5032:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":7039,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4996:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4996:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7049,"nodeType":"ExpressionStatement","src":"4996:78:33"},{"expression":{"arguments":[{"id":7052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7034,"src":"5099:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5091:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":7050,"name":"uint192","nodeType":"ElementaryTypeName","src":"5091:7:33","typeDescriptions":{}}},"id":7053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5091:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":7038,"id":7054,"nodeType":"Return","src":"5084:21:33"}]},"documentation":{"id":7032,"nodeType":"StructuredDocumentation","src":"4597:318:33","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":7056,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"4929:9:33","nodeType":"FunctionDefinition","parameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7034,"mutability":"mutable","name":"value","nameLocation":"4947:5:33","nodeType":"VariableDeclaration","scope":7056,"src":"4939:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7033,"name":"uint256","nodeType":"ElementaryTypeName","src":"4939:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4938:15:33"},"returnParameters":{"id":7038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7056,"src":"4977:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":7036,"name":"uint192","nodeType":"ElementaryTypeName","src":"4977:7:33","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"4976:9:33"},"scope":8394,"src":"4920:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7080,"nodeType":"Block","src":"5507:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7059,"src":"5525:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5539:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":7067,"name":"uint184","nodeType":"ElementaryTypeName","src":"5539:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":7066,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5534:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5534:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":7070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5534:17:33","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5525:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":7072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5553:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":7064,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5517:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5517:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7074,"nodeType":"ExpressionStatement","src":"5517:78:33"},{"expression":{"arguments":[{"id":7077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7059,"src":"5620:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5612:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":7075,"name":"uint184","nodeType":"ElementaryTypeName","src":"5612:7:33","typeDescriptions":{}}},"id":7078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":7063,"id":7079,"nodeType":"Return","src":"5605:21:33"}]},"documentation":{"id":7057,"nodeType":"StructuredDocumentation","src":"5118:318:33","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":7081,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5450:9:33","nodeType":"FunctionDefinition","parameters":{"id":7060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7059,"mutability":"mutable","name":"value","nameLocation":"5468:5:33","nodeType":"VariableDeclaration","scope":7081,"src":"5460:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7058,"name":"uint256","nodeType":"ElementaryTypeName","src":"5460:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5459:15:33"},"returnParameters":{"id":7063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7081,"src":"5498:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":7061,"name":"uint184","nodeType":"ElementaryTypeName","src":"5498:7:33","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5497:9:33"},"scope":8394,"src":"5441:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7105,"nodeType":"Block","src":"6028:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7090,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"6046:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6060:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":7092,"name":"uint176","nodeType":"ElementaryTypeName","src":"6060:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":7091,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6055:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6055:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":7095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6055:17:33","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6046:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":7097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6074:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":7089,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6038:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6038:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7099,"nodeType":"ExpressionStatement","src":"6038:78:33"},{"expression":{"arguments":[{"id":7102,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"6141:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":7100,"name":"uint176","nodeType":"ElementaryTypeName","src":"6133:7:33","typeDescriptions":{}}},"id":7103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6133:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":7088,"id":7104,"nodeType":"Return","src":"6126:21:33"}]},"documentation":{"id":7082,"nodeType":"StructuredDocumentation","src":"5639:318:33","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":7106,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"5971:9:33","nodeType":"FunctionDefinition","parameters":{"id":7085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7084,"mutability":"mutable","name":"value","nameLocation":"5989:5:33","nodeType":"VariableDeclaration","scope":7106,"src":"5981:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7083,"name":"uint256","nodeType":"ElementaryTypeName","src":"5981:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5980:15:33"},"returnParameters":{"id":7088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7106,"src":"6019:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":7086,"name":"uint176","nodeType":"ElementaryTypeName","src":"6019:7:33","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6018:9:33"},"scope":8394,"src":"5962:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7130,"nodeType":"Block","src":"6549:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7115,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7109,"src":"6567:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6581:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":7117,"name":"uint168","nodeType":"ElementaryTypeName","src":"6581:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":7116,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6576:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6576:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":7120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6576:17:33","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6567:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":7122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6595:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":7114,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6559:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6559:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7124,"nodeType":"ExpressionStatement","src":"6559:78:33"},{"expression":{"arguments":[{"id":7127,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7109,"src":"6662:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6654:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":7125,"name":"uint168","nodeType":"ElementaryTypeName","src":"6654:7:33","typeDescriptions":{}}},"id":7128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6654:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":7113,"id":7129,"nodeType":"Return","src":"6647:21:33"}]},"documentation":{"id":7107,"nodeType":"StructuredDocumentation","src":"6160:318:33","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":7131,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6492:9:33","nodeType":"FunctionDefinition","parameters":{"id":7110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7109,"mutability":"mutable","name":"value","nameLocation":"6510:5:33","nodeType":"VariableDeclaration","scope":7131,"src":"6502:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7108,"name":"uint256","nodeType":"ElementaryTypeName","src":"6502:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6501:15:33"},"returnParameters":{"id":7113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7131,"src":"6540:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":7111,"name":"uint168","nodeType":"ElementaryTypeName","src":"6540:7:33","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6539:9:33"},"scope":8394,"src":"6483:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7155,"nodeType":"Block","src":"7070:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7140,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7134,"src":"7088:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7102:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7142,"name":"uint160","nodeType":"ElementaryTypeName","src":"7102:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":7141,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7097:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7097:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":7145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"7097:17:33","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7088:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":7147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7116:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":7139,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7080:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7080:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7149,"nodeType":"ExpressionStatement","src":"7080:78:33"},{"expression":{"arguments":[{"id":7152,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7134,"src":"7183:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7175:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7150,"name":"uint160","nodeType":"ElementaryTypeName","src":"7175:7:33","typeDescriptions":{}}},"id":7153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7175:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":7138,"id":7154,"nodeType":"Return","src":"7168:21:33"}]},"documentation":{"id":7132,"nodeType":"StructuredDocumentation","src":"6681:318:33","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":7156,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7013:9:33","nodeType":"FunctionDefinition","parameters":{"id":7135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7134,"mutability":"mutable","name":"value","nameLocation":"7031:5:33","nodeType":"VariableDeclaration","scope":7156,"src":"7023:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7133,"name":"uint256","nodeType":"ElementaryTypeName","src":"7023:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7022:15:33"},"returnParameters":{"id":7138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7156,"src":"7061:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":7136,"name":"uint160","nodeType":"ElementaryTypeName","src":"7061:7:33","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7060:9:33"},"scope":8394,"src":"7004:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7180,"nodeType":"Block","src":"7591:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7159,"src":"7609:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7623:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":7167,"name":"uint152","nodeType":"ElementaryTypeName","src":"7623:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":7166,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7618:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7618:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":7170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"7618:17:33","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7609:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":7172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7637:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":7164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7601:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7601:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7174,"nodeType":"ExpressionStatement","src":"7601:78:33"},{"expression":{"arguments":[{"id":7177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7159,"src":"7704:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7696:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":7175,"name":"uint152","nodeType":"ElementaryTypeName","src":"7696:7:33","typeDescriptions":{}}},"id":7178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7696:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":7163,"id":7179,"nodeType":"Return","src":"7689:21:33"}]},"documentation":{"id":7157,"nodeType":"StructuredDocumentation","src":"7202:318:33","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":7181,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7534:9:33","nodeType":"FunctionDefinition","parameters":{"id":7160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7159,"mutability":"mutable","name":"value","nameLocation":"7552:5:33","nodeType":"VariableDeclaration","scope":7181,"src":"7544:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7158,"name":"uint256","nodeType":"ElementaryTypeName","src":"7544:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7543:15:33"},"returnParameters":{"id":7163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7181,"src":"7582:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":7161,"name":"uint152","nodeType":"ElementaryTypeName","src":"7582:7:33","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7581:9:33"},"scope":8394,"src":"7525:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7205,"nodeType":"Block","src":"8112:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7190,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"8130:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8144:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":7192,"name":"uint144","nodeType":"ElementaryTypeName","src":"8144:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":7191,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8139:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8139:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":7195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"8139:17:33","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8130:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":7197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8158:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":7189,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8122:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8122:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7199,"nodeType":"ExpressionStatement","src":"8122:78:33"},{"expression":{"arguments":[{"id":7202,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"8225:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8217:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":7200,"name":"uint144","nodeType":"ElementaryTypeName","src":"8217:7:33","typeDescriptions":{}}},"id":7203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8217:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":7188,"id":7204,"nodeType":"Return","src":"8210:21:33"}]},"documentation":{"id":7182,"nodeType":"StructuredDocumentation","src":"7723:318:33","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":7206,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8055:9:33","nodeType":"FunctionDefinition","parameters":{"id":7185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7184,"mutability":"mutable","name":"value","nameLocation":"8073:5:33","nodeType":"VariableDeclaration","scope":7206,"src":"8065:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7183,"name":"uint256","nodeType":"ElementaryTypeName","src":"8065:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8064:15:33"},"returnParameters":{"id":7188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7206,"src":"8103:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":7186,"name":"uint144","nodeType":"ElementaryTypeName","src":"8103:7:33","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8102:9:33"},"scope":8394,"src":"8046:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7230,"nodeType":"Block","src":"8633:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7209,"src":"8651:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8665:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":7217,"name":"uint136","nodeType":"ElementaryTypeName","src":"8665:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":7216,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8660:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8660:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":7220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"8660:17:33","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8651:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":7222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8679:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":7214,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8643:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8643:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7224,"nodeType":"ExpressionStatement","src":"8643:78:33"},{"expression":{"arguments":[{"id":7227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7209,"src":"8746:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8738:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":7225,"name":"uint136","nodeType":"ElementaryTypeName","src":"8738:7:33","typeDescriptions":{}}},"id":7228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8738:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":7213,"id":7229,"nodeType":"Return","src":"8731:21:33"}]},"documentation":{"id":7207,"nodeType":"StructuredDocumentation","src":"8244:318:33","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":7231,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8576:9:33","nodeType":"FunctionDefinition","parameters":{"id":7210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7209,"mutability":"mutable","name":"value","nameLocation":"8594:5:33","nodeType":"VariableDeclaration","scope":7231,"src":"8586:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7208,"name":"uint256","nodeType":"ElementaryTypeName","src":"8586:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8585:15:33"},"returnParameters":{"id":7213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7231,"src":"8624:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":7211,"name":"uint136","nodeType":"ElementaryTypeName","src":"8624:7:33","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8623:9:33"},"scope":8394,"src":"8567:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7255,"nodeType":"Block","src":"9154:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7234,"src":"9172:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9186:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":7242,"name":"uint128","nodeType":"ElementaryTypeName","src":"9186:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":7241,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9181:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9181:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":7245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"9181:17:33","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9172:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9200:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":7239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9164:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9164:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7249,"nodeType":"ExpressionStatement","src":"9164:78:33"},{"expression":{"arguments":[{"id":7252,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7234,"src":"9267:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9259:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":7250,"name":"uint128","nodeType":"ElementaryTypeName","src":"9259:7:33","typeDescriptions":{}}},"id":7253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9259:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":7238,"id":7254,"nodeType":"Return","src":"9252:21:33"}]},"documentation":{"id":7232,"nodeType":"StructuredDocumentation","src":"8765:318:33","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v2.5._"},"id":7256,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9097:9:33","nodeType":"FunctionDefinition","parameters":{"id":7235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7234,"mutability":"mutable","name":"value","nameLocation":"9115:5:33","nodeType":"VariableDeclaration","scope":7256,"src":"9107:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7233,"name":"uint256","nodeType":"ElementaryTypeName","src":"9107:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9106:15:33"},"returnParameters":{"id":7238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7256,"src":"9145:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":7236,"name":"uint128","nodeType":"ElementaryTypeName","src":"9145:7:33","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9144:9:33"},"scope":8394,"src":"9088:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7280,"nodeType":"Block","src":"9675:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7265,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7259,"src":"9693:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9707:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":7267,"name":"uint120","nodeType":"ElementaryTypeName","src":"9707:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":7266,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9702:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9702:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":7270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"9702:17:33","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9693:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":7272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9721:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":7264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9685:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9685:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7274,"nodeType":"ExpressionStatement","src":"9685:78:33"},{"expression":{"arguments":[{"id":7277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7259,"src":"9788:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9780:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":7275,"name":"uint120","nodeType":"ElementaryTypeName","src":"9780:7:33","typeDescriptions":{}}},"id":7278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9780:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":7263,"id":7279,"nodeType":"Return","src":"9773:21:33"}]},"documentation":{"id":7257,"nodeType":"StructuredDocumentation","src":"9286:318:33","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":7281,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9618:9:33","nodeType":"FunctionDefinition","parameters":{"id":7260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7259,"mutability":"mutable","name":"value","nameLocation":"9636:5:33","nodeType":"VariableDeclaration","scope":7281,"src":"9628:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7258,"name":"uint256","nodeType":"ElementaryTypeName","src":"9628:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9627:15:33"},"returnParameters":{"id":7263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7281,"src":"9666:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":7261,"name":"uint120","nodeType":"ElementaryTypeName","src":"9666:7:33","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9665:9:33"},"scope":8394,"src":"9609:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7305,"nodeType":"Block","src":"10196:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"10214:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10228:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":7292,"name":"uint112","nodeType":"ElementaryTypeName","src":"10228:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":7291,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10223:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10223:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":7295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10223:17:33","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10214:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10242:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":7289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10206:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10206:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7299,"nodeType":"ExpressionStatement","src":"10206:78:33"},{"expression":{"arguments":[{"id":7302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"10309:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10301:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":7300,"name":"uint112","nodeType":"ElementaryTypeName","src":"10301:7:33","typeDescriptions":{}}},"id":7303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10301:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":7288,"id":7304,"nodeType":"Return","src":"10294:21:33"}]},"documentation":{"id":7282,"nodeType":"StructuredDocumentation","src":"9807:318:33","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":7306,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10139:9:33","nodeType":"FunctionDefinition","parameters":{"id":7285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7284,"mutability":"mutable","name":"value","nameLocation":"10157:5:33","nodeType":"VariableDeclaration","scope":7306,"src":"10149:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7283,"name":"uint256","nodeType":"ElementaryTypeName","src":"10149:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10148:15:33"},"returnParameters":{"id":7288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7306,"src":"10187:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":7286,"name":"uint112","nodeType":"ElementaryTypeName","src":"10187:7:33","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10186:9:33"},"scope":8394,"src":"10130:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7330,"nodeType":"Block","src":"10717:126:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7315,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7309,"src":"10735:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10749:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":7317,"name":"uint104","nodeType":"ElementaryTypeName","src":"10749:7:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":7316,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10744:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10744:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":7320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10744:17:33","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10735:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":7322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10763:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":7314,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10727:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10727:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7324,"nodeType":"ExpressionStatement","src":"10727:78:33"},{"expression":{"arguments":[{"id":7327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7309,"src":"10830:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10822:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":7325,"name":"uint104","nodeType":"ElementaryTypeName","src":"10822:7:33","typeDescriptions":{}}},"id":7328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10822:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":7313,"id":7329,"nodeType":"Return","src":"10815:21:33"}]},"documentation":{"id":7307,"nodeType":"StructuredDocumentation","src":"10328:318:33","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":7331,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10660:9:33","nodeType":"FunctionDefinition","parameters":{"id":7310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7309,"mutability":"mutable","name":"value","nameLocation":"10678:5:33","nodeType":"VariableDeclaration","scope":7331,"src":"10670:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7308,"name":"uint256","nodeType":"ElementaryTypeName","src":"10670:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10669:15:33"},"returnParameters":{"id":7313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7331,"src":"10708:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":7311,"name":"uint104","nodeType":"ElementaryTypeName","src":"10708:7:33","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10707:9:33"},"scope":8394,"src":"10651:192:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7355,"nodeType":"Block","src":"11232:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"11250:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11264:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":7342,"name":"uint96","nodeType":"ElementaryTypeName","src":"11264:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":7341,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11259:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11259:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":7345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11259:16:33","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11250:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":7347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11277:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":7339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11242:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11242:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7349,"nodeType":"ExpressionStatement","src":"11242:76:33"},{"expression":{"arguments":[{"id":7352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7334,"src":"11342:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11335:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":7350,"name":"uint96","nodeType":"ElementaryTypeName","src":"11335:6:33","typeDescriptions":{}}},"id":7353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11335:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":7338,"id":7354,"nodeType":"Return","src":"11328:20:33"}]},"documentation":{"id":7332,"nodeType":"StructuredDocumentation","src":"10849:314:33","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.2._"},"id":7356,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11177:8:33","nodeType":"FunctionDefinition","parameters":{"id":7335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7334,"mutability":"mutable","name":"value","nameLocation":"11194:5:33","nodeType":"VariableDeclaration","scope":7356,"src":"11186:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7333,"name":"uint256","nodeType":"ElementaryTypeName","src":"11186:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11185:15:33"},"returnParameters":{"id":7338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7356,"src":"11224:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":7336,"name":"uint96","nodeType":"ElementaryTypeName","src":"11224:6:33","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11223:8:33"},"scope":8394,"src":"11168:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7380,"nodeType":"Block","src":"11744:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7359,"src":"11762:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":7367,"name":"uint88","nodeType":"ElementaryTypeName","src":"11776:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":7366,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11771:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11771:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":7370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"11771:16:33","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11762:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":7372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11789:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":7364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11754:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11754:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7374,"nodeType":"ExpressionStatement","src":"11754:76:33"},{"expression":{"arguments":[{"id":7377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7359,"src":"11854:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11847:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":7375,"name":"uint88","nodeType":"ElementaryTypeName","src":"11847:6:33","typeDescriptions":{}}},"id":7378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11847:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":7363,"id":7379,"nodeType":"Return","src":"11840:20:33"}]},"documentation":{"id":7357,"nodeType":"StructuredDocumentation","src":"11361:314:33","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":7381,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11689:8:33","nodeType":"FunctionDefinition","parameters":{"id":7360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7359,"mutability":"mutable","name":"value","nameLocation":"11706:5:33","nodeType":"VariableDeclaration","scope":7381,"src":"11698:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7358,"name":"uint256","nodeType":"ElementaryTypeName","src":"11698:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11697:15:33"},"returnParameters":{"id":7363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7381,"src":"11736:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":7361,"name":"uint88","nodeType":"ElementaryTypeName","src":"11736:6:33","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11735:8:33"},"scope":8394,"src":"11680:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7405,"nodeType":"Block","src":"12256:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7390,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"12274:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12288:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":7392,"name":"uint80","nodeType":"ElementaryTypeName","src":"12288:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":7391,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12283:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12283:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":7395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"12283:16:33","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12274:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":7397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12301:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":7389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12266:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12266:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7399,"nodeType":"ExpressionStatement","src":"12266:76:33"},{"expression":{"arguments":[{"id":7402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7384,"src":"12366:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12359:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":7400,"name":"uint80","nodeType":"ElementaryTypeName","src":"12359:6:33","typeDescriptions":{}}},"id":7403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12359:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":7388,"id":7404,"nodeType":"Return","src":"12352:20:33"}]},"documentation":{"id":7382,"nodeType":"StructuredDocumentation","src":"11873:314:33","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":7406,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12201:8:33","nodeType":"FunctionDefinition","parameters":{"id":7385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7384,"mutability":"mutable","name":"value","nameLocation":"12218:5:33","nodeType":"VariableDeclaration","scope":7406,"src":"12210:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7383,"name":"uint256","nodeType":"ElementaryTypeName","src":"12210:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:15:33"},"returnParameters":{"id":7388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7406,"src":"12248:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":7386,"name":"uint80","nodeType":"ElementaryTypeName","src":"12248:6:33","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12247:8:33"},"scope":8394,"src":"12192:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7430,"nodeType":"Block","src":"12768:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7415,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"12786:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12800:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":7417,"name":"uint72","nodeType":"ElementaryTypeName","src":"12800:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":7416,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12795:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12795:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":7420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"12795:16:33","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12786:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":7422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12813:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":7414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12778:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12778:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7424,"nodeType":"ExpressionStatement","src":"12778:76:33"},{"expression":{"arguments":[{"id":7427,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"12878:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12871:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":7425,"name":"uint72","nodeType":"ElementaryTypeName","src":"12871:6:33","typeDescriptions":{}}},"id":7428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12871:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":7413,"id":7429,"nodeType":"Return","src":"12864:20:33"}]},"documentation":{"id":7407,"nodeType":"StructuredDocumentation","src":"12385:314:33","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":7431,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12713:8:33","nodeType":"FunctionDefinition","parameters":{"id":7410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7409,"mutability":"mutable","name":"value","nameLocation":"12730:5:33","nodeType":"VariableDeclaration","scope":7431,"src":"12722:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7408,"name":"uint256","nodeType":"ElementaryTypeName","src":"12722:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12721:15:33"},"returnParameters":{"id":7413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7431,"src":"12760:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":7411,"name":"uint72","nodeType":"ElementaryTypeName","src":"12760:6:33","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12759:8:33"},"scope":8394,"src":"12704:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7455,"nodeType":"Block","src":"13280:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7440,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7434,"src":"13298:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13312:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":7442,"name":"uint64","nodeType":"ElementaryTypeName","src":"13312:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":7441,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13307:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13307:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":7445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"13307:16:33","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13298:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":7447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13325:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":7439,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13290:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13290:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7449,"nodeType":"ExpressionStatement","src":"13290:76:33"},{"expression":{"arguments":[{"id":7452,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7434,"src":"13390:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13383:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":7450,"name":"uint64","nodeType":"ElementaryTypeName","src":"13383:6:33","typeDescriptions":{}}},"id":7453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13383:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":7438,"id":7454,"nodeType":"Return","src":"13376:20:33"}]},"documentation":{"id":7432,"nodeType":"StructuredDocumentation","src":"12897:314:33","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v2.5._"},"id":7456,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13225:8:33","nodeType":"FunctionDefinition","parameters":{"id":7435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7434,"mutability":"mutable","name":"value","nameLocation":"13242:5:33","nodeType":"VariableDeclaration","scope":7456,"src":"13234:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7433,"name":"uint256","nodeType":"ElementaryTypeName","src":"13234:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13233:15:33"},"returnParameters":{"id":7438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7456,"src":"13272:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":7436,"name":"uint64","nodeType":"ElementaryTypeName","src":"13272:6:33","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13271:8:33"},"scope":8394,"src":"13216:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7480,"nodeType":"Block","src":"13792:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7459,"src":"13810:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13824:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":7467,"name":"uint56","nodeType":"ElementaryTypeName","src":"13824:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":7466,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13819:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13819:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":7470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"13819:16:33","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13810:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":7472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13837:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":7464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13802:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13802:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7474,"nodeType":"ExpressionStatement","src":"13802:76:33"},{"expression":{"arguments":[{"id":7477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7459,"src":"13902:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13895:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":7475,"name":"uint56","nodeType":"ElementaryTypeName","src":"13895:6:33","typeDescriptions":{}}},"id":7478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13895:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":7463,"id":7479,"nodeType":"Return","src":"13888:20:33"}]},"documentation":{"id":7457,"nodeType":"StructuredDocumentation","src":"13409:314:33","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":7481,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13737:8:33","nodeType":"FunctionDefinition","parameters":{"id":7460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7459,"mutability":"mutable","name":"value","nameLocation":"13754:5:33","nodeType":"VariableDeclaration","scope":7481,"src":"13746:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7458,"name":"uint256","nodeType":"ElementaryTypeName","src":"13746:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13745:15:33"},"returnParameters":{"id":7463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7481,"src":"13784:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":7461,"name":"uint56","nodeType":"ElementaryTypeName","src":"13784:6:33","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13783:8:33"},"scope":8394,"src":"13728:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7505,"nodeType":"Block","src":"14304:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7490,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"14322:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14336:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":7492,"name":"uint48","nodeType":"ElementaryTypeName","src":"14336:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":7491,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14331:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14331:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":7495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"14331:16:33","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14322:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":7497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14349:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":7489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14314:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14314:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7499,"nodeType":"ExpressionStatement","src":"14314:76:33"},{"expression":{"arguments":[{"id":7502,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"14414:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14407:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":7500,"name":"uint48","nodeType":"ElementaryTypeName","src":"14407:6:33","typeDescriptions":{}}},"id":7503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14407:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":7488,"id":7504,"nodeType":"Return","src":"14400:20:33"}]},"documentation":{"id":7482,"nodeType":"StructuredDocumentation","src":"13921:314:33","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":7506,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14249:8:33","nodeType":"FunctionDefinition","parameters":{"id":7485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7484,"mutability":"mutable","name":"value","nameLocation":"14266:5:33","nodeType":"VariableDeclaration","scope":7506,"src":"14258:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7483,"name":"uint256","nodeType":"ElementaryTypeName","src":"14258:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14257:15:33"},"returnParameters":{"id":7488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7506,"src":"14296:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":7486,"name":"uint48","nodeType":"ElementaryTypeName","src":"14296:6:33","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14295:8:33"},"scope":8394,"src":"14240:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7530,"nodeType":"Block","src":"14816:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"14834:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14848:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":7517,"name":"uint40","nodeType":"ElementaryTypeName","src":"14848:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":7516,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14843:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14843:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":7520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"14843:16:33","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14834:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":7522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14861:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":7514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14826:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14826:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7524,"nodeType":"ExpressionStatement","src":"14826:76:33"},{"expression":{"arguments":[{"id":7527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"14926:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14919:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":7525,"name":"uint40","nodeType":"ElementaryTypeName","src":"14919:6:33","typeDescriptions":{}}},"id":7528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14919:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":7513,"id":7529,"nodeType":"Return","src":"14912:20:33"}]},"documentation":{"id":7507,"nodeType":"StructuredDocumentation","src":"14433:314:33","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":7531,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14761:8:33","nodeType":"FunctionDefinition","parameters":{"id":7510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7509,"mutability":"mutable","name":"value","nameLocation":"14778:5:33","nodeType":"VariableDeclaration","scope":7531,"src":"14770:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7508,"name":"uint256","nodeType":"ElementaryTypeName","src":"14770:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14769:15:33"},"returnParameters":{"id":7513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7531,"src":"14808:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":7511,"name":"uint40","nodeType":"ElementaryTypeName","src":"14808:6:33","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14807:8:33"},"scope":8394,"src":"14752:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7555,"nodeType":"Block","src":"15328:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7540,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7534,"src":"15346:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15360:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":7542,"name":"uint32","nodeType":"ElementaryTypeName","src":"15360:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":7541,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15355:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15355:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":7545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"15355:16:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15346:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":7547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15373:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":7539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15338:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15338:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7549,"nodeType":"ExpressionStatement","src":"15338:76:33"},{"expression":{"arguments":[{"id":7552,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7534,"src":"15438:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15431:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":7550,"name":"uint32","nodeType":"ElementaryTypeName","src":"15431:6:33","typeDescriptions":{}}},"id":7553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15431:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":7538,"id":7554,"nodeType":"Return","src":"15424:20:33"}]},"documentation":{"id":7532,"nodeType":"StructuredDocumentation","src":"14945:314:33","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v2.5._"},"id":7556,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15273:8:33","nodeType":"FunctionDefinition","parameters":{"id":7535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7534,"mutability":"mutable","name":"value","nameLocation":"15290:5:33","nodeType":"VariableDeclaration","scope":7556,"src":"15282:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7533,"name":"uint256","nodeType":"ElementaryTypeName","src":"15282:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15281:15:33"},"returnParameters":{"id":7538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7556,"src":"15320:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7536,"name":"uint32","nodeType":"ElementaryTypeName","src":"15320:6:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15319:8:33"},"scope":8394,"src":"15264:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7580,"nodeType":"Block","src":"15840:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7559,"src":"15858:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15872:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":7567,"name":"uint24","nodeType":"ElementaryTypeName","src":"15872:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":7566,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15867:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15867:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":7570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"15867:16:33","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15858:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":7572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15885:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":7564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15850:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15850:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7574,"nodeType":"ExpressionStatement","src":"15850:76:33"},{"expression":{"arguments":[{"id":7577,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7559,"src":"15950:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15943:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":7575,"name":"uint24","nodeType":"ElementaryTypeName","src":"15943:6:33","typeDescriptions":{}}},"id":7578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15943:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":7563,"id":7579,"nodeType":"Return","src":"15936:20:33"}]},"documentation":{"id":7557,"nodeType":"StructuredDocumentation","src":"15457:314:33","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":7581,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15785:8:33","nodeType":"FunctionDefinition","parameters":{"id":7560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7559,"mutability":"mutable","name":"value","nameLocation":"15802:5:33","nodeType":"VariableDeclaration","scope":7581,"src":"15794:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7558,"name":"uint256","nodeType":"ElementaryTypeName","src":"15794:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15793:15:33"},"returnParameters":{"id":7563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7581,"src":"15832:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7561,"name":"uint24","nodeType":"ElementaryTypeName","src":"15832:6:33","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15831:8:33"},"scope":8394,"src":"15776:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7605,"nodeType":"Block","src":"16352:123:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7584,"src":"16370:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16384:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":7592,"name":"uint16","nodeType":"ElementaryTypeName","src":"16384:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":7591,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16379:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16379:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":7595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"16379:16:33","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16370:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":7597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16397:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":7589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16362:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16362:76:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7599,"nodeType":"ExpressionStatement","src":"16362:76:33"},{"expression":{"arguments":[{"id":7602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7584,"src":"16462:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16455:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":7600,"name":"uint16","nodeType":"ElementaryTypeName","src":"16455:6:33","typeDescriptions":{}}},"id":7603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16455:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":7588,"id":7604,"nodeType":"Return","src":"16448:20:33"}]},"documentation":{"id":7582,"nodeType":"StructuredDocumentation","src":"15969:314:33","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v2.5._"},"id":7606,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16297:8:33","nodeType":"FunctionDefinition","parameters":{"id":7585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7584,"mutability":"mutable","name":"value","nameLocation":"16314:5:33","nodeType":"VariableDeclaration","scope":7606,"src":"16306:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7583,"name":"uint256","nodeType":"ElementaryTypeName","src":"16306:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16305:15:33"},"returnParameters":{"id":7588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7606,"src":"16344:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7586,"name":"uint16","nodeType":"ElementaryTypeName","src":"16344:6:33","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16343:8:33"},"scope":8394,"src":"16288:187:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7630,"nodeType":"Block","src":"16858:120:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7609,"src":"16876:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":7618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16890:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7617,"name":"uint8","nodeType":"ElementaryTypeName","src":"16890:5:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":7616,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16885:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16885:11:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":7620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"16885:15:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16876:24:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":7622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16902:39:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":7614,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16868:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16868:74:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7624,"nodeType":"ExpressionStatement","src":"16868:74:33"},{"expression":{"arguments":[{"id":7627,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7609,"src":"16965:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16959:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7625,"name":"uint8","nodeType":"ElementaryTypeName","src":"16959:5:33","typeDescriptions":{}}},"id":7628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16959:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":7613,"id":7629,"nodeType":"Return","src":"16952:19:33"}]},"documentation":{"id":7607,"nodeType":"StructuredDocumentation","src":"16481:310:33","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v2.5._"},"id":7631,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16805:7:33","nodeType":"FunctionDefinition","parameters":{"id":7610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7609,"mutability":"mutable","name":"value","nameLocation":"16821:5:33","nodeType":"VariableDeclaration","scope":7631,"src":"16813:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7608,"name":"uint256","nodeType":"ElementaryTypeName","src":"16813:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16812:15:33"},"returnParameters":{"id":7613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7631,"src":"16851:5:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7611,"name":"uint8","nodeType":"ElementaryTypeName","src":"16851:5:33","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16850:7:33"},"scope":8394,"src":"16796:182:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7651,"nodeType":"Block","src":"17252:103:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7634,"src":"17270:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":7641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17279:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17270:10:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c7565206d75737420626520706f736974697665","id":7643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17282:34:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""},"value":"SafeCast: value must be positive"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74e6d3a4204092bea305532ded31d3763fc378e46be3884a93ceff08a0761807","typeString":"literal_string \"SafeCast: value must be positive\""}],"id":7639,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17262:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17262:55:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7645,"nodeType":"ExpressionStatement","src":"17262:55:33"},{"expression":{"arguments":[{"id":7648,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7634,"src":"17342:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17334:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7646,"name":"uint256","nodeType":"ElementaryTypeName","src":"17334:7:33","typeDescriptions":{}}},"id":7649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17334:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7638,"id":7650,"nodeType":"Return","src":"17327:21:33"}]},"documentation":{"id":7632,"nodeType":"StructuredDocumentation","src":"16984:198:33","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0.\n _Available since v3.0._"},"id":7652,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17196:9:33","nodeType":"FunctionDefinition","parameters":{"id":7635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7634,"mutability":"mutable","name":"value","nameLocation":"17213:5:33","nodeType":"VariableDeclaration","scope":7652,"src":"17206:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7633,"name":"int256","nodeType":"ElementaryTypeName","src":"17206:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17205:14:33"},"returnParameters":{"id":7638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7652,"src":"17243:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7636,"name":"uint256","nodeType":"ElementaryTypeName","src":"17243:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17242:9:33"},"scope":8394,"src":"17187:168:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7674,"nodeType":"Block","src":"17790:124:33","statements":[{"expression":{"id":7665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7660,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"17800:10:33","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"17820:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17813:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":7661,"name":"int248","nodeType":"ElementaryTypeName","src":"17813:6:33","typeDescriptions":{}}},"id":7664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17813:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17800:26:33","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":7666,"nodeType":"ExpressionStatement","src":"17800:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7668,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"17844:10:33","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7669,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"17858:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17844:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":7671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17865:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""},"value":"SafeCast: value doesn't fit in 248 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ac19bba4607c9b45ff35f54fbc4ca64c29c7457109a16fa180ea77cdbda8593","typeString":"literal_string \"SafeCast: value doesn't fit in 248 bits\""}],"id":7667,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17836:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17836:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7673,"nodeType":"ExpressionStatement","src":"17836:71:33"}]},"documentation":{"id":7653,"nodeType":"StructuredDocumentation","src":"17361:350:33","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits\n _Available since v4.7._"},"id":7675,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17725:8:33","nodeType":"FunctionDefinition","parameters":{"id":7656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7655,"mutability":"mutable","name":"value","nameLocation":"17741:5:33","nodeType":"VariableDeclaration","scope":7675,"src":"17734:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7654,"name":"int256","nodeType":"ElementaryTypeName","src":"17734:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17733:14:33"},"returnParameters":{"id":7659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7658,"mutability":"mutable","name":"downcasted","nameLocation":"17778:10:33","nodeType":"VariableDeclaration","scope":7675,"src":"17771:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":7657,"name":"int248","nodeType":"ElementaryTypeName","src":"17771:6:33","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17770:19:33"},"scope":8394,"src":"17716:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7697,"nodeType":"Block","src":"18349:124:33","statements":[{"expression":{"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7683,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7681,"src":"18359:10:33","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7686,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7678,"src":"18379:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18372:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":7684,"name":"int240","nodeType":"ElementaryTypeName","src":"18372:6:33","typeDescriptions":{}}},"id":7687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18372:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18359:26:33","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":7689,"nodeType":"ExpressionStatement","src":"18359:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7691,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7681,"src":"18403:10:33","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7692,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7678,"src":"18417:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18403:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":7694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18424:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""},"value":"SafeCast: value doesn't fit in 240 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_375fa0f6cb9fb5845d214c630920cedf4424913ed6dc32c297d430efa3d61a87","typeString":"literal_string \"SafeCast: value doesn't fit in 240 bits\""}],"id":7690,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18395:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18395:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7696,"nodeType":"ExpressionStatement","src":"18395:71:33"}]},"documentation":{"id":7676,"nodeType":"StructuredDocumentation","src":"17920:350:33","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits\n _Available since v4.7._"},"id":7698,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18284:8:33","nodeType":"FunctionDefinition","parameters":{"id":7679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7678,"mutability":"mutable","name":"value","nameLocation":"18300:5:33","nodeType":"VariableDeclaration","scope":7698,"src":"18293:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7677,"name":"int256","nodeType":"ElementaryTypeName","src":"18293:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18292:14:33"},"returnParameters":{"id":7682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7681,"mutability":"mutable","name":"downcasted","nameLocation":"18337:10:33","nodeType":"VariableDeclaration","scope":7698,"src":"18330:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":7680,"name":"int240","nodeType":"ElementaryTypeName","src":"18330:6:33","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18329:19:33"},"scope":8394,"src":"18275:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7720,"nodeType":"Block","src":"18908:124:33","statements":[{"expression":{"id":7711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7706,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7704,"src":"18918:10:33","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7701,"src":"18938:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18931:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":7707,"name":"int232","nodeType":"ElementaryTypeName","src":"18931:6:33","typeDescriptions":{}}},"id":7710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18931:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18918:26:33","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":7712,"nodeType":"ExpressionStatement","src":"18918:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7714,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7704,"src":"18962:10:33","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7701,"src":"18976:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18962:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":7717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18983:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""},"value":"SafeCast: value doesn't fit in 232 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5797fb2c4589bd6a92752ce0eacaac67341e37ab28c96c2284ab897e7ac77957","typeString":"literal_string \"SafeCast: value doesn't fit in 232 bits\""}],"id":7713,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18954:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18954:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7719,"nodeType":"ExpressionStatement","src":"18954:71:33"}]},"documentation":{"id":7699,"nodeType":"StructuredDocumentation","src":"18479:350:33","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits\n _Available since v4.7._"},"id":7721,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18843:8:33","nodeType":"FunctionDefinition","parameters":{"id":7702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7701,"mutability":"mutable","name":"value","nameLocation":"18859:5:33","nodeType":"VariableDeclaration","scope":7721,"src":"18852:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7700,"name":"int256","nodeType":"ElementaryTypeName","src":"18852:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18851:14:33"},"returnParameters":{"id":7705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7704,"mutability":"mutable","name":"downcasted","nameLocation":"18896:10:33","nodeType":"VariableDeclaration","scope":7721,"src":"18889:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":7703,"name":"int232","nodeType":"ElementaryTypeName","src":"18889:6:33","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18888:19:33"},"scope":8394,"src":"18834:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7743,"nodeType":"Block","src":"19467:124:33","statements":[{"expression":{"id":7734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7729,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"19477:10:33","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7732,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"19497:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19490:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":7730,"name":"int224","nodeType":"ElementaryTypeName","src":"19490:6:33","typeDescriptions":{}}},"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19490:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19477:26:33","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":7735,"nodeType":"ExpressionStatement","src":"19477:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7737,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"19521:10:33","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7738,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7724,"src":"19535:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19521:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":7740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19542:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""},"value":"SafeCast: value doesn't fit in 224 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79","typeString":"literal_string \"SafeCast: value doesn't fit in 224 bits\""}],"id":7736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19513:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19513:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7742,"nodeType":"ExpressionStatement","src":"19513:71:33"}]},"documentation":{"id":7722,"nodeType":"StructuredDocumentation","src":"19038:350:33","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits\n _Available since v4.7._"},"id":7744,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19402:8:33","nodeType":"FunctionDefinition","parameters":{"id":7725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7724,"mutability":"mutable","name":"value","nameLocation":"19418:5:33","nodeType":"VariableDeclaration","scope":7744,"src":"19411:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7723,"name":"int256","nodeType":"ElementaryTypeName","src":"19411:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19410:14:33"},"returnParameters":{"id":7728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7727,"mutability":"mutable","name":"downcasted","nameLocation":"19455:10:33","nodeType":"VariableDeclaration","scope":7744,"src":"19448:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":7726,"name":"int224","nodeType":"ElementaryTypeName","src":"19448:6:33","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19447:19:33"},"scope":8394,"src":"19393:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7766,"nodeType":"Block","src":"20026:124:33","statements":[{"expression":{"id":7757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7752,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"20036:10:33","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"20056:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20049:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":7753,"name":"int216","nodeType":"ElementaryTypeName","src":"20049:6:33","typeDescriptions":{}}},"id":7756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20049:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"20036:26:33","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":7758,"nodeType":"ExpressionStatement","src":"20036:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7760,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"20080:10:33","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"20094:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20080:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":7763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20101:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""},"value":"SafeCast: value doesn't fit in 216 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8966adc0aad8dc91b207c69c3eb4937e498af8cc706cfe7edd55f3a6ea53488d","typeString":"literal_string \"SafeCast: value doesn't fit in 216 bits\""}],"id":7759,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20072:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20072:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7765,"nodeType":"ExpressionStatement","src":"20072:71:33"}]},"documentation":{"id":7745,"nodeType":"StructuredDocumentation","src":"19597:350:33","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits\n _Available since v4.7._"},"id":7767,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19961:8:33","nodeType":"FunctionDefinition","parameters":{"id":7748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7747,"mutability":"mutable","name":"value","nameLocation":"19977:5:33","nodeType":"VariableDeclaration","scope":7767,"src":"19970:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7746,"name":"int256","nodeType":"ElementaryTypeName","src":"19970:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19969:14:33"},"returnParameters":{"id":7751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7750,"mutability":"mutable","name":"downcasted","nameLocation":"20014:10:33","nodeType":"VariableDeclaration","scope":7767,"src":"20007:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":7749,"name":"int216","nodeType":"ElementaryTypeName","src":"20007:6:33","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"20006:19:33"},"scope":8394,"src":"19952:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7789,"nodeType":"Block","src":"20585:124:33","statements":[{"expression":{"id":7780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7775,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"20595:10:33","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7770,"src":"20615:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20608:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":7776,"name":"int208","nodeType":"ElementaryTypeName","src":"20608:6:33","typeDescriptions":{}}},"id":7779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20608:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20595:26:33","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":7781,"nodeType":"ExpressionStatement","src":"20595:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7783,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"20639:10:33","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7784,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7770,"src":"20653:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20639:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":7786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20660:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""},"value":"SafeCast: value doesn't fit in 208 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43d81217fa633fa1c6e88855de94fb990f5831ac266b0a90afa660e986ab5e23","typeString":"literal_string \"SafeCast: value doesn't fit in 208 bits\""}],"id":7782,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20631:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20631:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7788,"nodeType":"ExpressionStatement","src":"20631:71:33"}]},"documentation":{"id":7768,"nodeType":"StructuredDocumentation","src":"20156:350:33","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits\n _Available since v4.7._"},"id":7790,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20520:8:33","nodeType":"FunctionDefinition","parameters":{"id":7771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7770,"mutability":"mutable","name":"value","nameLocation":"20536:5:33","nodeType":"VariableDeclaration","scope":7790,"src":"20529:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7769,"name":"int256","nodeType":"ElementaryTypeName","src":"20529:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20528:14:33"},"returnParameters":{"id":7774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7773,"mutability":"mutable","name":"downcasted","nameLocation":"20573:10:33","nodeType":"VariableDeclaration","scope":7790,"src":"20566:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":7772,"name":"int208","nodeType":"ElementaryTypeName","src":"20566:6:33","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20565:19:33"},"scope":8394,"src":"20511:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7812,"nodeType":"Block","src":"21144:124:33","statements":[{"expression":{"id":7803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7798,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7796,"src":"21154:10:33","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7801,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"21174:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21167:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":7799,"name":"int200","nodeType":"ElementaryTypeName","src":"21167:6:33","typeDescriptions":{}}},"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21167:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21154:26:33","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":7804,"nodeType":"ExpressionStatement","src":"21154:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7806,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7796,"src":"21198:10:33","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7807,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"21212:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21198:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":7809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21219:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""},"value":"SafeCast: value doesn't fit in 200 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df8130f294fe2698967ea9ead82c4da9454490567d976d00551e0174e655314c","typeString":"literal_string \"SafeCast: value doesn't fit in 200 bits\""}],"id":7805,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21190:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21190:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7811,"nodeType":"ExpressionStatement","src":"21190:71:33"}]},"documentation":{"id":7791,"nodeType":"StructuredDocumentation","src":"20715:350:33","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits\n _Available since v4.7._"},"id":7813,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"21079:8:33","nodeType":"FunctionDefinition","parameters":{"id":7794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7793,"mutability":"mutable","name":"value","nameLocation":"21095:5:33","nodeType":"VariableDeclaration","scope":7813,"src":"21088:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7792,"name":"int256","nodeType":"ElementaryTypeName","src":"21088:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21087:14:33"},"returnParameters":{"id":7797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7796,"mutability":"mutable","name":"downcasted","nameLocation":"21132:10:33","nodeType":"VariableDeclaration","scope":7813,"src":"21125:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":7795,"name":"int200","nodeType":"ElementaryTypeName","src":"21125:6:33","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21124:19:33"},"scope":8394,"src":"21070:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7835,"nodeType":"Block","src":"21703:124:33","statements":[{"expression":{"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7821,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7819,"src":"21713:10:33","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7824,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7816,"src":"21733:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21726:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":7822,"name":"int192","nodeType":"ElementaryTypeName","src":"21726:6:33","typeDescriptions":{}}},"id":7825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21726:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21713:26:33","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":7827,"nodeType":"ExpressionStatement","src":"21713:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7829,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7819,"src":"21757:10:33","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7816,"src":"21771:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21757:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":7832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21778:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""},"value":"SafeCast: value doesn't fit in 192 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_112978800f12a1c4f1eab82789f7b6defd49dc1c17ba270a84ffc28392fb05ae","typeString":"literal_string \"SafeCast: value doesn't fit in 192 bits\""}],"id":7828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21749:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21749:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7834,"nodeType":"ExpressionStatement","src":"21749:71:33"}]},"documentation":{"id":7814,"nodeType":"StructuredDocumentation","src":"21274:350:33","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits\n _Available since v4.7._"},"id":7836,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21638:8:33","nodeType":"FunctionDefinition","parameters":{"id":7817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7816,"mutability":"mutable","name":"value","nameLocation":"21654:5:33","nodeType":"VariableDeclaration","scope":7836,"src":"21647:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7815,"name":"int256","nodeType":"ElementaryTypeName","src":"21647:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21646:14:33"},"returnParameters":{"id":7820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7819,"mutability":"mutable","name":"downcasted","nameLocation":"21691:10:33","nodeType":"VariableDeclaration","scope":7836,"src":"21684:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":7818,"name":"int192","nodeType":"ElementaryTypeName","src":"21684:6:33","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21683:19:33"},"scope":8394,"src":"21629:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7858,"nodeType":"Block","src":"22262:124:33","statements":[{"expression":{"id":7849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7844,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"22272:10:33","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7847,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7839,"src":"22292:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22285:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":7845,"name":"int184","nodeType":"ElementaryTypeName","src":"22285:6:33","typeDescriptions":{}}},"id":7848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22285:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22272:26:33","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":7850,"nodeType":"ExpressionStatement","src":"22272:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7852,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"22316:10:33","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7853,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7839,"src":"22330:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22316:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":7855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22337:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""},"value":"SafeCast: value doesn't fit in 184 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_86c53d89b1944d561ecfa42e859033241d1df6ea8d42a57ae02f79d45de4aa75","typeString":"literal_string \"SafeCast: value doesn't fit in 184 bits\""}],"id":7851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22308:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22308:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7857,"nodeType":"ExpressionStatement","src":"22308:71:33"}]},"documentation":{"id":7837,"nodeType":"StructuredDocumentation","src":"21833:350:33","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits\n _Available since v4.7._"},"id":7859,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22197:8:33","nodeType":"FunctionDefinition","parameters":{"id":7840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7839,"mutability":"mutable","name":"value","nameLocation":"22213:5:33","nodeType":"VariableDeclaration","scope":7859,"src":"22206:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7838,"name":"int256","nodeType":"ElementaryTypeName","src":"22206:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22205:14:33"},"returnParameters":{"id":7843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7842,"mutability":"mutable","name":"downcasted","nameLocation":"22250:10:33","nodeType":"VariableDeclaration","scope":7859,"src":"22243:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":7841,"name":"int184","nodeType":"ElementaryTypeName","src":"22243:6:33","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22242:19:33"},"scope":8394,"src":"22188:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7881,"nodeType":"Block","src":"22821:124:33","statements":[{"expression":{"id":7872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7867,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7865,"src":"22831:10:33","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7870,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7862,"src":"22851:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22844:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":7868,"name":"int176","nodeType":"ElementaryTypeName","src":"22844:6:33","typeDescriptions":{}}},"id":7871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22844:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22831:26:33","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":7873,"nodeType":"ExpressionStatement","src":"22831:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7875,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7865,"src":"22875:10:33","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7876,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7862,"src":"22889:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22875:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":7878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22896:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""},"value":"SafeCast: value doesn't fit in 176 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4069e970f734339c7841e84a1b26f503bff22b76884c1168dc24e2e6af9b1e30","typeString":"literal_string \"SafeCast: value doesn't fit in 176 bits\""}],"id":7874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22867:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22867:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7880,"nodeType":"ExpressionStatement","src":"22867:71:33"}]},"documentation":{"id":7860,"nodeType":"StructuredDocumentation","src":"22392:350:33","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits\n _Available since v4.7._"},"id":7882,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22756:8:33","nodeType":"FunctionDefinition","parameters":{"id":7863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7862,"mutability":"mutable","name":"value","nameLocation":"22772:5:33","nodeType":"VariableDeclaration","scope":7882,"src":"22765:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7861,"name":"int256","nodeType":"ElementaryTypeName","src":"22765:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22764:14:33"},"returnParameters":{"id":7866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7865,"mutability":"mutable","name":"downcasted","nameLocation":"22809:10:33","nodeType":"VariableDeclaration","scope":7882,"src":"22802:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":7864,"name":"int176","nodeType":"ElementaryTypeName","src":"22802:6:33","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22801:19:33"},"scope":8394,"src":"22747:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7904,"nodeType":"Block","src":"23380:124:33","statements":[{"expression":{"id":7895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7890,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7888,"src":"23390:10:33","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7893,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"23410:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23403:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":7891,"name":"int168","nodeType":"ElementaryTypeName","src":"23403:6:33","typeDescriptions":{}}},"id":7894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23403:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23390:26:33","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":7896,"nodeType":"ExpressionStatement","src":"23390:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7898,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7888,"src":"23434:10:33","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7899,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7885,"src":"23448:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23434:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":7901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23455:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""},"value":"SafeCast: value doesn't fit in 168 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67ef32a3cbe7b34392347d335b0a7ae95c74a34ca40e4efb58f6c9a3154e85a1","typeString":"literal_string \"SafeCast: value doesn't fit in 168 bits\""}],"id":7897,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23426:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23426:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7903,"nodeType":"ExpressionStatement","src":"23426:71:33"}]},"documentation":{"id":7883,"nodeType":"StructuredDocumentation","src":"22951:350:33","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits\n _Available since v4.7._"},"id":7905,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23315:8:33","nodeType":"FunctionDefinition","parameters":{"id":7886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7885,"mutability":"mutable","name":"value","nameLocation":"23331:5:33","nodeType":"VariableDeclaration","scope":7905,"src":"23324:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7884,"name":"int256","nodeType":"ElementaryTypeName","src":"23324:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23323:14:33"},"returnParameters":{"id":7889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7888,"mutability":"mutable","name":"downcasted","nameLocation":"23368:10:33","nodeType":"VariableDeclaration","scope":7905,"src":"23361:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":7887,"name":"int168","nodeType":"ElementaryTypeName","src":"23361:6:33","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23360:19:33"},"scope":8394,"src":"23306:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7927,"nodeType":"Block","src":"23939:124:33","statements":[{"expression":{"id":7918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7913,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"23949:10:33","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7916,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"23969:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23962:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":7914,"name":"int160","nodeType":"ElementaryTypeName","src":"23962:6:33","typeDescriptions":{}}},"id":7917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23962:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23949:26:33","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":7919,"nodeType":"ExpressionStatement","src":"23949:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7921,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7911,"src":"23993:10:33","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"24007:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23993:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":7924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24014:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""},"value":"SafeCast: value doesn't fit in 160 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_976ecce9083debfe29d3a99b955facf24b8725f1b964d1a5bb4197ffcd60ab9d","typeString":"literal_string \"SafeCast: value doesn't fit in 160 bits\""}],"id":7920,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23985:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23985:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7926,"nodeType":"ExpressionStatement","src":"23985:71:33"}]},"documentation":{"id":7906,"nodeType":"StructuredDocumentation","src":"23510:350:33","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits\n _Available since v4.7._"},"id":7928,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23874:8:33","nodeType":"FunctionDefinition","parameters":{"id":7909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7908,"mutability":"mutable","name":"value","nameLocation":"23890:5:33","nodeType":"VariableDeclaration","scope":7928,"src":"23883:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7907,"name":"int256","nodeType":"ElementaryTypeName","src":"23883:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23882:14:33"},"returnParameters":{"id":7912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7911,"mutability":"mutable","name":"downcasted","nameLocation":"23927:10:33","nodeType":"VariableDeclaration","scope":7928,"src":"23920:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":7910,"name":"int160","nodeType":"ElementaryTypeName","src":"23920:6:33","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23919:19:33"},"scope":8394,"src":"23865:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7950,"nodeType":"Block","src":"24498:124:33","statements":[{"expression":{"id":7941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7936,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7934,"src":"24508:10:33","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7939,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"24528:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24521:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":7937,"name":"int152","nodeType":"ElementaryTypeName","src":"24521:6:33","typeDescriptions":{}}},"id":7940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24521:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24508:26:33","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":7942,"nodeType":"ExpressionStatement","src":"24508:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7944,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7934,"src":"24552:10:33","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7945,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"24566:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24552:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":7947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24573:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""},"value":"SafeCast: value doesn't fit in 152 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211cad43a2caf5f01e34af51190b8a7b6f3d9c195bd25586ea12242191b97831","typeString":"literal_string \"SafeCast: value doesn't fit in 152 bits\""}],"id":7943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24544:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24544:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7949,"nodeType":"ExpressionStatement","src":"24544:71:33"}]},"documentation":{"id":7929,"nodeType":"StructuredDocumentation","src":"24069:350:33","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits\n _Available since v4.7._"},"id":7951,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24433:8:33","nodeType":"FunctionDefinition","parameters":{"id":7932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7931,"mutability":"mutable","name":"value","nameLocation":"24449:5:33","nodeType":"VariableDeclaration","scope":7951,"src":"24442:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7930,"name":"int256","nodeType":"ElementaryTypeName","src":"24442:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24441:14:33"},"returnParameters":{"id":7935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7934,"mutability":"mutable","name":"downcasted","nameLocation":"24486:10:33","nodeType":"VariableDeclaration","scope":7951,"src":"24479:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":7933,"name":"int152","nodeType":"ElementaryTypeName","src":"24479:6:33","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24478:19:33"},"scope":8394,"src":"24424:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7973,"nodeType":"Block","src":"25057:124:33","statements":[{"expression":{"id":7964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7959,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7957,"src":"25067:10:33","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7954,"src":"25087:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25080:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":7960,"name":"int144","nodeType":"ElementaryTypeName","src":"25080:6:33","typeDescriptions":{}}},"id":7963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25080:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"25067:26:33","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":7965,"nodeType":"ExpressionStatement","src":"25067:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7967,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7957,"src":"25111:10:33","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7968,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7954,"src":"25125:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25111:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":7970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25132:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""},"value":"SafeCast: value doesn't fit in 144 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17d8c5a6d3b2fd2517ba2e4a2ac70a3367cd362448f8338aaa6edf8bfd812bab","typeString":"literal_string \"SafeCast: value doesn't fit in 144 bits\""}],"id":7966,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25103:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25103:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7972,"nodeType":"ExpressionStatement","src":"25103:71:33"}]},"documentation":{"id":7952,"nodeType":"StructuredDocumentation","src":"24628:350:33","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits\n _Available since v4.7._"},"id":7974,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24992:8:33","nodeType":"FunctionDefinition","parameters":{"id":7955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7954,"mutability":"mutable","name":"value","nameLocation":"25008:5:33","nodeType":"VariableDeclaration","scope":7974,"src":"25001:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7953,"name":"int256","nodeType":"ElementaryTypeName","src":"25001:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25000:14:33"},"returnParameters":{"id":7958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7957,"mutability":"mutable","name":"downcasted","nameLocation":"25045:10:33","nodeType":"VariableDeclaration","scope":7974,"src":"25038:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":7956,"name":"int144","nodeType":"ElementaryTypeName","src":"25038:6:33","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"25037:19:33"},"scope":8394,"src":"24983:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7996,"nodeType":"Block","src":"25616:124:33","statements":[{"expression":{"id":7987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7982,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7980,"src":"25626:10:33","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7985,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7977,"src":"25646:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25639:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":7983,"name":"int136","nodeType":"ElementaryTypeName","src":"25639:6:33","typeDescriptions":{}}},"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25639:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25626:26:33","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":7988,"nodeType":"ExpressionStatement","src":"25626:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7990,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7980,"src":"25670:10:33","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7991,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7977,"src":"25684:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25670:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":7993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25691:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""},"value":"SafeCast: value doesn't fit in 136 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b1f81e2e2913e1cee9dba7bcd9837bbf8a8122edaac4afc578271db3c25a56a","typeString":"literal_string \"SafeCast: value doesn't fit in 136 bits\""}],"id":7989,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25662:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25662:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7995,"nodeType":"ExpressionStatement","src":"25662:71:33"}]},"documentation":{"id":7975,"nodeType":"StructuredDocumentation","src":"25187:350:33","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits\n _Available since v4.7._"},"id":7997,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25551:8:33","nodeType":"FunctionDefinition","parameters":{"id":7978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7977,"mutability":"mutable","name":"value","nameLocation":"25567:5:33","nodeType":"VariableDeclaration","scope":7997,"src":"25560:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7976,"name":"int256","nodeType":"ElementaryTypeName","src":"25560:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25559:14:33"},"returnParameters":{"id":7981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7980,"mutability":"mutable","name":"downcasted","nameLocation":"25604:10:33","nodeType":"VariableDeclaration","scope":7997,"src":"25597:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":7979,"name":"int136","nodeType":"ElementaryTypeName","src":"25597:6:33","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25596:19:33"},"scope":8394,"src":"25542:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8019,"nodeType":"Block","src":"26175:124:33","statements":[{"expression":{"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8005,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"26185:10:33","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8008,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8000,"src":"26205:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26198:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":8006,"name":"int128","nodeType":"ElementaryTypeName","src":"26198:6:33","typeDescriptions":{}}},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26198:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26185:26:33","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":8011,"nodeType":"ExpressionStatement","src":"26185:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8013,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"26229:10:33","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8000,"src":"26243:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26229:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":8016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26250:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""},"value":"SafeCast: value doesn't fit in 128 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47a1e201974f94d3d1a31c8b08ae18c6966c758bdcd4400020012b98cc55426c","typeString":"literal_string \"SafeCast: value doesn't fit in 128 bits\""}],"id":8012,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26221:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26221:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8018,"nodeType":"ExpressionStatement","src":"26221:71:33"}]},"documentation":{"id":7998,"nodeType":"StructuredDocumentation","src":"25746:350:33","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits\n _Available since v3.1._"},"id":8020,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"26110:8:33","nodeType":"FunctionDefinition","parameters":{"id":8001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8000,"mutability":"mutable","name":"value","nameLocation":"26126:5:33","nodeType":"VariableDeclaration","scope":8020,"src":"26119:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7999,"name":"int256","nodeType":"ElementaryTypeName","src":"26119:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26118:14:33"},"returnParameters":{"id":8004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8003,"mutability":"mutable","name":"downcasted","nameLocation":"26163:10:33","nodeType":"VariableDeclaration","scope":8020,"src":"26156:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":8002,"name":"int128","nodeType":"ElementaryTypeName","src":"26156:6:33","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"26155:19:33"},"scope":8394,"src":"26101:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8042,"nodeType":"Block","src":"26734:124:33","statements":[{"expression":{"id":8033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8028,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8026,"src":"26744:10:33","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8031,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8023,"src":"26764:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26757:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":8029,"name":"int120","nodeType":"ElementaryTypeName","src":"26757:6:33","typeDescriptions":{}}},"id":8032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26757:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26744:26:33","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":8034,"nodeType":"ExpressionStatement","src":"26744:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8036,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8026,"src":"26788:10:33","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8037,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8023,"src":"26802:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26788:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":8039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26809:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""},"value":"SafeCast: value doesn't fit in 120 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c40c26bb27060cce77002ca0c426dcc1bef2d367c195ca2eb24bd8b2cc1bb09","typeString":"literal_string \"SafeCast: value doesn't fit in 120 bits\""}],"id":8035,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26780:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26780:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8041,"nodeType":"ExpressionStatement","src":"26780:71:33"}]},"documentation":{"id":8021,"nodeType":"StructuredDocumentation","src":"26305:350:33","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits\n _Available since v4.7._"},"id":8043,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26669:8:33","nodeType":"FunctionDefinition","parameters":{"id":8024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8023,"mutability":"mutable","name":"value","nameLocation":"26685:5:33","nodeType":"VariableDeclaration","scope":8043,"src":"26678:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8022,"name":"int256","nodeType":"ElementaryTypeName","src":"26678:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26677:14:33"},"returnParameters":{"id":8027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8026,"mutability":"mutable","name":"downcasted","nameLocation":"26722:10:33","nodeType":"VariableDeclaration","scope":8043,"src":"26715:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":8025,"name":"int120","nodeType":"ElementaryTypeName","src":"26715:6:33","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26714:19:33"},"scope":8394,"src":"26660:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8065,"nodeType":"Block","src":"27293:124:33","statements":[{"expression":{"id":8056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8051,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"27303:10:33","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8054,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8046,"src":"27323:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27316:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":8052,"name":"int112","nodeType":"ElementaryTypeName","src":"27316:6:33","typeDescriptions":{}}},"id":8055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27316:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27303:26:33","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":8057,"nodeType":"ExpressionStatement","src":"27303:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8059,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8049,"src":"27347:10:33","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8060,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8046,"src":"27361:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27347:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":8062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27368:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""},"value":"SafeCast: value doesn't fit in 112 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45659ae152ef697531e1c1115de07c87af91ac22466c3e76b808821799776efd","typeString":"literal_string \"SafeCast: value doesn't fit in 112 bits\""}],"id":8058,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27339:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27339:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8064,"nodeType":"ExpressionStatement","src":"27339:71:33"}]},"documentation":{"id":8044,"nodeType":"StructuredDocumentation","src":"26864:350:33","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits\n _Available since v4.7._"},"id":8066,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"27228:8:33","nodeType":"FunctionDefinition","parameters":{"id":8047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8046,"mutability":"mutable","name":"value","nameLocation":"27244:5:33","nodeType":"VariableDeclaration","scope":8066,"src":"27237:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8045,"name":"int256","nodeType":"ElementaryTypeName","src":"27237:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27236:14:33"},"returnParameters":{"id":8050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8049,"mutability":"mutable","name":"downcasted","nameLocation":"27281:10:33","nodeType":"VariableDeclaration","scope":8066,"src":"27274:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":8048,"name":"int112","nodeType":"ElementaryTypeName","src":"27274:6:33","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27273:19:33"},"scope":8394,"src":"27219:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8088,"nodeType":"Block","src":"27852:124:33","statements":[{"expression":{"id":8079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8074,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8072,"src":"27862:10:33","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"27882:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27875:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":8075,"name":"int104","nodeType":"ElementaryTypeName","src":"27875:6:33","typeDescriptions":{}}},"id":8078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27875:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27862:26:33","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":8080,"nodeType":"ExpressionStatement","src":"27862:26:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8082,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8072,"src":"27906:10:33","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8083,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8069,"src":"27920:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27906:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":8085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27927:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""},"value":"SafeCast: value doesn't fit in 104 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d7f3e1b7e9f9a06fded6b093c6fd1473ca0a14cc4bb683db904e803e2482981","typeString":"literal_string \"SafeCast: value doesn't fit in 104 bits\""}],"id":8081,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27898:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27898:71:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8087,"nodeType":"ExpressionStatement","src":"27898:71:33"}]},"documentation":{"id":8067,"nodeType":"StructuredDocumentation","src":"27423:350:33","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits\n _Available since v4.7._"},"id":8089,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27787:8:33","nodeType":"FunctionDefinition","parameters":{"id":8070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8069,"mutability":"mutable","name":"value","nameLocation":"27803:5:33","nodeType":"VariableDeclaration","scope":8089,"src":"27796:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8068,"name":"int256","nodeType":"ElementaryTypeName","src":"27796:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27795:14:33"},"returnParameters":{"id":8073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8072,"mutability":"mutable","name":"downcasted","nameLocation":"27840:10:33","nodeType":"VariableDeclaration","scope":8089,"src":"27833:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":8071,"name":"int104","nodeType":"ElementaryTypeName","src":"27833:6:33","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27832:19:33"},"scope":8394,"src":"27778:198:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8111,"nodeType":"Block","src":"28404:122:33","statements":[{"expression":{"id":8102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8097,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"28414:10:33","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8100,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8092,"src":"28433:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28427:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":8098,"name":"int96","nodeType":"ElementaryTypeName","src":"28427:5:33","typeDescriptions":{}}},"id":8101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28427:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28414:25:33","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":8103,"nodeType":"ExpressionStatement","src":"28414:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8105,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"28457:10:33","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8106,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8092,"src":"28471:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28457:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":8108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28478:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""},"value":"SafeCast: value doesn't fit in 96 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19","typeString":"literal_string \"SafeCast: value doesn't fit in 96 bits\""}],"id":8104,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28449:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28449:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8110,"nodeType":"ExpressionStatement","src":"28449:70:33"}]},"documentation":{"id":8090,"nodeType":"StructuredDocumentation","src":"27982:345:33","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits\n _Available since v4.7._"},"id":8112,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28341:7:33","nodeType":"FunctionDefinition","parameters":{"id":8093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8092,"mutability":"mutable","name":"value","nameLocation":"28356:5:33","nodeType":"VariableDeclaration","scope":8112,"src":"28349:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8091,"name":"int256","nodeType":"ElementaryTypeName","src":"28349:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28348:14:33"},"returnParameters":{"id":8096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8095,"mutability":"mutable","name":"downcasted","nameLocation":"28392:10:33","nodeType":"VariableDeclaration","scope":8112,"src":"28386:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":8094,"name":"int96","nodeType":"ElementaryTypeName","src":"28386:5:33","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28385:18:33"},"scope":8394,"src":"28332:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8134,"nodeType":"Block","src":"28954:122:33","statements":[{"expression":{"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8120,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8118,"src":"28964:10:33","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"28983:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28977:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":8121,"name":"int88","nodeType":"ElementaryTypeName","src":"28977:5:33","typeDescriptions":{}}},"id":8124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28977:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28964:25:33","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":8126,"nodeType":"ExpressionStatement","src":"28964:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8128,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8118,"src":"29007:10:33","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"29021:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29007:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":8131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29028:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""},"value":"SafeCast: value doesn't fit in 88 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae080bd7a76a46f0a0caf00941bc2cdf6002799ca2813a3af7295019576d715d","typeString":"literal_string \"SafeCast: value doesn't fit in 88 bits\""}],"id":8127,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28999:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28999:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8133,"nodeType":"ExpressionStatement","src":"28999:70:33"}]},"documentation":{"id":8113,"nodeType":"StructuredDocumentation","src":"28532:345:33","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits\n _Available since v4.7._"},"id":8135,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28891:7:33","nodeType":"FunctionDefinition","parameters":{"id":8116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8115,"mutability":"mutable","name":"value","nameLocation":"28906:5:33","nodeType":"VariableDeclaration","scope":8135,"src":"28899:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8114,"name":"int256","nodeType":"ElementaryTypeName","src":"28899:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28898:14:33"},"returnParameters":{"id":8119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8118,"mutability":"mutable","name":"downcasted","nameLocation":"28942:10:33","nodeType":"VariableDeclaration","scope":8135,"src":"28936:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":8117,"name":"int88","nodeType":"ElementaryTypeName","src":"28936:5:33","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28935:18:33"},"scope":8394,"src":"28882:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8157,"nodeType":"Block","src":"29504:122:33","statements":[{"expression":{"id":8148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8143,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8141,"src":"29514:10:33","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8138,"src":"29533:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29527:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":8144,"name":"int80","nodeType":"ElementaryTypeName","src":"29527:5:33","typeDescriptions":{}}},"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29527:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29514:25:33","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":8149,"nodeType":"ExpressionStatement","src":"29514:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8151,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8141,"src":"29557:10:33","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8152,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8138,"src":"29571:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29557:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":8154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29578:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""},"value":"SafeCast: value doesn't fit in 80 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3cba87c71fade7d3cd7b673c159aab98afc040a5369691a33559d905d20ab5d1","typeString":"literal_string \"SafeCast: value doesn't fit in 80 bits\""}],"id":8150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29549:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29549:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8156,"nodeType":"ExpressionStatement","src":"29549:70:33"}]},"documentation":{"id":8136,"nodeType":"StructuredDocumentation","src":"29082:345:33","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits\n _Available since v4.7._"},"id":8158,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29441:7:33","nodeType":"FunctionDefinition","parameters":{"id":8139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8138,"mutability":"mutable","name":"value","nameLocation":"29456:5:33","nodeType":"VariableDeclaration","scope":8158,"src":"29449:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8137,"name":"int256","nodeType":"ElementaryTypeName","src":"29449:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29448:14:33"},"returnParameters":{"id":8142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8141,"mutability":"mutable","name":"downcasted","nameLocation":"29492:10:33","nodeType":"VariableDeclaration","scope":8158,"src":"29486:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":8140,"name":"int80","nodeType":"ElementaryTypeName","src":"29486:5:33","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29485:18:33"},"scope":8394,"src":"29432:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8180,"nodeType":"Block","src":"30054:122:33","statements":[{"expression":{"id":8171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8166,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"30064:10:33","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8169,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8161,"src":"30083:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30077:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":8167,"name":"int72","nodeType":"ElementaryTypeName","src":"30077:5:33","typeDescriptions":{}}},"id":8170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30077:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"30064:25:33","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":8172,"nodeType":"ExpressionStatement","src":"30064:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8174,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8164,"src":"30107:10:33","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8175,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8161,"src":"30121:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30107:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":8177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30128:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""},"value":"SafeCast: value doesn't fit in 72 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71584237cc5250b8f417982144a947efe8f4c76feba008ff32ac480e69d60606","typeString":"literal_string \"SafeCast: value doesn't fit in 72 bits\""}],"id":8173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30099:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30099:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8179,"nodeType":"ExpressionStatement","src":"30099:70:33"}]},"documentation":{"id":8159,"nodeType":"StructuredDocumentation","src":"29632:345:33","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits\n _Available since v4.7._"},"id":8181,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29991:7:33","nodeType":"FunctionDefinition","parameters":{"id":8162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8161,"mutability":"mutable","name":"value","nameLocation":"30006:5:33","nodeType":"VariableDeclaration","scope":8181,"src":"29999:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8160,"name":"int256","nodeType":"ElementaryTypeName","src":"29999:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29998:14:33"},"returnParameters":{"id":8165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8164,"mutability":"mutable","name":"downcasted","nameLocation":"30042:10:33","nodeType":"VariableDeclaration","scope":8181,"src":"30036:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":8163,"name":"int72","nodeType":"ElementaryTypeName","src":"30036:5:33","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"30035:18:33"},"scope":8394,"src":"29982:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8203,"nodeType":"Block","src":"30604:122:33","statements":[{"expression":{"id":8194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8189,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8187,"src":"30614:10:33","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8192,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8184,"src":"30633:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30627:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":8190,"name":"int64","nodeType":"ElementaryTypeName","src":"30627:5:33","typeDescriptions":{}}},"id":8193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30627:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30614:25:33","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":8195,"nodeType":"ExpressionStatement","src":"30614:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8197,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8187,"src":"30657:10:33","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8198,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8184,"src":"30671:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30657:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":8200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30678:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""},"value":"SafeCast: value doesn't fit in 64 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939","typeString":"literal_string \"SafeCast: value doesn't fit in 64 bits\""}],"id":8196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30649:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30649:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8202,"nodeType":"ExpressionStatement","src":"30649:70:33"}]},"documentation":{"id":8182,"nodeType":"StructuredDocumentation","src":"30182:345:33","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits\n _Available since v3.1._"},"id":8204,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30541:7:33","nodeType":"FunctionDefinition","parameters":{"id":8185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8184,"mutability":"mutable","name":"value","nameLocation":"30556:5:33","nodeType":"VariableDeclaration","scope":8204,"src":"30549:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8183,"name":"int256","nodeType":"ElementaryTypeName","src":"30549:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30548:14:33"},"returnParameters":{"id":8188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8187,"mutability":"mutable","name":"downcasted","nameLocation":"30592:10:33","nodeType":"VariableDeclaration","scope":8204,"src":"30586:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":8186,"name":"int64","nodeType":"ElementaryTypeName","src":"30586:5:33","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30585:18:33"},"scope":8394,"src":"30532:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8226,"nodeType":"Block","src":"31154:122:33","statements":[{"expression":{"id":8217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8212,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8210,"src":"31164:10:33","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"31183:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31177:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":8213,"name":"int56","nodeType":"ElementaryTypeName","src":"31177:5:33","typeDescriptions":{}}},"id":8216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31177:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"31164:25:33","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":8218,"nodeType":"ExpressionStatement","src":"31164:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8220,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8210,"src":"31207:10:33","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"31221:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31207:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":8223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31228:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""},"value":"SafeCast: value doesn't fit in 56 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ad93b5ff6665bfe05d97d51fad7c02ad79e6c43bef066c042a6900f450bc5","typeString":"literal_string \"SafeCast: value doesn't fit in 56 bits\""}],"id":8219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31199:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31199:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8225,"nodeType":"ExpressionStatement","src":"31199:70:33"}]},"documentation":{"id":8205,"nodeType":"StructuredDocumentation","src":"30732:345:33","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits\n _Available since v4.7._"},"id":8227,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"31091:7:33","nodeType":"FunctionDefinition","parameters":{"id":8208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8207,"mutability":"mutable","name":"value","nameLocation":"31106:5:33","nodeType":"VariableDeclaration","scope":8227,"src":"31099:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8206,"name":"int256","nodeType":"ElementaryTypeName","src":"31099:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31098:14:33"},"returnParameters":{"id":8211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8210,"mutability":"mutable","name":"downcasted","nameLocation":"31142:10:33","nodeType":"VariableDeclaration","scope":8227,"src":"31136:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":8209,"name":"int56","nodeType":"ElementaryTypeName","src":"31136:5:33","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"31135:18:33"},"scope":8394,"src":"31082:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8249,"nodeType":"Block","src":"31704:122:33","statements":[{"expression":{"id":8240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8235,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"31714:10:33","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8238,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8230,"src":"31733:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31727:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":8236,"name":"int48","nodeType":"ElementaryTypeName","src":"31727:5:33","typeDescriptions":{}}},"id":8239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31727:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31714:25:33","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":8241,"nodeType":"ExpressionStatement","src":"31714:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8243,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"31757:10:33","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8244,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8230,"src":"31771:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31757:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":8246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31778:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""},"value":"SafeCast: value doesn't fit in 48 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_599034f9324dd4e988c6cea5a00a30f53147fec1b01559682f18cd840028f495","typeString":"literal_string \"SafeCast: value doesn't fit in 48 bits\""}],"id":8242,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31749:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31749:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8248,"nodeType":"ExpressionStatement","src":"31749:70:33"}]},"documentation":{"id":8228,"nodeType":"StructuredDocumentation","src":"31282:345:33","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits\n _Available since v4.7._"},"id":8250,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31641:7:33","nodeType":"FunctionDefinition","parameters":{"id":8231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8230,"mutability":"mutable","name":"value","nameLocation":"31656:5:33","nodeType":"VariableDeclaration","scope":8250,"src":"31649:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8229,"name":"int256","nodeType":"ElementaryTypeName","src":"31649:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31648:14:33"},"returnParameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8233,"mutability":"mutable","name":"downcasted","nameLocation":"31692:10:33","nodeType":"VariableDeclaration","scope":8250,"src":"31686:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":8232,"name":"int48","nodeType":"ElementaryTypeName","src":"31686:5:33","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31685:18:33"},"scope":8394,"src":"31632:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8272,"nodeType":"Block","src":"32254:122:33","statements":[{"expression":{"id":8263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8258,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"32264:10:33","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"32283:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32277:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":8259,"name":"int40","nodeType":"ElementaryTypeName","src":"32277:5:33","typeDescriptions":{}}},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32277:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"32264:25:33","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":8264,"nodeType":"ExpressionStatement","src":"32264:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8266,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"32307:10:33","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8267,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"32321:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32307:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":8269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32328:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""},"value":"SafeCast: value doesn't fit in 40 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b23559c58b98a5d3ed7016699c7171ac8defa5a1d180f9a9ffa60468a5701d37","typeString":"literal_string \"SafeCast: value doesn't fit in 40 bits\""}],"id":8265,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32299:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32299:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8271,"nodeType":"ExpressionStatement","src":"32299:70:33"}]},"documentation":{"id":8251,"nodeType":"StructuredDocumentation","src":"31832:345:33","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits\n _Available since v4.7._"},"id":8273,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"32191:7:33","nodeType":"FunctionDefinition","parameters":{"id":8254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8253,"mutability":"mutable","name":"value","nameLocation":"32206:5:33","nodeType":"VariableDeclaration","scope":8273,"src":"32199:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8252,"name":"int256","nodeType":"ElementaryTypeName","src":"32199:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32198:14:33"},"returnParameters":{"id":8257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"mutability":"mutable","name":"downcasted","nameLocation":"32242:10:33","nodeType":"VariableDeclaration","scope":8273,"src":"32236:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":8255,"name":"int40","nodeType":"ElementaryTypeName","src":"32236:5:33","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"32235:18:33"},"scope":8394,"src":"32182:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8295,"nodeType":"Block","src":"32804:122:33","statements":[{"expression":{"id":8286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8281,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8279,"src":"32814:10:33","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8284,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"32833:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32827:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":8282,"name":"int32","nodeType":"ElementaryTypeName","src":"32827:5:33","typeDescriptions":{}}},"id":8285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32827:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32814:25:33","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":8287,"nodeType":"ExpressionStatement","src":"32814:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8289,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8279,"src":"32857:10:33","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8276,"src":"32871:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32857:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":8292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32878:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""},"value":"SafeCast: value doesn't fit in 32 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19","typeString":"literal_string \"SafeCast: value doesn't fit in 32 bits\""}],"id":8288,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32849:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32849:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8294,"nodeType":"ExpressionStatement","src":"32849:70:33"}]},"documentation":{"id":8274,"nodeType":"StructuredDocumentation","src":"32382:345:33","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits\n _Available since v3.1._"},"id":8296,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32741:7:33","nodeType":"FunctionDefinition","parameters":{"id":8277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8276,"mutability":"mutable","name":"value","nameLocation":"32756:5:33","nodeType":"VariableDeclaration","scope":8296,"src":"32749:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8275,"name":"int256","nodeType":"ElementaryTypeName","src":"32749:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32748:14:33"},"returnParameters":{"id":8280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8279,"mutability":"mutable","name":"downcasted","nameLocation":"32792:10:33","nodeType":"VariableDeclaration","scope":8296,"src":"32786:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":8278,"name":"int32","nodeType":"ElementaryTypeName","src":"32786:5:33","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32785:18:33"},"scope":8394,"src":"32732:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8318,"nodeType":"Block","src":"33354:122:33","statements":[{"expression":{"id":8309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8304,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8302,"src":"33364:10:33","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8307,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"33383:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33377:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":8305,"name":"int24","nodeType":"ElementaryTypeName","src":"33377:5:33","typeDescriptions":{}}},"id":8308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33377:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"33364:25:33","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":8310,"nodeType":"ExpressionStatement","src":"33364:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8312,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8302,"src":"33407:10:33","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8313,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"33421:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33407:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":8315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33428:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""},"value":"SafeCast: value doesn't fit in 24 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f68b65aaf4574c34e9b9d1442d19636c6608b8c4dbd9331c7245f7915c8b2f55","typeString":"literal_string \"SafeCast: value doesn't fit in 24 bits\""}],"id":8311,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33399:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33399:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8317,"nodeType":"ExpressionStatement","src":"33399:70:33"}]},"documentation":{"id":8297,"nodeType":"StructuredDocumentation","src":"32932:345:33","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits\n _Available since v4.7._"},"id":8319,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"33291:7:33","nodeType":"FunctionDefinition","parameters":{"id":8300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8299,"mutability":"mutable","name":"value","nameLocation":"33306:5:33","nodeType":"VariableDeclaration","scope":8319,"src":"33299:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8298,"name":"int256","nodeType":"ElementaryTypeName","src":"33299:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33298:14:33"},"returnParameters":{"id":8303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8302,"mutability":"mutable","name":"downcasted","nameLocation":"33342:10:33","nodeType":"VariableDeclaration","scope":8319,"src":"33336:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":8301,"name":"int24","nodeType":"ElementaryTypeName","src":"33336:5:33","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"33335:18:33"},"scope":8394,"src":"33282:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8341,"nodeType":"Block","src":"33904:122:33","statements":[{"expression":{"id":8332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8327,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8325,"src":"33914:10:33","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8322,"src":"33933:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33927:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":8328,"name":"int16","nodeType":"ElementaryTypeName","src":"33927:5:33","typeDescriptions":{}}},"id":8331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33927:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33914:25:33","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":8333,"nodeType":"ExpressionStatement","src":"33914:25:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8335,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8325,"src":"33957:10:33","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8336,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8322,"src":"33971:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33957:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":8338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33978:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""},"value":"SafeCast: value doesn't fit in 16 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d3a66f9e0e5c92bbe7743bcd3bdb4695009d5f3a96e5ff49718d715b484033","typeString":"literal_string \"SafeCast: value doesn't fit in 16 bits\""}],"id":8334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33949:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33949:70:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8340,"nodeType":"ExpressionStatement","src":"33949:70:33"}]},"documentation":{"id":8320,"nodeType":"StructuredDocumentation","src":"33482:345:33","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits\n _Available since v3.1._"},"id":8342,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33841:7:33","nodeType":"FunctionDefinition","parameters":{"id":8323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8322,"mutability":"mutable","name":"value","nameLocation":"33856:5:33","nodeType":"VariableDeclaration","scope":8342,"src":"33849:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8321,"name":"int256","nodeType":"ElementaryTypeName","src":"33849:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33848:14:33"},"returnParameters":{"id":8326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8325,"mutability":"mutable","name":"downcasted","nameLocation":"33892:10:33","nodeType":"VariableDeclaration","scope":8342,"src":"33886:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":8324,"name":"int16","nodeType":"ElementaryTypeName","src":"33886:5:33","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33885:18:33"},"scope":8394,"src":"33832:194:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8364,"nodeType":"Block","src":"34447:120:33","statements":[{"expression":{"id":8355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8350,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8348,"src":"34457:10:33","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8353,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"34475:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34470:4:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":8351,"name":"int8","nodeType":"ElementaryTypeName","src":"34470:4:33","typeDescriptions":{}}},"id":8354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34470:11:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34457:24:33","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":8356,"nodeType":"ExpressionStatement","src":"34457:24:33"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8358,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8348,"src":"34499:10:33","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8359,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"34513:5:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34499:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":8361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34520:39:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""},"value":"SafeCast: value doesn't fit in 8 bits"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2610961ba53259047cd57c60366c5ad0b8aabf5eb4132487619b736715a740d1","typeString":"literal_string \"SafeCast: value doesn't fit in 8 bits\""}],"id":8357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34491:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34491:69:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8363,"nodeType":"ExpressionStatement","src":"34491:69:33"}]},"documentation":{"id":8343,"nodeType":"StructuredDocumentation","src":"34032:340:33","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits\n _Available since v3.1._"},"id":8365,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"34386:6:33","nodeType":"FunctionDefinition","parameters":{"id":8346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8345,"mutability":"mutable","name":"value","nameLocation":"34400:5:33","nodeType":"VariableDeclaration","scope":8365,"src":"34393:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8344,"name":"int256","nodeType":"ElementaryTypeName","src":"34393:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34392:14:33"},"returnParameters":{"id":8349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8348,"mutability":"mutable","name":"downcasted","nameLocation":"34435:10:33","nodeType":"VariableDeclaration","scope":8365,"src":"34430:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":8347,"name":"int8","nodeType":"ElementaryTypeName","src":"34430:4:33","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34429:17:33"},"scope":8394,"src":"34377:190:33","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8392,"nodeType":"Block","src":"34845:233:33","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8374,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"34962:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":8379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34984:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":8378,"name":"int256","nodeType":"ElementaryTypeName","src":"34984:6:33","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":8377,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34979:4:33","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34979:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":8381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"34979:16:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34971:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8375,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:33","typeDescriptions":{}}},"id":8382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34971:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34962:34:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e74323536","id":8384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34998:42:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""},"value":"SafeCast: value doesn't fit in an int256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d70dcf21692b3c91b4c5fbb89ed57f464aa42efbe5b0ea96c4acb7c080144227","typeString":"literal_string \"SafeCast: value doesn't fit in an int256\""}],"id":8373,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34954:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34954:87:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8386,"nodeType":"ExpressionStatement","src":"34954:87:33"},{"expression":{"arguments":[{"id":8389,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8368,"src":"35065:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35058:6:33","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":8387,"name":"int256","nodeType":"ElementaryTypeName","src":"35058:6:33","typeDescriptions":{}}},"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35058:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":8372,"id":8391,"nodeType":"Return","src":"35051:20:33"}]},"documentation":{"id":8366,"nodeType":"StructuredDocumentation","src":"34573:203:33","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256.\n _Available since v3.0._"},"id":8393,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34790:8:33","nodeType":"FunctionDefinition","parameters":{"id":8369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8368,"mutability":"mutable","name":"value","nameLocation":"34807:5:33","nodeType":"VariableDeclaration","scope":8393,"src":"34799:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8367,"name":"uint256","nodeType":"ElementaryTypeName","src":"34799:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34798:15:33"},"returnParameters":{"id":8372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8393,"src":"34837:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8370,"name":"int256","nodeType":"ElementaryTypeName","src":"34837:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34836:8:33"},"scope":8394,"src":"34781:297:33","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8395,"src":"927:34153:33","usedErrors":[]}],"src":"192:34889:33"},"id":33},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[9007]},"id":9008,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8396,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"205:23:34"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":8397,"nodeType":"StructuredDocumentation","src":"230:1090:34","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableSet for EnumerableSet.AddressSet;\n     // Declare a set state variable\n     EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":9007,"linearizedBaseContracts":[9007],"name":"EnumerableSet","nameLocation":"1329:13:34","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":8405,"members":[{"constant":false,"id":8400,"mutability":"mutable","name":"_values","nameLocation":"1853:7:34","nodeType":"VariableDeclaration","scope":8405,"src":"1843:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1843:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8399,"nodeType":"ArrayTypeName","src":"1843:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8404,"mutability":"mutable","name":"_indexes","nameLocation":"2021:8:34","nodeType":"VariableDeclaration","scope":8405,"src":"1993:36:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":8403,"keyType":{"id":8401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2001:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1993:27:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":8402,"name":"uint256","nodeType":"ElementaryTypeName","src":"2012:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1796:3:34","nodeType":"StructDefinition","scope":9007,"src":"1789:247:34","visibility":"public"},{"body":{"id":8446,"nodeType":"Block","src":"2275:335:34","statements":[{"condition":{"id":8420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2289:22:34","subExpression":{"arguments":[{"id":8417,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"2300:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":8418,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8411,"src":"2305:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8416,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"2290:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":8419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:21:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8444,"nodeType":"Block","src":"2567:37:34","statements":[{"expression":{"hexValue":"66616c7365","id":8442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2588:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":8415,"id":8443,"nodeType":"Return","src":"2581:12:34"}]},"id":8445,"nodeType":"IfStatement","src":"2285:319:34","trueBody":{"id":8441,"nodeType":"Block","src":"2313:248:34","statements":[{"expression":{"arguments":[{"id":8426,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8411,"src":"2344:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8421,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"2327:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"2327:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2327:16:34","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2327:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8428,"nodeType":"ExpressionStatement","src":"2327:23:34"},{"expression":{"id":8437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8429,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"2485:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":8404,"src":"2485:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8433,"indexExpression":{"id":8431,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8411,"src":"2498:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2485:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":8434,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"2507:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"2507:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2507:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2485:40:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8438,"nodeType":"ExpressionStatement","src":"2485:40:34"},{"expression":{"hexValue":"74727565","id":8439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2546:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8415,"id":8440,"nodeType":"Return","src":"2539:11:34"}]}}]},"documentation":{"id":8406,"nodeType":"StructuredDocumentation","src":"2042:159:34","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":8447,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2215:4:34","nodeType":"FunctionDefinition","parameters":{"id":8412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8409,"mutability":"mutable","name":"set","nameLocation":"2232:3:34","nodeType":"VariableDeclaration","scope":8447,"src":"2220:15:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8408,"nodeType":"UserDefinedTypeName","pathNode":{"id":8407,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"2220:3:34"},"referencedDeclaration":8405,"src":"2220:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8411,"mutability":"mutable","name":"value","nameLocation":"2245:5:34","nodeType":"VariableDeclaration","scope":8447,"src":"2237:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2237:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2219:32:34"},"returnParameters":{"id":8415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8447,"src":"2269:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8413,"name":"bool","nodeType":"ElementaryTypeName","src":"2269:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2268:6:34"},"scope":9007,"src":"2206:404:34","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8530,"nodeType":"Block","src":"2850:1316:34","statements":[{"assignments":[8459],"declarations":[{"constant":false,"id":8459,"mutability":"mutable","name":"valueIndex","nameLocation":"2968:10:34","nodeType":"VariableDeclaration","scope":8530,"src":"2960:18:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8458,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8464,"initialValue":{"baseExpression":{"expression":{"id":8460,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"2981:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":8404,"src":"2981:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8463,"indexExpression":{"id":8462,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"2994:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2981:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2960:40:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8465,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"3015:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3029:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3015:15:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8528,"nodeType":"Block","src":"4123:37:34","statements":[{"expression":{"hexValue":"66616c7365","id":8526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4144:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":8457,"id":8527,"nodeType":"Return","src":"4137:12:34"}]},"id":8529,"nodeType":"IfStatement","src":"3011:1149:34","trueBody":{"id":8525,"nodeType":"Block","src":"3032:1085:34","statements":[{"assignments":[8469],"declarations":[{"constant":false,"id":8469,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3392:13:34","nodeType":"VariableDeclaration","scope":8525,"src":"3384:21:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8468,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8473,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8470,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"3408:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3421:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3408:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3384:38:34"},{"assignments":[8475],"declarations":[{"constant":false,"id":8475,"mutability":"mutable","name":"lastIndex","nameLocation":"3444:9:34","nodeType":"VariableDeclaration","scope":8525,"src":"3436:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8474,"name":"uint256","nodeType":"ElementaryTypeName","src":"3436:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8481,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":8476,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"3456:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"3456:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3456:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3477:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3456:22:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3436:42:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8482,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8475,"src":"3497:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8483,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"3510:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3497:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8509,"nodeType":"IfStatement","src":"3493:398:34","trueBody":{"id":8508,"nodeType":"Block","src":"3525:366:34","statements":[{"assignments":[8486],"declarations":[{"constant":false,"id":8486,"mutability":"mutable","name":"lastValue","nameLocation":"3551:9:34","nodeType":"VariableDeclaration","scope":8508,"src":"3543:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3543:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8491,"initialValue":{"baseExpression":{"expression":{"id":8487,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"3563:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"3563:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8490,"indexExpression":{"id":8489,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8475,"src":"3575:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3563:22:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3543:42:34"},{"expression":{"id":8498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8492,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"3685:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"3685:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8496,"indexExpression":{"id":8494,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8469,"src":"3697:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3685:26:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8497,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8486,"src":"3714:9:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3685:38:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8499,"nodeType":"ExpressionStatement","src":"3685:38:34"},{"expression":{"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8500,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"3797:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":8404,"src":"3797:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8504,"indexExpression":{"id":8502,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8486,"src":"3810:9:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3797:23:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8505,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"3823:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3797:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8507,"nodeType":"ExpressionStatement","src":"3797:36:34"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":8510,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"3969:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"3969:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"3969:15:34","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":8515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3969:17:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8516,"nodeType":"ExpressionStatement","src":"3969:17:34"},{"expression":{"id":8521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4054:26:34","subExpression":{"baseExpression":{"expression":{"id":8517,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"4061:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":8404,"src":"4061:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8520,"indexExpression":{"id":8519,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8453,"src":"4074:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4061:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8522,"nodeType":"ExpressionStatement","src":"4054:26:34"},{"expression":{"hexValue":"74727565","id":8523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4102:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8457,"id":8524,"nodeType":"Return","src":"4095:11:34"}]}}]},"documentation":{"id":8448,"nodeType":"StructuredDocumentation","src":"2616:157:34","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":8531,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2787:7:34","nodeType":"FunctionDefinition","parameters":{"id":8454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8451,"mutability":"mutable","name":"set","nameLocation":"2807:3:34","nodeType":"VariableDeclaration","scope":8531,"src":"2795:15:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8450,"nodeType":"UserDefinedTypeName","pathNode":{"id":8449,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"2795:3:34"},"referencedDeclaration":8405,"src":"2795:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8453,"mutability":"mutable","name":"value","nameLocation":"2820:5:34","nodeType":"VariableDeclaration","scope":8531,"src":"2812:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2812:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2794:32:34"},"returnParameters":{"id":8457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8531,"src":"2844:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8455,"name":"bool","nodeType":"ElementaryTypeName","src":"2844:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2843:6:34"},"scope":9007,"src":"2778:1388:34","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8549,"nodeType":"Block","src":"4326:48:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":8542,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8535,"src":"4343:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":8404,"src":"4343:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8545,"indexExpression":{"id":8544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"4356:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4343:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4366:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4343:24:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8541,"id":8548,"nodeType":"Return","src":"4336:31:34"}]},"documentation":{"id":8532,"nodeType":"StructuredDocumentation","src":"4172:70:34","text":" @dev Returns true if the value is in the set. O(1)."},"id":8550,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4256:9:34","nodeType":"FunctionDefinition","parameters":{"id":8538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8535,"mutability":"mutable","name":"set","nameLocation":"4278:3:34","nodeType":"VariableDeclaration","scope":8550,"src":"4266:15:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8534,"nodeType":"UserDefinedTypeName","pathNode":{"id":8533,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"4266:3:34"},"referencedDeclaration":8405,"src":"4266:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8537,"mutability":"mutable","name":"value","nameLocation":"4291:5:34","nodeType":"VariableDeclaration","scope":8550,"src":"4283:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4283:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4265:32:34"},"returnParameters":{"id":8541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8550,"src":"4320:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8539,"name":"bool","nodeType":"ElementaryTypeName","src":"4320:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4319:6:34"},"scope":9007,"src":"4247:127:34","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8563,"nodeType":"Block","src":"4520:42:34","statements":[{"expression":{"expression":{"expression":{"id":8559,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8554,"src":"4537:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"4537:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4537:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8558,"id":8562,"nodeType":"Return","src":"4530:25:34"}]},"documentation":{"id":8551,"nodeType":"StructuredDocumentation","src":"4380:70:34","text":" @dev Returns the number of values on the set. O(1)."},"id":8564,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4464:7:34","nodeType":"FunctionDefinition","parameters":{"id":8555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8554,"mutability":"mutable","name":"set","nameLocation":"4484:3:34","nodeType":"VariableDeclaration","scope":8564,"src":"4472:15:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8553,"nodeType":"UserDefinedTypeName","pathNode":{"id":8552,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"4472:3:34"},"referencedDeclaration":8405,"src":"4472:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4471:17:34"},"returnParameters":{"id":8558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8564,"src":"4511:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8556,"name":"uint256","nodeType":"ElementaryTypeName","src":"4511:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4510:9:34"},"scope":9007,"src":"4455:107:34","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8580,"nodeType":"Block","src":"4980:42:34","statements":[{"expression":{"baseExpression":{"expression":{"id":8575,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8568,"src":"4997:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"4997:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8578,"indexExpression":{"id":8577,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"5009:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4997:18:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8574,"id":8579,"nodeType":"Return","src":"4990:25:34"}]},"documentation":{"id":8565,"nodeType":"StructuredDocumentation","src":"4568:331:34","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":8581,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4913:3:34","nodeType":"FunctionDefinition","parameters":{"id":8571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8568,"mutability":"mutable","name":"set","nameLocation":"4929:3:34","nodeType":"VariableDeclaration","scope":8581,"src":"4917:15:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8567,"nodeType":"UserDefinedTypeName","pathNode":{"id":8566,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"4917:3:34"},"referencedDeclaration":8405,"src":"4917:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8570,"mutability":"mutable","name":"index","nameLocation":"4942:5:34","nodeType":"VariableDeclaration","scope":8581,"src":"4934:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8569,"name":"uint256","nodeType":"ElementaryTypeName","src":"4934:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4916:32:34"},"returnParameters":{"id":8574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8581,"src":"4971:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4971:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4970:9:34"},"scope":9007,"src":"4904:118:34","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8594,"nodeType":"Block","src":"5636:35:34","statements":[{"expression":{"expression":{"id":8591,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"5653:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8400,"src":"5653:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":8590,"id":8593,"nodeType":"Return","src":"5646:18:34"}]},"documentation":{"id":8582,"nodeType":"StructuredDocumentation","src":"5028:529:34","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":8595,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5571:7:34","nodeType":"FunctionDefinition","parameters":{"id":8586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8585,"mutability":"mutable","name":"set","nameLocation":"5591:3:34","nodeType":"VariableDeclaration","scope":8595,"src":"5579:15:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8584,"nodeType":"UserDefinedTypeName","pathNode":{"id":8583,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"5579:3:34"},"referencedDeclaration":8405,"src":"5579:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5578:17:34"},"returnParameters":{"id":8590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8595,"src":"5618:16:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5618:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8588,"nodeType":"ArrayTypeName","src":"5618:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5617:18:34"},"scope":9007,"src":"5562:109:34","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":8599,"members":[{"constant":false,"id":8598,"mutability":"mutable","name":"_inner","nameLocation":"5728:6:34","nodeType":"VariableDeclaration","scope":8599,"src":"5724:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8597,"nodeType":"UserDefinedTypeName","pathNode":{"id":8596,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"5724:3:34"},"referencedDeclaration":8405,"src":"5724:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5703:10:34","nodeType":"StructDefinition","scope":9007,"src":"5696:45:34","visibility":"public"},{"body":{"id":8616,"nodeType":"Block","src":"5987:47:34","statements":[{"expression":{"arguments":[{"expression":{"id":8611,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8603,"src":"6009:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"6009:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8613,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"6021:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8610,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8447,"src":"6004:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6004:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8609,"id":8615,"nodeType":"Return","src":"5997:30:34"}]},"documentation":{"id":8600,"nodeType":"StructuredDocumentation","src":"5747:159:34","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":8617,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5920:3:34","nodeType":"FunctionDefinition","parameters":{"id":8606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8603,"mutability":"mutable","name":"set","nameLocation":"5943:3:34","nodeType":"VariableDeclaration","scope":8617,"src":"5924:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8602,"nodeType":"UserDefinedTypeName","pathNode":{"id":8601,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"5924:10:34"},"referencedDeclaration":8599,"src":"5924:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8605,"mutability":"mutable","name":"value","nameLocation":"5956:5:34","nodeType":"VariableDeclaration","scope":8617,"src":"5948:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5948:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5923:39:34"},"returnParameters":{"id":8609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8617,"src":"5981:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8607,"name":"bool","nodeType":"ElementaryTypeName","src":"5981:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5980:6:34"},"scope":9007,"src":"5911:123:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8634,"nodeType":"Block","src":"6281:50:34","statements":[{"expression":{"arguments":[{"expression":{"id":8629,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"6306:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"6306:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8623,"src":"6318:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8628,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8531,"src":"6298:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6298:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8627,"id":8633,"nodeType":"Return","src":"6291:33:34"}]},"documentation":{"id":8618,"nodeType":"StructuredDocumentation","src":"6040:157:34","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":8635,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6211:6:34","nodeType":"FunctionDefinition","parameters":{"id":8624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8621,"mutability":"mutable","name":"set","nameLocation":"6237:3:34","nodeType":"VariableDeclaration","scope":8635,"src":"6218:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8620,"nodeType":"UserDefinedTypeName","pathNode":{"id":8619,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"6218:10:34"},"referencedDeclaration":8599,"src":"6218:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8623,"mutability":"mutable","name":"value","nameLocation":"6250:5:34","nodeType":"VariableDeclaration","scope":8635,"src":"6242:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6242:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6217:39:34"},"returnParameters":{"id":8627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8635,"src":"6275:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8625,"name":"bool","nodeType":"ElementaryTypeName","src":"6275:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6274:6:34"},"scope":9007,"src":"6202:129:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8652,"nodeType":"Block","src":"6498:52:34","statements":[{"expression":{"arguments":[{"expression":{"id":8647,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8639,"src":"6525:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"6525:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8641,"src":"6537:5:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8646,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"6515:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":8650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6515:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8645,"id":8651,"nodeType":"Return","src":"6508:35:34"}]},"documentation":{"id":8636,"nodeType":"StructuredDocumentation","src":"6337:70:34","text":" @dev Returns true if the value is in the set. O(1)."},"id":8653,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6421:8:34","nodeType":"FunctionDefinition","parameters":{"id":8642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8639,"mutability":"mutable","name":"set","nameLocation":"6449:3:34","nodeType":"VariableDeclaration","scope":8653,"src":"6430:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8638,"nodeType":"UserDefinedTypeName","pathNode":{"id":8637,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"6430:10:34"},"referencedDeclaration":8599,"src":"6430:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8641,"mutability":"mutable","name":"value","nameLocation":"6462:5:34","nodeType":"VariableDeclaration","scope":8653,"src":"6454:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6454:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6429:39:34"},"returnParameters":{"id":8645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8653,"src":"6492:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8643,"name":"bool","nodeType":"ElementaryTypeName","src":"6492:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6491:6:34"},"scope":9007,"src":"6412:138:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8667,"nodeType":"Block","src":"6703:43:34","statements":[{"expression":{"arguments":[{"expression":{"id":8663,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8657,"src":"6728:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"6728:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8662,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"6720:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":8665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8661,"id":8666,"nodeType":"Return","src":"6713:26:34"}]},"documentation":{"id":8654,"nodeType":"StructuredDocumentation","src":"6556:70:34","text":" @dev Returns the number of values in the set. O(1)."},"id":8668,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6640:6:34","nodeType":"FunctionDefinition","parameters":{"id":8658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8657,"mutability":"mutable","name":"set","nameLocation":"6666:3:34","nodeType":"VariableDeclaration","scope":8668,"src":"6647:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8656,"nodeType":"UserDefinedTypeName","pathNode":{"id":8655,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"6647:10:34"},"referencedDeclaration":8599,"src":"6647:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6646:24:34"},"returnParameters":{"id":8661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8668,"src":"6694:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8659,"name":"uint256","nodeType":"ElementaryTypeName","src":"6694:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6693:9:34"},"scope":9007,"src":"6631:115:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8685,"nodeType":"Block","src":"7171:46:34","statements":[{"expression":{"arguments":[{"expression":{"id":8680,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8672,"src":"7192:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"7192:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8682,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8674,"src":"7204:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8679,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8581,"src":"7188:3:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":8683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7188:22:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8678,"id":8684,"nodeType":"Return","src":"7181:29:34"}]},"documentation":{"id":8669,"nodeType":"StructuredDocumentation","src":"6752:331:34","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":8686,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7097:2:34","nodeType":"FunctionDefinition","parameters":{"id":8675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8672,"mutability":"mutable","name":"set","nameLocation":"7119:3:34","nodeType":"VariableDeclaration","scope":8686,"src":"7100:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8671,"nodeType":"UserDefinedTypeName","pathNode":{"id":8670,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"7100:10:34"},"referencedDeclaration":8599,"src":"7100:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8674,"mutability":"mutable","name":"index","nameLocation":"7132:5:34","nodeType":"VariableDeclaration","scope":8686,"src":"7124:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8673,"name":"uint256","nodeType":"ElementaryTypeName","src":"7124:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7099:39:34"},"returnParameters":{"id":8678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8686,"src":"7162:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7162:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7161:9:34"},"scope":9007,"src":"7088:129:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8715,"nodeType":"Block","src":"7838:219:34","statements":[{"assignments":[8700],"declarations":[{"constant":false,"id":8700,"mutability":"mutable","name":"store","nameLocation":"7865:5:34","nodeType":"VariableDeclaration","scope":8715,"src":"7848:22:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7848:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8699,"nodeType":"ArrayTypeName","src":"7848:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8705,"initialValue":{"arguments":[{"expression":{"id":8702,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"7881:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8598,"src":"7881:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8701,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8595,"src":"7873:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":8704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7873:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7848:44:34"},{"assignments":[8710],"declarations":[{"constant":false,"id":8710,"mutability":"mutable","name":"result","nameLocation":"7919:6:34","nodeType":"VariableDeclaration","scope":8715,"src":"7902:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8708,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7902:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8709,"nodeType":"ArrayTypeName","src":"7902:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8711,"nodeType":"VariableDeclarationStatement","src":"7902:23:34"},{"AST":{"nodeType":"YulBlock","src":"7988:39:34","statements":[{"nodeType":"YulAssignment","src":"8002:15:34","value":{"name":"store","nodeType":"YulIdentifier","src":"8012:5:34"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8002:6:34"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":8710,"isOffset":false,"isSlot":false,"src":"8002:6:34","valueSize":1},{"declaration":8700,"isOffset":false,"isSlot":false,"src":"8012:5:34","valueSize":1}],"id":8712,"nodeType":"InlineAssembly","src":"7979:48:34"},{"expression":{"id":8713,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8710,"src":"8044:6:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":8695,"id":8714,"nodeType":"Return","src":"8037:13:34"}]},"documentation":{"id":8687,"nodeType":"StructuredDocumentation","src":"7223:529:34","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":8716,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7766:6:34","nodeType":"FunctionDefinition","parameters":{"id":8691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8690,"mutability":"mutable","name":"set","nameLocation":"7792:3:34","nodeType":"VariableDeclaration","scope":8716,"src":"7773:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8689,"nodeType":"UserDefinedTypeName","pathNode":{"id":8688,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":8599,"src":"7773:10:34"},"referencedDeclaration":8599,"src":"7773:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8599_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7772:24:34"},"returnParameters":{"id":8695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8716,"src":"7820:16:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7820:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8693,"nodeType":"ArrayTypeName","src":"7820:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7819:18:34"},"scope":9007,"src":"7757:300:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":8720,"members":[{"constant":false,"id":8719,"mutability":"mutable","name":"_inner","nameLocation":"8114:6:34","nodeType":"VariableDeclaration","scope":8720,"src":"8110:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8718,"nodeType":"UserDefinedTypeName","pathNode":{"id":8717,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"8110:3:34"},"referencedDeclaration":8405,"src":"8110:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8089:10:34","nodeType":"StructDefinition","scope":9007,"src":"8082:45:34","visibility":"public"},{"body":{"id":8746,"nodeType":"Block","src":"8373:74:34","statements":[{"expression":{"arguments":[{"expression":{"id":8732,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"8395:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8719,"src":"8395:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":8740,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8726,"src":"8431:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8423:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8738,"name":"uint160","nodeType":"ElementaryTypeName","src":"8423:7:34","typeDescriptions":{}}},"id":8741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8423:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8415:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8736,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:34","typeDescriptions":{}}},"id":8742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8415:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8407:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8407:7:34","typeDescriptions":{}}},"id":8743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8407:32:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8731,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8447,"src":"8390:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8390:50:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8730,"id":8745,"nodeType":"Return","src":"8383:57:34"}]},"documentation":{"id":8721,"nodeType":"StructuredDocumentation","src":"8133:159:34","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":8747,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8306:3:34","nodeType":"FunctionDefinition","parameters":{"id":8727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8724,"mutability":"mutable","name":"set","nameLocation":"8329:3:34","nodeType":"VariableDeclaration","scope":8747,"src":"8310:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8723,"nodeType":"UserDefinedTypeName","pathNode":{"id":8722,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"8310:10:34"},"referencedDeclaration":8720,"src":"8310:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":8726,"mutability":"mutable","name":"value","nameLocation":"8342:5:34","nodeType":"VariableDeclaration","scope":8747,"src":"8334:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8725,"name":"address","nodeType":"ElementaryTypeName","src":"8334:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8309:39:34"},"returnParameters":{"id":8730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8747,"src":"8367:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8728,"name":"bool","nodeType":"ElementaryTypeName","src":"8367:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8366:6:34"},"scope":9007,"src":"8297:150:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8773,"nodeType":"Block","src":"8694:77:34","statements":[{"expression":{"arguments":[{"expression":{"id":8759,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8751,"src":"8719:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8719,"src":"8719:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":8767,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8753,"src":"8755:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8747:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8765,"name":"uint160","nodeType":"ElementaryTypeName","src":"8747:7:34","typeDescriptions":{}}},"id":8768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8747:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8763,"name":"uint256","nodeType":"ElementaryTypeName","src":"8739:7:34","typeDescriptions":{}}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8739:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8731:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8731:7:34","typeDescriptions":{}}},"id":8770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8731:32:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8758,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8531,"src":"8711:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8711:53:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8757,"id":8772,"nodeType":"Return","src":"8704:60:34"}]},"documentation":{"id":8748,"nodeType":"StructuredDocumentation","src":"8453:157:34","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":8774,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8624:6:34","nodeType":"FunctionDefinition","parameters":{"id":8754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8751,"mutability":"mutable","name":"set","nameLocation":"8650:3:34","nodeType":"VariableDeclaration","scope":8774,"src":"8631:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8750,"nodeType":"UserDefinedTypeName","pathNode":{"id":8749,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"8631:10:34"},"referencedDeclaration":8720,"src":"8631:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":8753,"mutability":"mutable","name":"value","nameLocation":"8663:5:34","nodeType":"VariableDeclaration","scope":8774,"src":"8655:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8752,"name":"address","nodeType":"ElementaryTypeName","src":"8655:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8630:39:34"},"returnParameters":{"id":8757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8774,"src":"8688:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8755,"name":"bool","nodeType":"ElementaryTypeName","src":"8688:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8687:6:34"},"scope":9007,"src":"8615:156:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8800,"nodeType":"Block","src":"8938:79:34","statements":[{"expression":{"arguments":[{"expression":{"id":8786,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8778,"src":"8965:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8719,"src":"8965:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":8794,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8780,"src":"9001:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8993:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8792,"name":"uint160","nodeType":"ElementaryTypeName","src":"8993:7:34","typeDescriptions":{}}},"id":8795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8993:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8985:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8790,"name":"uint256","nodeType":"ElementaryTypeName","src":"8985:7:34","typeDescriptions":{}}},"id":8796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8985:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8977:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8977:7:34","typeDescriptions":{}}},"id":8797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8977:32:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8785,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"8955:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":8798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8955:55:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8784,"id":8799,"nodeType":"Return","src":"8948:62:34"}]},"documentation":{"id":8775,"nodeType":"StructuredDocumentation","src":"8777:70:34","text":" @dev Returns true if the value is in the set. O(1)."},"id":8801,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8861:8:34","nodeType":"FunctionDefinition","parameters":{"id":8781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8778,"mutability":"mutable","name":"set","nameLocation":"8889:3:34","nodeType":"VariableDeclaration","scope":8801,"src":"8870:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8777,"nodeType":"UserDefinedTypeName","pathNode":{"id":8776,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"8870:10:34"},"referencedDeclaration":8720,"src":"8870:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":8780,"mutability":"mutable","name":"value","nameLocation":"8902:5:34","nodeType":"VariableDeclaration","scope":8801,"src":"8894:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8779,"name":"address","nodeType":"ElementaryTypeName","src":"8894:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8869:39:34"},"returnParameters":{"id":8784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8801,"src":"8932:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8782,"name":"bool","nodeType":"ElementaryTypeName","src":"8932:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8931:6:34"},"scope":9007,"src":"8852:165:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8815,"nodeType":"Block","src":"9170:43:34","statements":[{"expression":{"arguments":[{"expression":{"id":8811,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8805,"src":"9195:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8719,"src":"9195:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8810,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"9187:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":8813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9187:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8809,"id":8814,"nodeType":"Return","src":"9180:26:34"}]},"documentation":{"id":8802,"nodeType":"StructuredDocumentation","src":"9023:70:34","text":" @dev Returns the number of values in the set. O(1)."},"id":8816,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9107:6:34","nodeType":"FunctionDefinition","parameters":{"id":8806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8805,"mutability":"mutable","name":"set","nameLocation":"9133:3:34","nodeType":"VariableDeclaration","scope":8816,"src":"9114:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8804,"nodeType":"UserDefinedTypeName","pathNode":{"id":8803,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"9114:10:34"},"referencedDeclaration":8720,"src":"9114:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9113:24:34"},"returnParameters":{"id":8809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8816,"src":"9161:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8807,"name":"uint256","nodeType":"ElementaryTypeName","src":"9161:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9160:9:34"},"scope":9007,"src":"9098:115:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8842,"nodeType":"Block","src":"9638:73:34","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":8834,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8820,"src":"9683:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8719,"src":"9683:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8836,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8822,"src":"9695:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8833,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8581,"src":"9679:3:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":8837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9679:22:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9671:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8831,"name":"uint256","nodeType":"ElementaryTypeName","src":"9671:7:34","typeDescriptions":{}}},"id":8838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9671:31:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9663:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8829,"name":"uint160","nodeType":"ElementaryTypeName","src":"9663:7:34","typeDescriptions":{}}},"id":8839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9663:40:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9655:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8827,"name":"address","nodeType":"ElementaryTypeName","src":"9655:7:34","typeDescriptions":{}}},"id":8840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9655:49:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8826,"id":8841,"nodeType":"Return","src":"9648:56:34"}]},"documentation":{"id":8817,"nodeType":"StructuredDocumentation","src":"9219:331:34","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":8843,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9564:2:34","nodeType":"FunctionDefinition","parameters":{"id":8823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8820,"mutability":"mutable","name":"set","nameLocation":"9586:3:34","nodeType":"VariableDeclaration","scope":8843,"src":"9567:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8819,"nodeType":"UserDefinedTypeName","pathNode":{"id":8818,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"9567:10:34"},"referencedDeclaration":8720,"src":"9567:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":8822,"mutability":"mutable","name":"index","nameLocation":"9599:5:34","nodeType":"VariableDeclaration","scope":8843,"src":"9591:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8821,"name":"uint256","nodeType":"ElementaryTypeName","src":"9591:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9566:39:34"},"returnParameters":{"id":8826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8843,"src":"9629:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8824,"name":"address","nodeType":"ElementaryTypeName","src":"9629:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9628:9:34"},"scope":9007,"src":"9555:156:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8872,"nodeType":"Block","src":"10332:219:34","statements":[{"assignments":[8857],"declarations":[{"constant":false,"id":8857,"mutability":"mutable","name":"store","nameLocation":"10359:5:34","nodeType":"VariableDeclaration","scope":8872,"src":"10342:22:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10342:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8856,"nodeType":"ArrayTypeName","src":"10342:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8862,"initialValue":{"arguments":[{"expression":{"id":8859,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8847,"src":"10375:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8719,"src":"10375:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8858,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8595,"src":"10367:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":8861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10367:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10342:44:34"},{"assignments":[8867],"declarations":[{"constant":false,"id":8867,"mutability":"mutable","name":"result","nameLocation":"10413:6:34","nodeType":"VariableDeclaration","scope":8872,"src":"10396:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8865,"name":"address","nodeType":"ElementaryTypeName","src":"10396:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8866,"nodeType":"ArrayTypeName","src":"10396:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":8868,"nodeType":"VariableDeclarationStatement","src":"10396:23:34"},{"AST":{"nodeType":"YulBlock","src":"10482:39:34","statements":[{"nodeType":"YulAssignment","src":"10496:15:34","value":{"name":"store","nodeType":"YulIdentifier","src":"10506:5:34"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10496:6:34"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":8867,"isOffset":false,"isSlot":false,"src":"10496:6:34","valueSize":1},{"declaration":8857,"isOffset":false,"isSlot":false,"src":"10506:5:34","valueSize":1}],"id":8869,"nodeType":"InlineAssembly","src":"10473:48:34"},{"expression":{"id":8870,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8867,"src":"10538:6:34","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":8852,"id":8871,"nodeType":"Return","src":"10531:13:34"}]},"documentation":{"id":8844,"nodeType":"StructuredDocumentation","src":"9717:529:34","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":8873,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10260:6:34","nodeType":"FunctionDefinition","parameters":{"id":8848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8847,"mutability":"mutable","name":"set","nameLocation":"10286:3:34","nodeType":"VariableDeclaration","scope":8873,"src":"10267:22:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8846,"nodeType":"UserDefinedTypeName","pathNode":{"id":8845,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":8720,"src":"10267:10:34"},"referencedDeclaration":8720,"src":"10267:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8720_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10266:24:34"},"returnParameters":{"id":8852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8873,"src":"10314:16:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8849,"name":"address","nodeType":"ElementaryTypeName","src":"10314:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8850,"nodeType":"ArrayTypeName","src":"10314:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10313:18:34"},"scope":9007,"src":"10251:300:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":8877,"members":[{"constant":false,"id":8876,"mutability":"mutable","name":"_inner","nameLocation":"10602:6:34","nodeType":"VariableDeclaration","scope":8877,"src":"10598:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8875,"nodeType":"UserDefinedTypeName","pathNode":{"id":8874,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":8405,"src":"10598:3:34"},"referencedDeclaration":8405,"src":"10598:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10580:7:34","nodeType":"StructDefinition","scope":9007,"src":"10573:42:34","visibility":"public"},{"body":{"id":8897,"nodeType":"Block","src":"10858:56:34","statements":[{"expression":{"arguments":[{"expression":{"id":8889,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8881,"src":"10880:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":8890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8876,"src":"10880:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":8893,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8883,"src":"10900:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10892:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10892:7:34","typeDescriptions":{}}},"id":8894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10892:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8888,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8447,"src":"10875:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10875:32:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8887,"id":8896,"nodeType":"Return","src":"10868:39:34"}]},"documentation":{"id":8878,"nodeType":"StructuredDocumentation","src":"10621:159:34","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":8898,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10794:3:34","nodeType":"FunctionDefinition","parameters":{"id":8884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8881,"mutability":"mutable","name":"set","nameLocation":"10814:3:34","nodeType":"VariableDeclaration","scope":8898,"src":"10798:19:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":8880,"nodeType":"UserDefinedTypeName","pathNode":{"id":8879,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"10798:7:34"},"referencedDeclaration":8877,"src":"10798:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":8883,"mutability":"mutable","name":"value","nameLocation":"10827:5:34","nodeType":"VariableDeclaration","scope":8898,"src":"10819:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8882,"name":"uint256","nodeType":"ElementaryTypeName","src":"10819:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10797:36:34"},"returnParameters":{"id":8887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8898,"src":"10852:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8885,"name":"bool","nodeType":"ElementaryTypeName","src":"10852:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10851:6:34"},"scope":9007,"src":"10785:129:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8918,"nodeType":"Block","src":"11158:59:34","statements":[{"expression":{"arguments":[{"expression":{"id":8910,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"11183:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":8911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8876,"src":"11183:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":8914,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8904,"src":"11203:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11195:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11195:7:34","typeDescriptions":{}}},"id":8915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11195:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8909,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8531,"src":"11175:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11175:35:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8908,"id":8917,"nodeType":"Return","src":"11168:42:34"}]},"documentation":{"id":8899,"nodeType":"StructuredDocumentation","src":"10920:157:34","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":8919,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11091:6:34","nodeType":"FunctionDefinition","parameters":{"id":8905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8902,"mutability":"mutable","name":"set","nameLocation":"11114:3:34","nodeType":"VariableDeclaration","scope":8919,"src":"11098:19:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":8901,"nodeType":"UserDefinedTypeName","pathNode":{"id":8900,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"11098:7:34"},"referencedDeclaration":8877,"src":"11098:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":8904,"mutability":"mutable","name":"value","nameLocation":"11127:5:34","nodeType":"VariableDeclaration","scope":8919,"src":"11119:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8903,"name":"uint256","nodeType":"ElementaryTypeName","src":"11119:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11097:36:34"},"returnParameters":{"id":8908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8919,"src":"11152:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8906,"name":"bool","nodeType":"ElementaryTypeName","src":"11152:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11151:6:34"},"scope":9007,"src":"11082:135:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8939,"nodeType":"Block","src":"11381:61:34","statements":[{"expression":{"arguments":[{"expression":{"id":8931,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"11408:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":8932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8876,"src":"11408:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":8935,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8925,"src":"11428:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11420:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11420:7:34","typeDescriptions":{}}},"id":8936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11420:14:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8930,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"11398:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":8937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11398:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8929,"id":8938,"nodeType":"Return","src":"11391:44:34"}]},"documentation":{"id":8920,"nodeType":"StructuredDocumentation","src":"11223:70:34","text":" @dev Returns true if the value is in the set. O(1)."},"id":8940,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11307:8:34","nodeType":"FunctionDefinition","parameters":{"id":8926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8923,"mutability":"mutable","name":"set","nameLocation":"11332:3:34","nodeType":"VariableDeclaration","scope":8940,"src":"11316:19:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":8922,"nodeType":"UserDefinedTypeName","pathNode":{"id":8921,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"11316:7:34"},"referencedDeclaration":8877,"src":"11316:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":8925,"mutability":"mutable","name":"value","nameLocation":"11345:5:34","nodeType":"VariableDeclaration","scope":8940,"src":"11337:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8924,"name":"uint256","nodeType":"ElementaryTypeName","src":"11337:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11315:36:34"},"returnParameters":{"id":8929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8940,"src":"11375:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8927,"name":"bool","nodeType":"ElementaryTypeName","src":"11375:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11374:6:34"},"scope":9007,"src":"11298:144:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8954,"nodeType":"Block","src":"11592:43:34","statements":[{"expression":{"arguments":[{"expression":{"id":8950,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8944,"src":"11617:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":8951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8876,"src":"11617:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8949,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"11609:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":8952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11609:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8948,"id":8953,"nodeType":"Return","src":"11602:26:34"}]},"documentation":{"id":8941,"nodeType":"StructuredDocumentation","src":"11448:70:34","text":" @dev Returns the number of values in the set. O(1)."},"id":8955,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11532:6:34","nodeType":"FunctionDefinition","parameters":{"id":8945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8944,"mutability":"mutable","name":"set","nameLocation":"11555:3:34","nodeType":"VariableDeclaration","scope":8955,"src":"11539:19:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":8943,"nodeType":"UserDefinedTypeName","pathNode":{"id":8942,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"11539:7:34"},"referencedDeclaration":8877,"src":"11539:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11538:21:34"},"returnParameters":{"id":8948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8955,"src":"11583:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8946,"name":"uint256","nodeType":"ElementaryTypeName","src":"11583:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11582:9:34"},"scope":9007,"src":"11523:112:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8975,"nodeType":"Block","src":"12057:55:34","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":8969,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8959,"src":"12086:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":8970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8876,"src":"12086:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8971,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8961,"src":"12098:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8968,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8581,"src":"12082:3:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":8972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12082:22:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12074:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8966,"name":"uint256","nodeType":"ElementaryTypeName","src":"12074:7:34","typeDescriptions":{}}},"id":8973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12074:31:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8965,"id":8974,"nodeType":"Return","src":"12067:38:34"}]},"documentation":{"id":8956,"nodeType":"StructuredDocumentation","src":"11641:331:34","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":8976,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11986:2:34","nodeType":"FunctionDefinition","parameters":{"id":8962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8959,"mutability":"mutable","name":"set","nameLocation":"12005:3:34","nodeType":"VariableDeclaration","scope":8976,"src":"11989:19:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":8958,"nodeType":"UserDefinedTypeName","pathNode":{"id":8957,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"11989:7:34"},"referencedDeclaration":8877,"src":"11989:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":8961,"mutability":"mutable","name":"index","nameLocation":"12018:5:34","nodeType":"VariableDeclaration","scope":8976,"src":"12010:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8960,"name":"uint256","nodeType":"ElementaryTypeName","src":"12010:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11988:36:34"},"returnParameters":{"id":8965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8976,"src":"12048:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8963,"name":"uint256","nodeType":"ElementaryTypeName","src":"12048:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12047:9:34"},"scope":9007,"src":"11977:135:34","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9005,"nodeType":"Block","src":"12730:219:34","statements":[{"assignments":[8990],"declarations":[{"constant":false,"id":8990,"mutability":"mutable","name":"store","nameLocation":"12757:5:34","nodeType":"VariableDeclaration","scope":9005,"src":"12740:22:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12740:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8989,"nodeType":"ArrayTypeName","src":"12740:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8995,"initialValue":{"arguments":[{"expression":{"id":8992,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8980,"src":"12773:3:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":8993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8876,"src":"12773:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8405_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8991,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8595,"src":"12765:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8405_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":8994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12765:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12740:44:34"},{"assignments":[9000],"declarations":[{"constant":false,"id":9000,"mutability":"mutable","name":"result","nameLocation":"12811:6:34","nodeType":"VariableDeclaration","scope":9005,"src":"12794:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8998,"name":"uint256","nodeType":"ElementaryTypeName","src":"12794:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8999,"nodeType":"ArrayTypeName","src":"12794:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":9001,"nodeType":"VariableDeclarationStatement","src":"12794:23:34"},{"AST":{"nodeType":"YulBlock","src":"12880:39:34","statements":[{"nodeType":"YulAssignment","src":"12894:15:34","value":{"name":"store","nodeType":"YulIdentifier","src":"12904:5:34"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12894:6:34"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":9000,"isOffset":false,"isSlot":false,"src":"12894:6:34","valueSize":1},{"declaration":8990,"isOffset":false,"isSlot":false,"src":"12904:5:34","valueSize":1}],"id":9002,"nodeType":"InlineAssembly","src":"12871:48:34"},{"expression":{"id":9003,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9000,"src":"12936:6:34","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":8985,"id":9004,"nodeType":"Return","src":"12929:13:34"}]},"documentation":{"id":8977,"nodeType":"StructuredDocumentation","src":"12118:529:34","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9006,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12661:6:34","nodeType":"FunctionDefinition","parameters":{"id":8981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8980,"mutability":"mutable","name":"set","nameLocation":"12684:3:34","nodeType":"VariableDeclaration","scope":9006,"src":"12668:19:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":8979,"nodeType":"UserDefinedTypeName","pathNode":{"id":8978,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"12668:7:34"},"referencedDeclaration":8877,"src":"12668:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12667:21:34"},"returnParameters":{"id":8985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9006,"src":"12712:16:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8982,"name":"uint256","nodeType":"ElementaryTypeName","src":"12712:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8983,"nodeType":"ArrayTypeName","src":"12712:9:34","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12711:18:34"},"scope":9007,"src":"12652:297:34","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":9008,"src":"1321:11630:34","usedErrors":[]}],"src":"205:12747:34"},"id":34},"@rari-capital/solmate/src/tokens/ERC20.sol":{"ast":{"absolutePath":"@rari-capital/solmate/src/tokens/ERC20.sol","exportedSymbols":{"ERC20":[9395]},"id":9396,"license":"AGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":9009,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:35"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":9010,"nodeType":"StructuredDocumentation","src":"68:403:35","text":"@notice Modern and gas efficient ERC20 + EIP-2612 implementation.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)\n @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\n @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it."},"fullyImplemented":true,"id":9395,"linearizedBaseContracts":[9395],"name":"ERC20","nameLocation":"489:5:35","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":9018,"name":"Transfer","nameLocation":"686:8:35","nodeType":"EventDefinition","parameters":{"id":9017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9012,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"711:4:35","nodeType":"VariableDeclaration","scope":9018,"src":"695:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9011,"name":"address","nodeType":"ElementaryTypeName","src":"695:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9014,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"733:2:35","nodeType":"VariableDeclaration","scope":9018,"src":"717:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9013,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9016,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"745:6:35","nodeType":"VariableDeclaration","scope":9018,"src":"737:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9015,"name":"uint256","nodeType":"ElementaryTypeName","src":"737:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"694:58:35"},"src":"680:73:35"},{"anonymous":false,"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":9026,"name":"Approval","nameLocation":"765:8:35","nodeType":"EventDefinition","parameters":{"id":9025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"790:5:35","nodeType":"VariableDeclaration","scope":9026,"src":"774:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9019,"name":"address","nodeType":"ElementaryTypeName","src":"774:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9022,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"813:7:35","nodeType":"VariableDeclaration","scope":9026,"src":"797:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9021,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9024,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"830:6:35","nodeType":"VariableDeclaration","scope":9026,"src":"822:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9023,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"773:64:35"},"src":"759:79:35"},{"constant":false,"functionSelector":"06fdde03","id":9028,"mutability":"mutable","name":"name","nameLocation":"1042:4:35","nodeType":"VariableDeclaration","scope":9395,"src":"1028:18:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9027,"name":"string","nodeType":"ElementaryTypeName","src":"1028:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"95d89b41","id":9030,"mutability":"mutable","name":"symbol","nameLocation":"1067:6:35","nodeType":"VariableDeclaration","scope":9395,"src":"1053:20:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9029,"name":"string","nodeType":"ElementaryTypeName","src":"1053:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"functionSelector":"313ce567","id":9032,"mutability":"immutable","name":"decimals","nameLocation":"1103:8:35","nodeType":"VariableDeclaration","scope":9395,"src":"1080:31:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9031,"name":"uint8","nodeType":"ElementaryTypeName","src":"1080:5:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"public"},{"constant":false,"functionSelector":"18160ddd","id":9034,"mutability":"mutable","name":"totalSupply","nameLocation":"1316:11:35","nodeType":"VariableDeclaration","scope":9395,"src":"1301:26:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9033,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"70a08231","id":9038,"mutability":"mutable","name":"balanceOf","nameLocation":"1369:9:35","nodeType":"VariableDeclaration","scope":9395,"src":"1334:44:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":9037,"keyType":{"id":9035,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1334:27:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":9036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1353:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"dd62ed3e","id":9044,"mutability":"mutable","name":"allowance","nameLocation":"1440:9:35","nodeType":"VariableDeclaration","scope":9395,"src":"1385:64:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":9043,"keyType":{"id":9039,"name":"address","nodeType":"ElementaryTypeName","src":"1393:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1385:47:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":9042,"keyType":{"id":9040,"name":"address","nodeType":"ElementaryTypeName","src":"1412:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1404:27:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":9041,"name":"uint256","nodeType":"ElementaryTypeName","src":"1423:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"constant":false,"id":9046,"mutability":"immutable","name":"INITIAL_CHAIN_ID","nameLocation":"1667:16:35","nodeType":"VariableDeclaration","scope":9395,"src":"1640:43:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1640:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9048,"mutability":"immutable","name":"INITIAL_DOMAIN_SEPARATOR","nameLocation":"1717:24:35","nodeType":"VariableDeclaration","scope":9395,"src":"1690:51:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1690:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"functionSelector":"7ecebe00","id":9052,"mutability":"mutable","name":"nonces","nameLocation":"1783:6:35","nodeType":"VariableDeclaration","scope":9395,"src":"1748:41:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":9051,"keyType":{"id":9049,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1748:27:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":9050,"name":"uint256","nodeType":"ElementaryTypeName","src":"1767:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"body":{"id":9083,"nodeType":"Block","src":"2081:189:35","statements":[{"expression":{"id":9063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9061,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9028,"src":"2091:4:35","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9062,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9054,"src":"2098:5:35","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2091:12:35","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9064,"nodeType":"ExpressionStatement","src":"2091:12:35"},{"expression":{"id":9067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9065,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9030,"src":"2113:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9066,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9056,"src":"2122:7:35","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2113:16:35","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9068,"nodeType":"ExpressionStatement","src":"2113:16:35"},{"expression":{"id":9071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9069,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9032,"src":"2139:8:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9070,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"2150:9:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2139:20:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":9072,"nodeType":"ExpressionStatement","src":"2139:20:35"},{"expression":{"id":9076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9073,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9046,"src":"2170:16:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":9074,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2189:5:35","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"2189:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2170:32:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9077,"nodeType":"ExpressionStatement","src":"2170:32:35"},{"expression":{"id":9081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9078,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9048,"src":"2212:24:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":9079,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9338,"src":"2239:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":9080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2239:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2212:51:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9082,"nodeType":"ExpressionStatement","src":"2212:51:35"}]},"id":9084,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9054,"mutability":"mutable","name":"_name","nameLocation":"2013:5:35","nodeType":"VariableDeclaration","scope":9084,"src":"1999:19:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9053,"name":"string","nodeType":"ElementaryTypeName","src":"1999:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9056,"mutability":"mutable","name":"_symbol","nameLocation":"2042:7:35","nodeType":"VariableDeclaration","scope":9084,"src":"2028:21:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9055,"name":"string","nodeType":"ElementaryTypeName","src":"2028:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9058,"mutability":"mutable","name":"_decimals","nameLocation":"2065:9:35","nodeType":"VariableDeclaration","scope":9084,"src":"2059:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9057,"name":"uint8","nodeType":"ElementaryTypeName","src":"2059:5:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1989:91:35"},"returnParameters":{"id":9060,"nodeType":"ParameterList","parameters":[],"src":"2081:0:35"},"scope":9395,"src":"1978:292:35","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9111,"nodeType":"Block","src":"2538:131:35","statements":[{"expression":{"id":9100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9093,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9044,"src":"2548:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9097,"indexExpression":{"expression":{"id":9094,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2558:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2558:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2548:21:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9098,"indexExpression":{"id":9096,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"2570:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2548:30:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9099,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9088,"src":"2581:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2548:39:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9101,"nodeType":"ExpressionStatement","src":"2548:39:35"},{"eventCall":{"arguments":[{"expression":{"id":9103,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2612:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2612:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9105,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9086,"src":"2624:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9088,"src":"2633:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9102,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9026,"src":"2603:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2603:37:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9108,"nodeType":"EmitStatement","src":"2598:42:35"},{"expression":{"hexValue":"74727565","id":9109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2658:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9092,"id":9110,"nodeType":"Return","src":"2651:11:35"}]},"functionSelector":"095ea7b3","id":9112,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2467:7:35","nodeType":"FunctionDefinition","parameters":{"id":9089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9086,"mutability":"mutable","name":"spender","nameLocation":"2483:7:35","nodeType":"VariableDeclaration","scope":9112,"src":"2475:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9085,"name":"address","nodeType":"ElementaryTypeName","src":"2475:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9088,"mutability":"mutable","name":"amount","nameLocation":"2500:6:35","nodeType":"VariableDeclaration","scope":9112,"src":"2492:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9087,"name":"uint256","nodeType":"ElementaryTypeName","src":"2492:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2474:33:35"},"returnParameters":{"id":9092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9112,"src":"2532:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9090,"name":"bool","nodeType":"ElementaryTypeName","src":"2532:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2531:6:35"},"scope":9395,"src":"2458:211:35","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9144,"nodeType":"Block","src":"2751:297:35","statements":[{"expression":{"id":9126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9121,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"2761:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9124,"indexExpression":{"expression":{"id":9122,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2771:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2771:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2761:21:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":9125,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"2786:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2761:31:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9127,"nodeType":"ExpressionStatement","src":"2761:31:35"},{"id":9134,"nodeType":"UncheckedBlock","src":"2914:58:35","statements":[{"expression":{"id":9132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9128,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"2938:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9130,"indexExpression":{"id":9129,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9114,"src":"2948:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2938:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9131,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"2955:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2938:23:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9133,"nodeType":"ExpressionStatement","src":"2938:23:35"}]},{"eventCall":{"arguments":[{"expression":{"id":9136,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2996:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2996:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9138,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9114,"src":"3008:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9139,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"3012:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9135,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9018,"src":"2987:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2987:32:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9141,"nodeType":"EmitStatement","src":"2982:37:35"},{"expression":{"hexValue":"74727565","id":9142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3037:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9120,"id":9143,"nodeType":"Return","src":"3030:11:35"}]},"functionSelector":"a9059cbb","id":9145,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2684:8:35","nodeType":"FunctionDefinition","parameters":{"id":9117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9114,"mutability":"mutable","name":"to","nameLocation":"2701:2:35","nodeType":"VariableDeclaration","scope":9145,"src":"2693:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9113,"name":"address","nodeType":"ElementaryTypeName","src":"2693:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9116,"mutability":"mutable","name":"amount","nameLocation":"2713:6:35","nodeType":"VariableDeclaration","scope":9145,"src":"2705:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9115,"name":"uint256","nodeType":"ElementaryTypeName","src":"2705:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2692:28:35"},"returnParameters":{"id":9120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9145,"src":"2745:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9118,"name":"bool","nodeType":"ElementaryTypeName","src":"2745:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2744:6:35"},"scope":9395,"src":"2675:373:35","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9205,"nodeType":"Block","src":"3178:468:35","statements":[{"assignments":[9157],"declarations":[{"constant":false,"id":9157,"mutability":"mutable","name":"allowed","nameLocation":"3196:7:35","nodeType":"VariableDeclaration","scope":9205,"src":"3188:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9156,"name":"uint256","nodeType":"ElementaryTypeName","src":"3188:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9164,"initialValue":{"baseExpression":{"baseExpression":{"id":9158,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9044,"src":"3206:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9160,"indexExpression":{"id":9159,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9147,"src":"3216:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3206:15:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9163,"indexExpression":{"expression":{"id":9161,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3222:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3222:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3206:27:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3188:45:35"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9165,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"3284:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":9168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3300:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9167,"name":"uint256","nodeType":"ElementaryTypeName","src":"3300:7:35","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":9166,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3295:4:35","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3295:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":9170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3295:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3284:28:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9183,"nodeType":"IfStatement","src":"3280:80:35","trueBody":{"expression":{"id":9181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9172,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9044,"src":"3314:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9176,"indexExpression":{"id":9173,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9147,"src":"3324:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3314:15:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9177,"indexExpression":{"expression":{"id":9174,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3330:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3330:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3314:27:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9178,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9157,"src":"3344:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9179,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9151,"src":"3354:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3344:16:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3314:46:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9182,"nodeType":"ExpressionStatement","src":"3314:46:35"}},{"expression":{"id":9188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9184,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"3371:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9186,"indexExpression":{"id":9185,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9147,"src":"3381:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3371:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":9187,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9151,"src":"3390:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3371:25:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9189,"nodeType":"ExpressionStatement","src":"3371:25:35"},{"id":9196,"nodeType":"UncheckedBlock","src":"3518:58:35","statements":[{"expression":{"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9190,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"3542:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9192,"indexExpression":{"id":9191,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9149,"src":"3552:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3542:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9193,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9151,"src":"3559:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3542:23:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9195,"nodeType":"ExpressionStatement","src":"3542:23:35"}]},{"eventCall":{"arguments":[{"id":9198,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9147,"src":"3600:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9199,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9149,"src":"3606:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9200,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9151,"src":"3610:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9197,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9018,"src":"3591:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3591:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9202,"nodeType":"EmitStatement","src":"3586:31:35"},{"expression":{"hexValue":"74727565","id":9203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3635:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9155,"id":9204,"nodeType":"Return","src":"3628:11:35"}]},"functionSelector":"23b872dd","id":9206,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3063:12:35","nodeType":"FunctionDefinition","parameters":{"id":9152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9147,"mutability":"mutable","name":"from","nameLocation":"3093:4:35","nodeType":"VariableDeclaration","scope":9206,"src":"3085:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9146,"name":"address","nodeType":"ElementaryTypeName","src":"3085:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9149,"mutability":"mutable","name":"to","nameLocation":"3115:2:35","nodeType":"VariableDeclaration","scope":9206,"src":"3107:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9148,"name":"address","nodeType":"ElementaryTypeName","src":"3107:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9151,"mutability":"mutable","name":"amount","nameLocation":"3135:6:35","nodeType":"VariableDeclaration","scope":9206,"src":"3127:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9150,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3075:72:35"},"returnParameters":{"id":9155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9206,"src":"3172:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9153,"name":"bool","nodeType":"ElementaryTypeName","src":"3172:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3171:6:35"},"scope":9395,"src":"3054:592:35","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9292,"nodeType":"Block","src":"4024:1294:35","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9224,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9214,"src":"4042:8:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":9225,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4054:5:35","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4054:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4042:27:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","id":9228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4071:25:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""},"value":"PERMIT_DEADLINE_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""}],"id":9223,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4034:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4034:63:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9230,"nodeType":"ExpressionStatement","src":"4034:63:35"},{"id":9285,"nodeType":"UncheckedBlock","src":"4238:1027:35","statements":[{"assignments":[9232],"declarations":[{"constant":false,"id":9232,"mutability":"mutable","name":"recoveredAddress","nameLocation":"4270:16:35","nodeType":"VariableDeclaration","scope":9285,"src":"4262:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9231,"name":"address","nodeType":"ElementaryTypeName","src":"4262:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9262,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"1901","id":9237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4389:10:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":9238,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9308,"src":"4425:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4425:18:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":9244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4599:84:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":9243,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4552:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4552:165:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9246,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"4751:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9247,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9210,"src":"4790:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9248,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9212,"src":"4831:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4870:15:35","subExpression":{"baseExpression":{"id":9249,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9052,"src":"4870:6:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9251,"indexExpression":{"id":9250,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"4877:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4870:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9253,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9214,"src":"4919:8:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9241,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4508:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4508:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4508:449:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9240,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4469:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4469:514:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9235,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4347:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4347:16:35","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4347:658:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9234,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4316:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4316:707:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9258,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9216,"src":"5041:1:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9259,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9218,"src":"5060:1:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9260,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9220,"src":"5079:1:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9233,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"4289:9:35","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4289:805:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4262:832:35"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9264,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9232,"src":"5117:16:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5145:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5137:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9265,"name":"address","nodeType":"ElementaryTypeName","src":"5137:7:35","typeDescriptions":{}}},"id":9268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5137:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5117:30:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9270,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9232,"src":"5151:16:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9271,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"5171:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5151:25:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5117:59:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4552","id":9274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5178:16:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""},"value":"INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""}],"id":9263,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5109:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5109:86:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9276,"nodeType":"ExpressionStatement","src":"5109:86:35"},{"expression":{"id":9283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9277,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9044,"src":"5210:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9280,"indexExpression":{"id":9278,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9232,"src":"5220:16:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5210:27:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9281,"indexExpression":{"id":9279,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9210,"src":"5238:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5210:36:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9282,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9212,"src":"5249:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5210:44:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9284,"nodeType":"ExpressionStatement","src":"5210:44:35"}]},{"eventCall":{"arguments":[{"id":9287,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"5289:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9288,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9210,"src":"5296:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9212,"src":"5305:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9286,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9026,"src":"5280:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5280:31:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9291,"nodeType":"EmitStatement","src":"5275:36:35"}]},"functionSelector":"d505accf","id":9293,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3844:6:35","nodeType":"FunctionDefinition","parameters":{"id":9221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9208,"mutability":"mutable","name":"owner","nameLocation":"3868:5:35","nodeType":"VariableDeclaration","scope":9293,"src":"3860:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9207,"name":"address","nodeType":"ElementaryTypeName","src":"3860:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9210,"mutability":"mutable","name":"spender","nameLocation":"3891:7:35","nodeType":"VariableDeclaration","scope":9293,"src":"3883:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9209,"name":"address","nodeType":"ElementaryTypeName","src":"3883:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9212,"mutability":"mutable","name":"value","nameLocation":"3916:5:35","nodeType":"VariableDeclaration","scope":9293,"src":"3908:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9211,"name":"uint256","nodeType":"ElementaryTypeName","src":"3908:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9214,"mutability":"mutable","name":"deadline","nameLocation":"3939:8:35","nodeType":"VariableDeclaration","scope":9293,"src":"3931:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9213,"name":"uint256","nodeType":"ElementaryTypeName","src":"3931:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9216,"mutability":"mutable","name":"v","nameLocation":"3963:1:35","nodeType":"VariableDeclaration","scope":9293,"src":"3957:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9215,"name":"uint8","nodeType":"ElementaryTypeName","src":"3957:5:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9218,"mutability":"mutable","name":"r","nameLocation":"3982:1:35","nodeType":"VariableDeclaration","scope":9293,"src":"3974:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3974:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9220,"mutability":"mutable","name":"s","nameLocation":"4001:1:35","nodeType":"VariableDeclaration","scope":9293,"src":"3993:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3993:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3850:158:35"},"returnParameters":{"id":9222,"nodeType":"ParameterList","parameters":[],"src":"4024:0:35"},"scope":9395,"src":"3835:1483:35","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9307,"nodeType":"Block","src":"5390:111:35","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9298,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5407:5:35","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"5407:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9300,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9046,"src":"5424:16:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5407:33:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9303,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9338,"src":"5470:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":9304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5470:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5407:87:35","trueExpression":{"id":9302,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9048,"src":"5443:24:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9297,"id":9306,"nodeType":"Return","src":"5400:94:35"}]},"functionSelector":"3644e515","id":9308,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"5333:16:35","nodeType":"FunctionDefinition","parameters":{"id":9294,"nodeType":"ParameterList","parameters":[],"src":"5349:2:35"},"returnParameters":{"id":9297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9308,"src":"5381:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5381:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5380:9:35"},"scope":9395,"src":"5324:177:35","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9337,"nodeType":"Block","src":"5581:372:35","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":9317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5679:84:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":9316,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5669:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5669:95:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":9322,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9028,"src":"5802:4:35","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":9321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5796:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9320,"name":"bytes","nodeType":"ElementaryTypeName","src":"5796:5:35","typeDescriptions":{}}},"id":9323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5796:11:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":9319,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5786:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5786:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"31","id":9326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5840:3:35","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":9325,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5830:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5830:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":9328,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5866:5:35","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"5866:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":9332,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5909:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}],"id":9331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5901:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9330,"name":"address","nodeType":"ElementaryTypeName","src":"5901:7:35","typeDescriptions":{}}},"id":9333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5901:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9314,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5637:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5637:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5637:295:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9313,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5610:9:35","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5610:336:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9312,"id":9336,"nodeType":"Return","src":"5591:355:35"}]},"id":9338,"implemented":true,"kind":"function","modifiers":[],"name":"computeDomainSeparator","nameLocation":"5516:22:35","nodeType":"FunctionDefinition","parameters":{"id":9309,"nodeType":"ParameterList","parameters":[],"src":"5538:2:35"},"returnParameters":{"id":9312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9338,"src":"5572:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5572:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5571:9:35"},"scope":9395,"src":"5507:446:35","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9365,"nodeType":"Block","src":"6207:265:35","statements":[{"expression":{"id":9347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9345,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9034,"src":"6217:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9346,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"6232:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6217:21:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9348,"nodeType":"ExpressionStatement","src":"6217:21:35"},{"id":9355,"nodeType":"UncheckedBlock","src":"6360:58:35","statements":[{"expression":{"id":9353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9349,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"6384:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9351,"indexExpression":{"id":9350,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9340,"src":"6394:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6384:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9352,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"6401:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6384:23:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9354,"nodeType":"ExpressionStatement","src":"6384:23:35"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":9359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6450:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6442:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9357,"name":"address","nodeType":"ElementaryTypeName","src":"6442:7:35","typeDescriptions":{}}},"id":9360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6442:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9361,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9340,"src":"6454:2:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9362,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"6458:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9356,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9018,"src":"6433:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6433:32:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9364,"nodeType":"EmitStatement","src":"6428:37:35"}]},"id":9366,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6156:5:35","nodeType":"FunctionDefinition","parameters":{"id":9343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9340,"mutability":"mutable","name":"to","nameLocation":"6170:2:35","nodeType":"VariableDeclaration","scope":9366,"src":"6162:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9339,"name":"address","nodeType":"ElementaryTypeName","src":"6162:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9342,"mutability":"mutable","name":"amount","nameLocation":"6182:6:35","nodeType":"VariableDeclaration","scope":9366,"src":"6174:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9341,"name":"uint256","nodeType":"ElementaryTypeName","src":"6174:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6161:28:35"},"returnParameters":{"id":9344,"nodeType":"ParameterList","parameters":[],"src":"6207:0:35"},"scope":9395,"src":"6147:325:35","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9393,"nodeType":"Block","src":"6540:266:35","statements":[{"expression":{"id":9377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9373,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9038,"src":"6550:9:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9375,"indexExpression":{"id":9374,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9368,"src":"6560:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6550:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":9376,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9370,"src":"6569:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6550:25:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9378,"nodeType":"ExpressionStatement","src":"6550:25:35"},{"id":9383,"nodeType":"UncheckedBlock","src":"6694:56:35","statements":[{"expression":{"id":9381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9379,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9034,"src":"6718:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":9380,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9370,"src":"6733:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6718:21:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9382,"nodeType":"ExpressionStatement","src":"6718:21:35"}]},{"eventCall":{"arguments":[{"id":9385,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9368,"src":"6774:4:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6788:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6780:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9386,"name":"address","nodeType":"ElementaryTypeName","src":"6780:7:35","typeDescriptions":{}}},"id":9389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6780:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9390,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9370,"src":"6792:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9384,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9018,"src":"6765:8:35","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6765:34:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9392,"nodeType":"EmitStatement","src":"6760:39:35"}]},"id":9394,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6487:5:35","nodeType":"FunctionDefinition","parameters":{"id":9371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9368,"mutability":"mutable","name":"from","nameLocation":"6501:4:35","nodeType":"VariableDeclaration","scope":9394,"src":"6493:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9367,"name":"address","nodeType":"ElementaryTypeName","src":"6493:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9370,"mutability":"mutable","name":"amount","nameLocation":"6515:6:35","nodeType":"VariableDeclaration","scope":9394,"src":"6507:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9369,"name":"uint256","nodeType":"ElementaryTypeName","src":"6507:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6492:30:35"},"returnParameters":{"id":9372,"nodeType":"ParameterList","parameters":[],"src":"6540:0:35"},"scope":9395,"src":"6478:328:35","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":9396,"src":"471:6337:35","usedErrors":[]}],"src":"42:6767:35"},"id":35},"@rari-capital/solmate/src/utils/SafeTransferLib.sol":{"ast":{"absolutePath":"@rari-capital/solmate/src/utils/SafeTransferLib.sol","exportedSymbols":{"ERC20":[9395],"SafeTransferLib":[9480]},"id":9481,"license":"AGPL-3.0-only","nodeType":"SourceUnit","nodes":[{"id":9397,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"42:24:36"},{"absolutePath":"@rari-capital/solmate/src/tokens/ERC20.sol","file":"../tokens/ERC20.sol","id":9399,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9481,"sourceUnit":9396,"src":"68:42:36","symbolAliases":[{"foreign":{"id":9398,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"76:5:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeTransferLib","contractDependencies":[],"contractKind":"library","documentation":{"id":9400,"nodeType":"StructuredDocumentation","src":"112:471:36","text":"@notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)\n @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.\n @dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller."},"fullyImplemented":true,"id":9480,"linearizedBaseContracts":[9480],"name":"SafeTransferLib","nameLocation":"591:15:36","nodeType":"ContractDefinition","nodes":[{"body":{"id":9416,"nodeType":"Block","src":"858:234:36","statements":[{"assignments":[9408],"declarations":[{"constant":false,"id":9408,"mutability":"mutable","name":"success","nameLocation":"873:7:36","nodeType":"VariableDeclaration","scope":9416,"src":"868:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9407,"name":"bool","nodeType":"ElementaryTypeName","src":"868:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":9409,"nodeType":"VariableDeclarationStatement","src":"868:12:36"},{"AST":{"nodeType":"YulBlock","src":"900:136:36","statements":[{"nodeType":"YulAssignment","src":"980:46:36","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"996:3:36"},"nodeType":"YulFunctionCall","src":"996:5:36"},{"name":"to","nodeType":"YulIdentifier","src":"1003:2:36"},{"name":"amount","nodeType":"YulIdentifier","src":"1007:6:36"},{"kind":"number","nodeType":"YulLiteral","src":"1015:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1018:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1021:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1024:1:36","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"991:4:36"},"nodeType":"YulFunctionCall","src":"991:35:36"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"980:7:36"}]}]},"evmVersion":"london","externalReferences":[{"declaration":9404,"isOffset":false,"isSlot":false,"src":"1007:6:36","valueSize":1},{"declaration":9408,"isOffset":false,"isSlot":false,"src":"980:7:36","valueSize":1},{"declaration":9402,"isOffset":false,"isSlot":false,"src":"1003:2:36","valueSize":1}],"id":9410,"nodeType":"InlineAssembly","src":"891:145:36"},{"expression":{"arguments":[{"id":9412,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9408,"src":"1054:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4554485f5452414e534645525f4641494c4544","id":9413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1063:21:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_d383913ea1996930a2623a0d739b8fc033c734c1d71d4759d3ccba1d3a719c29","typeString":"literal_string \"ETH_TRANSFER_FAILED\""},"value":"ETH_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d383913ea1996930a2623a0d739b8fc033c734c1d71d4759d3ccba1d3a719c29","typeString":"literal_string \"ETH_TRANSFER_FAILED\""}],"id":9411,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1046:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1046:39:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9415,"nodeType":"ExpressionStatement","src":"1046:39:36"}]},"id":9417,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferETH","nameLocation":"805:15:36","nodeType":"FunctionDefinition","parameters":{"id":9405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9402,"mutability":"mutable","name":"to","nameLocation":"829:2:36","nodeType":"VariableDeclaration","scope":9417,"src":"821:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9401,"name":"address","nodeType":"ElementaryTypeName","src":"821:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9404,"mutability":"mutable","name":"amount","nameLocation":"841:6:36","nodeType":"VariableDeclaration","scope":9417,"src":"833:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9403,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"820:28:36"},"returnParameters":{"id":9406,"nodeType":"ParameterList","parameters":[],"src":"858:0:36"},"scope":9480,"src":"796:296:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9438,"nodeType":"Block","src":"1410:1445:36","statements":[{"assignments":[9430],"declarations":[{"constant":false,"id":9430,"mutability":"mutable","name":"success","nameLocation":"1425:7:36","nodeType":"VariableDeclaration","scope":9438,"src":"1420:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9429,"name":"bool","nodeType":"ElementaryTypeName","src":"1420:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":9431,"nodeType":"VariableDeclarationStatement","src":"1420:12:36"},{"AST":{"nodeType":"YulBlock","src":"1452:1346:36","statements":[{"nodeType":"YulVariableDeclaration","src":"1516:36:36","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1547:4:36","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1541:5:36"},"nodeType":"YulFunctionCall","src":"1541:11:36"},"variables":[{"name":"freeMemoryPointer","nodeType":"YulTypedName","src":"1520:17:36","type":""}]},{"expression":{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"1670:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"1689:66:36","type":"","value":"0x23b872dd00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1663:6:36"},"nodeType":"YulFunctionCall","src":"1663:93:36"},"nodeType":"YulExpressionStatement","src":"1663:93:36"},{"expression":{"arguments":[{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"1780:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"1799:1:36","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1776:3:36"},"nodeType":"YulFunctionCall","src":"1776:25:36"},{"name":"from","nodeType":"YulIdentifier","src":"1803:4:36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1769:6:36"},"nodeType":"YulFunctionCall","src":"1769:39:36"},"nodeType":"YulExpressionStatement","src":"1769:39:36"},{"expression":{"arguments":[{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"1863:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"1882:2:36","type":"","value":"36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1859:3:36"},"nodeType":"YulFunctionCall","src":"1859:26:36"},{"name":"to","nodeType":"YulIdentifier","src":"1887:2:36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1852:6:36"},"nodeType":"YulFunctionCall","src":"1852:38:36"},"nodeType":"YulExpressionStatement","src":"1852:38:36"},{"expression":{"arguments":[{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"1943:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"1962:2:36","type":"","value":"68"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1939:3:36"},"nodeType":"YulFunctionCall","src":"1939:26:36"},{"name":"amount","nodeType":"YulIdentifier","src":"1967:6:36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1932:6:36"},"nodeType":"YulFunctionCall","src":"1932:42:36"},"nodeType":"YulExpressionStatement","src":"1932:42:36"},{"nodeType":"YulAssignment","src":"2021:767:36","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2248:1:36","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2242:5:36"},"nodeType":"YulFunctionCall","src":"2242:8:36"},{"kind":"number","nodeType":"YulLiteral","src":"2252:1:36","type":"","value":"1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2239:2:36"},"nodeType":"YulFunctionCall","src":"2239:15:36"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2259:14:36"},"nodeType":"YulFunctionCall","src":"2259:16:36"},{"kind":"number","nodeType":"YulLiteral","src":"2277:2:36","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2256:2:36"},"nodeType":"YulFunctionCall","src":"2256:24:36"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2235:3:36"},"nodeType":"YulFunctionCall","src":"2235:46:36"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2290:14:36"},"nodeType":"YulFunctionCall","src":"2290:16:36"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2283:6:36"},"nodeType":"YulFunctionCall","src":"2283:24:36"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2232:2:36"},"nodeType":"YulFunctionCall","src":"2232:76:36"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2727:3:36"},"nodeType":"YulFunctionCall","src":"2727:5:36"},{"name":"token","nodeType":"YulIdentifier","src":"2734:5:36"},{"kind":"number","nodeType":"YulLiteral","src":"2741:1:36","type":"","value":"0"},{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"2744:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"2763:3:36","type":"","value":"100"},{"kind":"number","nodeType":"YulLiteral","src":"2768:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2771:2:36","type":"","value":"32"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"2722:4:36"},"nodeType":"YulFunctionCall","src":"2722:52:36"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2032:3:36"},"nodeType":"YulFunctionCall","src":"2032:756:36"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"2021:7:36"}]}]},"evmVersion":"london","externalReferences":[{"declaration":9426,"isOffset":false,"isSlot":false,"src":"1967:6:36","valueSize":1},{"declaration":9422,"isOffset":false,"isSlot":false,"src":"1803:4:36","valueSize":1},{"declaration":9430,"isOffset":false,"isSlot":false,"src":"2021:7:36","valueSize":1},{"declaration":9424,"isOffset":false,"isSlot":false,"src":"1887:2:36","valueSize":1},{"declaration":9420,"isOffset":false,"isSlot":false,"src":"2734:5:36","valueSize":1}],"id":9432,"nodeType":"InlineAssembly","src":"1443:1355:36"},{"expression":{"arguments":[{"id":9434,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"2816:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5452414e534645525f46524f4d5f4641494c4544","id":9435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2825:22:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_77631768048ee92f9dcf4b9b9d762877d6b9723214862c733f0596708fc219b7","typeString":"literal_string \"TRANSFER_FROM_FAILED\""},"value":"TRANSFER_FROM_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77631768048ee92f9dcf4b9b9d762877d6b9723214862c733f0596708fc219b7","typeString":"literal_string \"TRANSFER_FROM_FAILED\""}],"id":9433,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2808:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2808:40:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9437,"nodeType":"ExpressionStatement","src":"2808:40:36"}]},"id":9439,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1291:16:36","nodeType":"FunctionDefinition","parameters":{"id":9427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9420,"mutability":"mutable","name":"token","nameLocation":"1323:5:36","nodeType":"VariableDeclaration","scope":9439,"src":"1317:11:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"},"typeName":{"id":9419,"nodeType":"UserDefinedTypeName","pathNode":{"id":9418,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"1317:5:36"},"referencedDeclaration":9395,"src":"1317:5:36","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":9422,"mutability":"mutable","name":"from","nameLocation":"1346:4:36","nodeType":"VariableDeclaration","scope":9439,"src":"1338:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9421,"name":"address","nodeType":"ElementaryTypeName","src":"1338:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9424,"mutability":"mutable","name":"to","nameLocation":"1368:2:36","nodeType":"VariableDeclaration","scope":9439,"src":"1360:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9423,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9426,"mutability":"mutable","name":"amount","nameLocation":"1388:6:36","nodeType":"VariableDeclaration","scope":9439,"src":"1380:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9425,"name":"uint256","nodeType":"ElementaryTypeName","src":"1380:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1307:93:36"},"returnParameters":{"id":9428,"nodeType":"ParameterList","parameters":[],"src":"1410:0:36"},"scope":9480,"src":"1282:1573:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9458,"nodeType":"Block","src":"2963:1354:36","statements":[{"assignments":[9450],"declarations":[{"constant":false,"id":9450,"mutability":"mutable","name":"success","nameLocation":"2978:7:36","nodeType":"VariableDeclaration","scope":9458,"src":"2973:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9449,"name":"bool","nodeType":"ElementaryTypeName","src":"2973:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":9451,"nodeType":"VariableDeclarationStatement","src":"2973:12:36"},{"AST":{"nodeType":"YulBlock","src":"3005:1260:36","statements":[{"nodeType":"YulVariableDeclaration","src":"3069:36:36","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3100:4:36","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3094:5:36"},"nodeType":"YulFunctionCall","src":"3094:11:36"},"variables":[{"name":"freeMemoryPointer","nodeType":"YulTypedName","src":"3073:17:36","type":""}]},{"expression":{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"3223:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"3242:66:36","type":"","value":"0xa9059cbb00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3216:6:36"},"nodeType":"YulFunctionCall","src":"3216:93:36"},"nodeType":"YulExpressionStatement","src":"3216:93:36"},{"expression":{"arguments":[{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"3333:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"3352:1:36","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3329:3:36"},"nodeType":"YulFunctionCall","src":"3329:25:36"},{"name":"to","nodeType":"YulIdentifier","src":"3356:2:36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3322:6:36"},"nodeType":"YulFunctionCall","src":"3322:37:36"},"nodeType":"YulExpressionStatement","src":"3322:37:36"},{"expression":{"arguments":[{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"3412:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:36","type":"","value":"36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3408:3:36"},"nodeType":"YulFunctionCall","src":"3408:26:36"},{"name":"amount","nodeType":"YulIdentifier","src":"3436:6:36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3401:6:36"},"nodeType":"YulFunctionCall","src":"3401:42:36"},"nodeType":"YulExpressionStatement","src":"3401:42:36"},{"nodeType":"YulAssignment","src":"3490:765:36","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3717:1:36","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3711:5:36"},"nodeType":"YulFunctionCall","src":"3711:8:36"},{"kind":"number","nodeType":"YulLiteral","src":"3721:1:36","type":"","value":"1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3708:2:36"},"nodeType":"YulFunctionCall","src":"3708:15:36"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3728:14:36"},"nodeType":"YulFunctionCall","src":"3728:16:36"},{"kind":"number","nodeType":"YulLiteral","src":"3746:2:36","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3725:2:36"},"nodeType":"YulFunctionCall","src":"3725:24:36"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3704:3:36"},"nodeType":"YulFunctionCall","src":"3704:46:36"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3759:14:36"},"nodeType":"YulFunctionCall","src":"3759:16:36"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3752:6:36"},"nodeType":"YulFunctionCall","src":"3752:24:36"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3701:2:36"},"nodeType":"YulFunctionCall","src":"3701:76:36"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"4195:3:36"},"nodeType":"YulFunctionCall","src":"4195:5:36"},{"name":"token","nodeType":"YulIdentifier","src":"4202:5:36"},{"kind":"number","nodeType":"YulLiteral","src":"4209:1:36","type":"","value":"0"},{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"4212:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"4231:2:36","type":"","value":"68"},{"kind":"number","nodeType":"YulLiteral","src":"4235:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4238:2:36","type":"","value":"32"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"4190:4:36"},"nodeType":"YulFunctionCall","src":"4190:51:36"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3501:3:36"},"nodeType":"YulFunctionCall","src":"3501:754:36"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"3490:7:36"}]}]},"evmVersion":"london","externalReferences":[{"declaration":9446,"isOffset":false,"isSlot":false,"src":"3436:6:36","valueSize":1},{"declaration":9450,"isOffset":false,"isSlot":false,"src":"3490:7:36","valueSize":1},{"declaration":9444,"isOffset":false,"isSlot":false,"src":"3356:2:36","valueSize":1},{"declaration":9442,"isOffset":false,"isSlot":false,"src":"4202:5:36","valueSize":1}],"id":9452,"nodeType":"InlineAssembly","src":"2996:1269:36"},{"expression":{"arguments":[{"id":9454,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9450,"src":"4283:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5452414e534645525f4641494c4544","id":9455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4292:17:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72","typeString":"literal_string \"TRANSFER_FAILED\""},"value":"TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72","typeString":"literal_string \"TRANSFER_FAILED\""}],"id":9453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4275:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4275:35:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9457,"nodeType":"ExpressionStatement","src":"4275:35:36"}]},"id":9459,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"2870:12:36","nodeType":"FunctionDefinition","parameters":{"id":9447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9442,"mutability":"mutable","name":"token","nameLocation":"2898:5:36","nodeType":"VariableDeclaration","scope":9459,"src":"2892:11:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"},"typeName":{"id":9441,"nodeType":"UserDefinedTypeName","pathNode":{"id":9440,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"2892:5:36"},"referencedDeclaration":9395,"src":"2892:5:36","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":9444,"mutability":"mutable","name":"to","nameLocation":"2921:2:36","nodeType":"VariableDeclaration","scope":9459,"src":"2913:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9443,"name":"address","nodeType":"ElementaryTypeName","src":"2913:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9446,"mutability":"mutable","name":"amount","nameLocation":"2941:6:36","nodeType":"VariableDeclaration","scope":9459,"src":"2933:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9445,"name":"uint256","nodeType":"ElementaryTypeName","src":"2933:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2882:71:36"},"returnParameters":{"id":9448,"nodeType":"ParameterList","parameters":[],"src":"2963:0:36"},"scope":9480,"src":"2861:1456:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9478,"nodeType":"Block","src":"4424:1353:36","statements":[{"assignments":[9470],"declarations":[{"constant":false,"id":9470,"mutability":"mutable","name":"success","nameLocation":"4439:7:36","nodeType":"VariableDeclaration","scope":9478,"src":"4434:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9469,"name":"bool","nodeType":"ElementaryTypeName","src":"4434:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":9471,"nodeType":"VariableDeclarationStatement","src":"4434:12:36"},{"AST":{"nodeType":"YulBlock","src":"4466:1260:36","statements":[{"nodeType":"YulVariableDeclaration","src":"4530:36:36","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4561:4:36","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4555:5:36"},"nodeType":"YulFunctionCall","src":"4555:11:36"},"variables":[{"name":"freeMemoryPointer","nodeType":"YulTypedName","src":"4534:17:36","type":""}]},{"expression":{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"4684:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"4703:66:36","type":"","value":"0x095ea7b300000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:36"},"nodeType":"YulFunctionCall","src":"4677:93:36"},"nodeType":"YulExpressionStatement","src":"4677:93:36"},{"expression":{"arguments":[{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"4794:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"4813:1:36","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4790:3:36"},"nodeType":"YulFunctionCall","src":"4790:25:36"},{"name":"to","nodeType":"YulIdentifier","src":"4817:2:36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4783:6:36"},"nodeType":"YulFunctionCall","src":"4783:37:36"},"nodeType":"YulExpressionStatement","src":"4783:37:36"},{"expression":{"arguments":[{"arguments":[{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"4873:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"4892:2:36","type":"","value":"36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4869:3:36"},"nodeType":"YulFunctionCall","src":"4869:26:36"},{"name":"amount","nodeType":"YulIdentifier","src":"4897:6:36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4862:6:36"},"nodeType":"YulFunctionCall","src":"4862:42:36"},"nodeType":"YulExpressionStatement","src":"4862:42:36"},{"nodeType":"YulAssignment","src":"4951:765:36","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5178:1:36","type":"","value":"0"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5172:5:36"},"nodeType":"YulFunctionCall","src":"5172:8:36"},{"kind":"number","nodeType":"YulLiteral","src":"5182:1:36","type":"","value":"1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5169:2:36"},"nodeType":"YulFunctionCall","src":"5169:15:36"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5189:14:36"},"nodeType":"YulFunctionCall","src":"5189:16:36"},{"kind":"number","nodeType":"YulLiteral","src":"5207:2:36","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5186:2:36"},"nodeType":"YulFunctionCall","src":"5186:24:36"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5165:3:36"},"nodeType":"YulFunctionCall","src":"5165:46:36"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5220:14:36"},"nodeType":"YulFunctionCall","src":"5220:16:36"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5213:6:36"},"nodeType":"YulFunctionCall","src":"5213:24:36"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5162:2:36"},"nodeType":"YulFunctionCall","src":"5162:76:36"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5656:3:36"},"nodeType":"YulFunctionCall","src":"5656:5:36"},{"name":"token","nodeType":"YulIdentifier","src":"5663:5:36"},{"kind":"number","nodeType":"YulLiteral","src":"5670:1:36","type":"","value":"0"},{"name":"freeMemoryPointer","nodeType":"YulIdentifier","src":"5673:17:36"},{"kind":"number","nodeType":"YulLiteral","src":"5692:2:36","type":"","value":"68"},{"kind":"number","nodeType":"YulLiteral","src":"5696:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5699:2:36","type":"","value":"32"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"5651:4:36"},"nodeType":"YulFunctionCall","src":"5651:51:36"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4962:3:36"},"nodeType":"YulFunctionCall","src":"4962:754:36"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4951:7:36"}]}]},"evmVersion":"london","externalReferences":[{"declaration":9466,"isOffset":false,"isSlot":false,"src":"4897:6:36","valueSize":1},{"declaration":9470,"isOffset":false,"isSlot":false,"src":"4951:7:36","valueSize":1},{"declaration":9464,"isOffset":false,"isSlot":false,"src":"4817:2:36","valueSize":1},{"declaration":9462,"isOffset":false,"isSlot":false,"src":"5663:5:36","valueSize":1}],"id":9472,"nodeType":"InlineAssembly","src":"4457:1269:36"},{"expression":{"arguments":[{"id":9474,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9470,"src":"5744:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"415050524f56455f4641494c4544","id":9475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5753:16:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd400c5237ae346977ee020ef8d0d26a880c07edf7eba69a8848f0d31e9a88f2","typeString":"literal_string \"APPROVE_FAILED\""},"value":"APPROVE_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd400c5237ae346977ee020ef8d0d26a880c07edf7eba69a8848f0d31e9a88f2","typeString":"literal_string \"APPROVE_FAILED\""}],"id":9473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5736:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5736:34:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9477,"nodeType":"ExpressionStatement","src":"5736:34:36"}]},"id":9479,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"4332:11:36","nodeType":"FunctionDefinition","parameters":{"id":9467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9462,"mutability":"mutable","name":"token","nameLocation":"4359:5:36","nodeType":"VariableDeclaration","scope":9479,"src":"4353:11:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"},"typeName":{"id":9461,"nodeType":"UserDefinedTypeName","pathNode":{"id":9460,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"4353:5:36"},"referencedDeclaration":9395,"src":"4353:5:36","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":9464,"mutability":"mutable","name":"to","nameLocation":"4382:2:36","nodeType":"VariableDeclaration","scope":9479,"src":"4374:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9463,"name":"address","nodeType":"ElementaryTypeName","src":"4374:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9466,"mutability":"mutable","name":"amount","nameLocation":"4402:6:36","nodeType":"VariableDeclaration","scope":9479,"src":"4394:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9465,"name":"uint256","nodeType":"ElementaryTypeName","src":"4394:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4343:71:36"},"returnParameters":{"id":9468,"nodeType":"ParameterList","parameters":[],"src":"4424:0:36"},"scope":9480,"src":"4323:1454:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":9481,"src":"583:5196:36","usedErrors":[]}],"src":"42:5738:36"},"id":36},"contracts/governance/GovernorPango.sol":{"ast":{"absolutePath":"contracts/governance/GovernorPango.sol","exportedSymbols":{"GovernorPango":[10609],"IPangolinStakingPositions":[10650],"ITimelock":[10726]},"id":10610,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9482,"literals":["solidity","=","0.8",".15"],"nodeType":"PragmaDirective","src":"0:24:37"},{"absolutePath":"contracts/governance/interfaces/IPangolinStakingPositions.sol","file":"./interfaces/IPangolinStakingPositions.sol","id":9483,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10610,"sourceUnit":10651,"src":"28:52:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/governance/interfaces/ITimelock.sol","file":"./interfaces/ITimelock.sol","id":9484,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10610,"sourceUnit":10727,"src":"82:36:37","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"GovernorPango","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10609,"linearizedBaseContracts":[10609],"name":"GovernorPango","nameLocation":"965:13:37","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":9485,"nodeType":"StructuredDocumentation","src":"986:152:37","text":"@notice The delay before voting on a proposal may take place, once proposed\n @dev Can be changed via vote within the range: [1 days, 7 days]"},"functionSelector":"d6159fe5","id":9488,"mutability":"mutable","name":"VOTING_DELAY","nameLocation":"1158:12:37","nodeType":"VariableDeclaration","scope":10609,"src":"1144:35:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9486,"name":"uint40","nodeType":"ElementaryTypeName","src":"1144:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"value":{"hexValue":"31","id":9487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1173:6:37","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"visibility":"public"},{"constant":false,"documentation":{"id":9489,"nodeType":"StructuredDocumentation","src":"1188:134:37","text":"@notice The duration of voting on a proposal, in seconds\n @dev Can be changed via vote within the range: [3 days, 30 days]"},"functionSelector":"b1610d7e","id":9492,"mutability":"mutable","name":"VOTING_PERIOD","nameLocation":"1342:13:37","nodeType":"VariableDeclaration","scope":10609,"src":"1328:36:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9490,"name":"uint40","nodeType":"ElementaryTypeName","src":"1328:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"value":{"hexValue":"33","id":9491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:6:37","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_259200_by_1","typeString":"int_const 259200"},"value":"3"},"visibility":"public"},{"constant":false,"documentation":{"id":9493,"nodeType":"StructuredDocumentation","src":"1373:187:37","text":"@notice The number of votes required in order for a voter to become a proposer\n @dev Can be changed via vote within the range: [PROPOSAL_THRESHOLD_MIN, PROPOSAL_THRESHOLD_MAX]"},"functionSelector":"a6c26603","id":9495,"mutability":"mutable","name":"PROPOSAL_THRESHOLD","nameLocation":"1580:18:37","nodeType":"VariableDeclaration","scope":10609,"src":"1566:32:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9494,"name":"uint96","nodeType":"ElementaryTypeName","src":"1566:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"public"},{"constant":false,"functionSelector":"5ad77de6","id":9497,"mutability":"immutable","name":"PROPOSAL_THRESHOLD_MIN","nameLocation":"1629:22:37","nodeType":"VariableDeclaration","scope":10609,"src":"1605:46:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9496,"name":"uint96","nodeType":"ElementaryTypeName","src":"1605:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"public"},{"constant":false,"functionSelector":"176ed5ad","id":9499,"mutability":"immutable","name":"PROPOSAL_THRESHOLD_MAX","nameLocation":"1682:22:37","nodeType":"VariableDeclaration","scope":10609,"src":"1658:46:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9498,"name":"uint96","nodeType":"ElementaryTypeName","src":"1658:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"public"},{"constant":false,"documentation":{"id":9500,"nodeType":"StructuredDocumentation","src":"1713:40:37","text":"@notice Associated Timelock contract"},"functionSelector":"7aadef8b","id":9503,"mutability":"immutable","name":"TIMELOCK","nameLocation":"1786:8:37","nodeType":"VariableDeclaration","scope":10609,"src":"1759:35:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"},"typeName":{"id":9502,"nodeType":"UserDefinedTypeName","pathNode":{"id":9501,"name":"ITimelock","nodeType":"IdentifierPath","referencedDeclaration":10726,"src":"1759:9:37"},"referencedDeclaration":10726,"src":"1759:9:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"visibility":"public"},{"constant":false,"documentation":{"id":9504,"nodeType":"StructuredDocumentation","src":"1803:56:37","text":"@notice Associated PangolinStakingPositions contract"},"functionSelector":"0f1622af","id":9507,"mutability":"immutable","name":"PANGOLIN_STAKING_POSITIONS","nameLocation":"1908:26:37","nodeType":"VariableDeclaration","scope":10609,"src":"1865:69:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10650","typeString":"contract IPangolinStakingPositions"},"typeName":{"id":9506,"nodeType":"UserDefinedTypeName","pathNode":{"id":9505,"name":"IPangolinStakingPositions","nodeType":"IdentifierPath","referencedDeclaration":10650,"src":"1865:25:37"},"referencedDeclaration":10650,"src":"1865:25:37","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10650","typeString":"contract IPangolinStakingPositions"}},"visibility":"public"},{"constant":false,"documentation":{"id":9508,"nodeType":"StructuredDocumentation","src":"1943:41:37","text":"@notice The total number of proposals"},"functionSelector":"da35c664","id":9510,"mutability":"mutable","name":"proposalCount","nameLocation":"2005:13:37","nodeType":"VariableDeclaration","scope":10609,"src":"1990:28:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1990:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":9511,"nodeType":"StructuredDocumentation","src":"2027:77:37","text":"@notice The record of all proposals\n ProposalId => ProposalStruct"},"functionSelector":"31c5eec8","id":9516,"mutability":"mutable","name":"proposals","nameLocation":"2145:9:37","nodeType":"VariableDeclaration","scope":10609,"src":"2110:44:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal)"},"typeName":{"id":9515,"keyType":{"id":9512,"name":"uint64","nodeType":"ElementaryTypeName","src":"2118:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"2110:27:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal)"},"valueType":{"id":9514,"nodeType":"UserDefinedTypeName","pathNode":{"id":9513,"name":"Proposal","nodeType":"IdentifierPath","referencedDeclaration":9569,"src":"2128:8:37"},"referencedDeclaration":9569,"src":"2128:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"}}},"visibility":"public"},{"constant":false,"documentation":{"id":9517,"nodeType":"StructuredDocumentation","src":"2163:90:37","text":"@notice The record of all proposal actions\n ProposalId => ProposalActionStruct"},"id":9522,"mutability":"mutable","name":"proposalActions","nameLocation":"2301:15:37","nodeType":"VariableDeclaration","scope":10609,"src":"2259:57:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_ProposalAction_$9586_storage_$","typeString":"mapping(uint64 => struct GovernorPango.ProposalAction)"},"typeName":{"id":9521,"keyType":{"id":9518,"name":"uint64","nodeType":"ElementaryTypeName","src":"2267:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"2259:33:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_ProposalAction_$9586_storage_$","typeString":"mapping(uint64 => struct GovernorPango.ProposalAction)"},"valueType":{"id":9520,"nodeType":"UserDefinedTypeName","pathNode":{"id":9519,"name":"ProposalAction","nodeType":"IdentifierPath","referencedDeclaration":9586,"src":"2277:14:37"},"referencedDeclaration":9586,"src":"2277:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction"}}},"visibility":"private"},{"constant":false,"documentation":{"id":9523,"nodeType":"StructuredDocumentation","src":"2325:116:37","text":"@notice The record of all receipts for a given proposal id\n @notice ProposalId => NftId => ReceiptStruct"},"functionSelector":"d3904682","id":9530,"mutability":"mutable","name":"receipts","nameLocation":"2501:8:37","nodeType":"VariableDeclaration","scope":10609,"src":"2447:62:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_uint256_$_t_struct$_Receipt_$9596_storage_$_$","typeString":"mapping(uint64 => mapping(uint256 => struct GovernorPango.Receipt))"},"typeName":{"id":9529,"keyType":{"id":9524,"name":"uint64","nodeType":"ElementaryTypeName","src":"2455:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"2447:46:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_uint256_$_t_struct$_Receipt_$9596_storage_$_$","typeString":"mapping(uint64 => mapping(uint256 => struct GovernorPango.Receipt))"},"valueType":{"id":9528,"keyType":{"id":9525,"name":"uint256","nodeType":"ElementaryTypeName","src":"2473:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2465:27:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Receipt_$9596_storage_$","typeString":"mapping(uint256 => struct GovernorPango.Receipt)"},"valueType":{"id":9527,"nodeType":"UserDefinedTypeName","pathNode":{"id":9526,"name":"Receipt","nodeType":"IdentifierPath","referencedDeclaration":9596,"src":"2484:7:37"},"referencedDeclaration":9596,"src":"2484:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage_ptr","typeString":"struct GovernorPango.Receipt"}}}},"visibility":"public"},{"constant":false,"documentation":{"id":9531,"nodeType":"StructuredDocumentation","src":"2518:194:37","text":"@notice Timestamp when a NFT can be used to propose again\n @dev State growth rate is limited by PROPOSAL_THRESHOLD and the lifecycle time of a proposal.\n NftId => TimeoutTime"},"functionSelector":"6ffa2a81","id":9535,"mutability":"mutable","name":"proposalTimeout","nameLocation":"2752:15:37","nodeType":"VariableDeclaration","scope":10609,"src":"2718:49:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint40_$","typeString":"mapping(uint256 => uint40)"},"typeName":{"id":9534,"keyType":{"id":9532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2726:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2718:26:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint40_$","typeString":"mapping(uint256 => uint40)"},"valueType":{"id":9533,"name":"uint40","nodeType":"ElementaryTypeName","src":"2737:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}},"visibility":"public"},{"canonicalName":"GovernorPango.ProposalState","id":9544,"members":[{"id":9536,"name":"Pending","nameLocation":"2865:7:37","nodeType":"EnumValue","src":"2865:7:37"},{"id":9537,"name":"Active","nameLocation":"2883:6:37","nodeType":"EnumValue","src":"2883:6:37"},{"id":9538,"name":"Canceled","nameLocation":"2900:8:37","nodeType":"EnumValue","src":"2900:8:37"},{"id":9539,"name":"Defeated","nameLocation":"2919:8:37","nodeType":"EnumValue","src":"2919:8:37"},{"id":9540,"name":"Succeeded","nameLocation":"2938:9:37","nodeType":"EnumValue","src":"2938:9:37"},{"id":9541,"name":"Queued","nameLocation":"2958:6:37","nodeType":"EnumValue","src":"2958:6:37"},{"id":9542,"name":"Expired","nameLocation":"2975:7:37","nodeType":"EnumValue","src":"2975:7:37"},{"id":9543,"name":"Executed","nameLocation":"2993:8:37","nodeType":"EnumValue","src":"2993:8:37"}],"name":"ProposalState","nameLocation":"2840:13:37","nodeType":"EnumDefinition","src":"2835:173:37"},{"canonicalName":"GovernorPango.Proposal","id":9569,"members":[{"constant":false,"id":9547,"mutability":"mutable","name":"proposer","nameLocation":"3131:8:37","nodeType":"VariableDeclaration","scope":9569,"src":"3123:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9546,"name":"uint256","nodeType":"ElementaryTypeName","src":"3123:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9550,"mutability":"mutable","name":"forVotes","nameLocation":"3230:8:37","nodeType":"VariableDeclaration","scope":9569,"src":"3223:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9549,"name":"uint96","nodeType":"ElementaryTypeName","src":"3223:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":9553,"mutability":"mutable","name":"againstVotes","nameLocation":"3334:12:37","nodeType":"VariableDeclaration","scope":9569,"src":"3327:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9552,"name":"uint96","nodeType":"ElementaryTypeName","src":"3327:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":9556,"mutability":"mutable","name":"startTime","nameLocation":"3478:9:37","nodeType":"VariableDeclaration","scope":9569,"src":"3471:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9555,"name":"uint40","nodeType":"ElementaryTypeName","src":"3471:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":9559,"mutability":"mutable","name":"endTime","nameLocation":"3602:7:37","nodeType":"VariableDeclaration","scope":9569,"src":"3595:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9558,"name":"uint40","nodeType":"ElementaryTypeName","src":"3595:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":9562,"mutability":"mutable","name":"eta","nameLocation":"3742:3:37","nodeType":"VariableDeclaration","scope":9569,"src":"3735:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9561,"name":"uint40","nodeType":"ElementaryTypeName","src":"3735:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":9565,"mutability":"mutable","name":"executed","nameLocation":"3836:8:37","nodeType":"VariableDeclaration","scope":9569,"src":"3831:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9564,"name":"bool","nodeType":"ElementaryTypeName","src":"3831:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9568,"mutability":"mutable","name":"canceled","nameLocation":"3935:8:37","nodeType":"VariableDeclaration","scope":9569,"src":"3930:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9567,"name":"bool","nodeType":"ElementaryTypeName","src":"3930:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"3023:8:37","nodeType":"StructDefinition","scope":10609,"src":"3016:935:37","visibility":"public"},{"canonicalName":"GovernorPango.ProposalAction","id":9586,"members":[{"constant":false,"id":9573,"mutability":"mutable","name":"targets","nameLocation":"4081:7:37","nodeType":"VariableDeclaration","scope":9586,"src":"4071:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9571,"name":"address","nodeType":"ElementaryTypeName","src":"4071:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9572,"nodeType":"ArrayTypeName","src":"4071:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":9577,"mutability":"mutable","name":"values","nameLocation":"4213:6:37","nodeType":"VariableDeclaration","scope":9586,"src":"4203:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9575,"name":"uint256","nodeType":"ElementaryTypeName","src":"4203:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9576,"nodeType":"ArrayTypeName","src":"4203:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":9581,"mutability":"mutable","name":"signatures","nameLocation":"4315:10:37","nodeType":"VariableDeclaration","scope":9586,"src":"4306:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":9579,"name":"string","nodeType":"ElementaryTypeName","src":"4306:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9580,"nodeType":"ArrayTypeName","src":"4306:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":9585,"mutability":"mutable","name":"calldatas","nameLocation":"4422:9:37","nodeType":"VariableDeclaration","scope":9586,"src":"4414:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9583,"name":"bytes","nodeType":"ElementaryTypeName","src":"4414:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9584,"nodeType":"ArrayTypeName","src":"4414:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"name":"ProposalAction","nameLocation":"3966:14:37","nodeType":"StructDefinition","scope":10609,"src":"3959:480:37","visibility":"public"},{"canonicalName":"GovernorPango.Receipt","id":9596,"members":[{"constant":false,"id":9589,"mutability":"mutable","name":"hasVoted","nameLocation":"4535:8:37","nodeType":"VariableDeclaration","scope":9596,"src":"4530:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9588,"name":"bool","nodeType":"ElementaryTypeName","src":"4530:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9592,"mutability":"mutable","name":"support","nameLocation":"4629:7:37","nodeType":"VariableDeclaration","scope":9596,"src":"4624:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9591,"name":"bool","nodeType":"ElementaryTypeName","src":"4624:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9595,"mutability":"mutable","name":"votes","nameLocation":"4728:5:37","nodeType":"VariableDeclaration","scope":9596,"src":"4721:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9594,"name":"uint96","nodeType":"ElementaryTypeName","src":"4721:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"name":"Receipt","nameLocation":"4454:7:37","nodeType":"StructDefinition","scope":10609,"src":"4447:294:37","visibility":"public"},{"anonymous":false,"eventSelector":"20d9b108f8538dcfcbae90dfbf2df4a0b7df3ec4a7f38db98fea51298228a575","id":9618,"name":"ProposalCreated","nameLocation":"4755:15:37","nodeType":"EventDefinition","parameters":{"id":9617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9598,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4778:10:37","nodeType":"VariableDeclaration","scope":9618,"src":"4771:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9597,"name":"uint64","nodeType":"ElementaryTypeName","src":"4771:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":9601,"indexed":false,"mutability":"mutable","name":"targets","nameLocation":"4800:7:37","nodeType":"VariableDeclaration","scope":9618,"src":"4790:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9599,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9600,"nodeType":"ArrayTypeName","src":"4790:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":9604,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"4819:6:37","nodeType":"VariableDeclaration","scope":9618,"src":"4809:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9602,"name":"uint256","nodeType":"ElementaryTypeName","src":"4809:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9603,"nodeType":"ArrayTypeName","src":"4809:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":9607,"indexed":false,"mutability":"mutable","name":"signatures","nameLocation":"4836:10:37","nodeType":"VariableDeclaration","scope":9618,"src":"4827:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":9605,"name":"string","nodeType":"ElementaryTypeName","src":"4827:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9606,"nodeType":"ArrayTypeName","src":"4827:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":9610,"indexed":false,"mutability":"mutable","name":"calldatas","nameLocation":"4856:9:37","nodeType":"VariableDeclaration","scope":9618,"src":"4848:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9608,"name":"bytes","nodeType":"ElementaryTypeName","src":"4848:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9609,"nodeType":"ArrayTypeName","src":"4848:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":9612,"indexed":false,"mutability":"mutable","name":"startTime","nameLocation":"4874:9:37","nodeType":"VariableDeclaration","scope":9618,"src":"4867:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9611,"name":"uint40","nodeType":"ElementaryTypeName","src":"4867:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":9614,"indexed":false,"mutability":"mutable","name":"endTime","nameLocation":"4892:7:37","nodeType":"VariableDeclaration","scope":9618,"src":"4885:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9613,"name":"uint40","nodeType":"ElementaryTypeName","src":"4885:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"},{"constant":false,"id":9616,"indexed":false,"mutability":"mutable","name":"description","nameLocation":"4908:11:37","nodeType":"VariableDeclaration","scope":9618,"src":"4901:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9615,"name":"string","nodeType":"ElementaryTypeName","src":"4901:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4770:150:37"},"src":"4749:172:37"},{"anonymous":false,"eventSelector":"e5c6a12e7989e74f4c07006b06767eae6da096502bba0f69213882f71242aab2","id":9622,"name":"ProposalCanceled","nameLocation":"4933:16:37","nodeType":"EventDefinition","parameters":{"id":9621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9620,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4957:10:37","nodeType":"VariableDeclaration","scope":9622,"src":"4950:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9619,"name":"uint64","nodeType":"ElementaryTypeName","src":"4950:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4949:19:37"},"src":"4927:42:37"},{"anonymous":false,"eventSelector":"ab2f5ddd7116794a68bdc6c3e14b18b5888ce4f48fdea983f4a1032a24a7989b","id":9630,"name":"VoteCast","nameLocation":"4981:8:37","nodeType":"EventDefinition","parameters":{"id":9629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9624,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4997:10:37","nodeType":"VariableDeclaration","scope":9630,"src":"4990:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9623,"name":"uint64","nodeType":"ElementaryTypeName","src":"4990:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":9626,"indexed":false,"mutability":"mutable","name":"support","nameLocation":"5014:7:37","nodeType":"VariableDeclaration","scope":9630,"src":"5009:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9625,"name":"bool","nodeType":"ElementaryTypeName","src":"5009:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9628,"indexed":false,"mutability":"mutable","name":"votes","nameLocation":"5030:5:37","nodeType":"VariableDeclaration","scope":9630,"src":"5023:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9627,"name":"uint96","nodeType":"ElementaryTypeName","src":"5023:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"4989:47:37"},"src":"4975:62:37"},{"anonymous":false,"eventSelector":"fd77b3148cb69f934b0fb64fb5f6dbc650c23d1aaaf91d12bb52d78923c41308","id":9636,"name":"ProposalQueued","nameLocation":"5049:14:37","nodeType":"EventDefinition","parameters":{"id":9635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9632,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5071:10:37","nodeType":"VariableDeclaration","scope":9636,"src":"5064:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9631,"name":"uint64","nodeType":"ElementaryTypeName","src":"5064:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":9634,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"5090:3:37","nodeType":"VariableDeclaration","scope":9636,"src":"5083:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9633,"name":"uint40","nodeType":"ElementaryTypeName","src":"5083:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"5063:31:37"},"src":"5043:52:37"},{"anonymous":false,"eventSelector":"2b3962140cfad697e04b60d47af771de8568e6ead5f42b8873c4a8d12bd2b3c7","id":9640,"name":"ProposalExecuted","nameLocation":"5107:16:37","nodeType":"EventDefinition","parameters":{"id":9639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9638,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5131:10:37","nodeType":"VariableDeclaration","scope":9640,"src":"5124:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9637,"name":"uint64","nodeType":"ElementaryTypeName","src":"5124:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5123:19:37"},"src":"5101:42:37"},{"anonymous":false,"eventSelector":"ff6500f609261dffe81c46cd3a92bfacb4ba18bb4a8fb2244547986c5ba7457f","id":9644,"name":"ProposalThresholdChanged","nameLocation":"5155:24:37","nodeType":"EventDefinition","parameters":{"id":9643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9642,"indexed":false,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"5187:20:37","nodeType":"VariableDeclaration","scope":9644,"src":"5180:27:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9641,"name":"uint96","nodeType":"ElementaryTypeName","src":"5180:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"5179:29:37"},"src":"5149:60:37"},{"anonymous":false,"eventSelector":"4b9e05d03a781f25fd55d65f8a28c7452e1ecb4a70c2b761bbfe0d9fb8a9d3cb","id":9648,"name":"VotingDelayChanged","nameLocation":"5221:18:37","nodeType":"EventDefinition","parameters":{"id":9647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9646,"indexed":false,"mutability":"mutable","name":"newVotingDelay","nameLocation":"5247:14:37","nodeType":"VariableDeclaration","scope":9648,"src":"5240:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9645,"name":"uint40","nodeType":"ElementaryTypeName","src":"5240:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"5239:23:37"},"src":"5215:48:37"},{"anonymous":false,"eventSelector":"c6bdba91ad0eaeaaa3026c197783f40dff7571fd0e71402de571b9c508329db6","id":9652,"name":"VotingPeriodChanged","nameLocation":"5275:19:37","nodeType":"EventDefinition","parameters":{"id":9651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9650,"indexed":false,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"5302:15:37","nodeType":"VariableDeclaration","scope":9652,"src":"5295:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9649,"name":"uint40","nodeType":"ElementaryTypeName","src":"5295:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"5294:24:37"},"src":"5269:50:37"},{"errorSelector":"4a7f394f","id":9654,"name":"InvalidAction","nameLocation":"5333:13:37","nodeType":"ErrorDefinition","parameters":{"id":9653,"nodeType":"ParameterList","parameters":[],"src":"5346:2:37"},"src":"5327:22:37"},{"errorSelector":"60900ed6","id":9656,"name":"InsufficientVotes","nameLocation":"5361:17:37","nodeType":"ErrorDefinition","parameters":{"id":9655,"nodeType":"ParameterList","parameters":[],"src":"5378:2:37"},"src":"5355:26:37"},{"errorSelector":"667a709a","id":9658,"name":"IllegalVote","nameLocation":"5393:11:37","nodeType":"ErrorDefinition","parameters":{"id":9657,"nodeType":"ParameterList","parameters":[],"src":"5404:2:37"},"src":"5387:20:37"},{"errorSelector":"0f3e2a3e","id":9660,"name":"InvalidNFT","nameLocation":"5419:10:37","nodeType":"ErrorDefinition","parameters":{"id":9659,"nodeType":"ParameterList","parameters":[],"src":"5429:2:37"},"src":"5413:19:37"},{"errorSelector":"49e27cff","id":9662,"name":"InvalidOwner","nameLocation":"5444:12:37","nodeType":"ErrorDefinition","parameters":{"id":9661,"nodeType":"ParameterList","parameters":[],"src":"5456:2:37"},"src":"5438:21:37"},{"errorSelector":"baf3f0f7","id":9664,"name":"InvalidState","nameLocation":"5471:12:37","nodeType":"ErrorDefinition","parameters":{"id":9663,"nodeType":"ParameterList","parameters":[],"src":"5483:2:37"},"src":"5465:21:37"},{"body":{"id":9722,"nodeType":"Block","src":"5706:569:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9677,"name":"_PROPOSAL_THRESHOLD_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9672,"src":"5721:23:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9678,"name":"_PROPOSAL_THRESHOLD_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9674,"src":"5747:23:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"5721:49:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9683,"nodeType":"IfStatement","src":"5717:77:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9680,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"5779:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5779:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9682,"nodeType":"RevertStatement","src":"5772:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9684,"name":"_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9670,"src":"5809:19:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9685,"name":"_PROPOSAL_THRESHOLD_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9672,"src":"5831:23:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"5809:45:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9690,"nodeType":"IfStatement","src":"5805:73:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9687,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"5863:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5863:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9689,"nodeType":"RevertStatement","src":"5856:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9691,"name":"_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9670,"src":"5893:19:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":9692,"name":"_PROPOSAL_THRESHOLD_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9674,"src":"5915:23:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"5893:45:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9697,"nodeType":"IfStatement","src":"5889:73:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9694,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"5947:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5947:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9696,"nodeType":"RevertStatement","src":"5940:22:37"}},{"expression":{"id":9702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9698,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"5973:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9700,"name":"_TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"5994:9:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9699,"name":"ITimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10726,"src":"5984:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITimelock_$10726_$","typeString":"type(contract ITimelock)"}},"id":9701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5984:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"src":"5973:31:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":9703,"nodeType":"ExpressionStatement","src":"5973:31:37"},{"expression":{"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9704,"name":"PANGOLIN_STAKING_POSITIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9507,"src":"6015:26:37","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10650","typeString":"contract IPangolinStakingPositions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9706,"name":"_PANGOLIN_STAKING_POSITIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9668,"src":"6070:27:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9705,"name":"IPangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10650,"src":"6044:25:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinStakingPositions_$10650_$","typeString":"type(contract IPangolinStakingPositions)"}},"id":9707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6044:54:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10650","typeString":"contract IPangolinStakingPositions"}},"src":"6015:83:37","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10650","typeString":"contract IPangolinStakingPositions"}},"id":9709,"nodeType":"ExpressionStatement","src":"6015:83:37"},{"expression":{"id":9712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9710,"name":"PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"6109:18:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9711,"name":"_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9670,"src":"6130:19:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6109:40:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":9713,"nodeType":"ExpressionStatement","src":"6109:40:37"},{"expression":{"id":9716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9714,"name":"PROPOSAL_THRESHOLD_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9497,"src":"6160:22:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9715,"name":"_PROPOSAL_THRESHOLD_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9672,"src":"6185:23:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6160:48:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":9717,"nodeType":"ExpressionStatement","src":"6160:48:37"},{"expression":{"id":9720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9718,"name":"PROPOSAL_THRESHOLD_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"6219:22:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9719,"name":"_PROPOSAL_THRESHOLD_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9674,"src":"6244:23:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6219:48:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":9721,"nodeType":"ExpressionStatement","src":"6219:48:37"}]},"id":9723,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9666,"mutability":"mutable","name":"_TIMELOCK","nameLocation":"5524:9:37","nodeType":"VariableDeclaration","scope":9723,"src":"5516:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9665,"name":"address","nodeType":"ElementaryTypeName","src":"5516:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9668,"mutability":"mutable","name":"_PANGOLIN_STAKING_POSITIONS","nameLocation":"5552:27:37","nodeType":"VariableDeclaration","scope":9723,"src":"5544:35:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9667,"name":"address","nodeType":"ElementaryTypeName","src":"5544:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9670,"mutability":"mutable","name":"_PROPOSAL_THRESHOLD","nameLocation":"5597:19:37","nodeType":"VariableDeclaration","scope":9723,"src":"5590:26:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9669,"name":"uint96","nodeType":"ElementaryTypeName","src":"5590:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":9672,"mutability":"mutable","name":"_PROPOSAL_THRESHOLD_MIN","nameLocation":"5634:23:37","nodeType":"VariableDeclaration","scope":9723,"src":"5627:30:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9671,"name":"uint96","nodeType":"ElementaryTypeName","src":"5627:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":9674,"mutability":"mutable","name":"_PROPOSAL_THRESHOLD_MAX","nameLocation":"5675:23:37","nodeType":"VariableDeclaration","scope":9723,"src":"5668:30:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":9673,"name":"uint96","nodeType":"ElementaryTypeName","src":"5668:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"5505:200:37"},"returnParameters":{"id":9676,"nodeType":"ParameterList","parameters":[],"src":"5706:0:37"},"scope":10609,"src":"5494:781:37","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9925,"nodeType":"Block","src":"6758:1777:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9744,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9726,"src":"6773:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":9745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6773:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":9746,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9729,"src":"6791:6:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6791:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6773:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9749,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9726,"src":"6808:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":9750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6808:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":9751,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9732,"src":"6826:10:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":9752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6826:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6808:35:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6773:70:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9755,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9726,"src":"6847:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":9756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6847:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":9757,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9735,"src":"6865:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":9758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6865:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6847:34:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6773:108:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9764,"nodeType":"IfStatement","src":"6769:136:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9761,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"6890:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6890:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9763,"nodeType":"RevertStatement","src":"6883:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9765,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9726,"src":"6920:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":9766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6920:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3130","id":9767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6937:2:37","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"6920:19:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9772,"nodeType":"IfStatement","src":"6916:47:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9769,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"6948:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6948:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9771,"nodeType":"RevertStatement","src":"6941:22:37"}},{"expression":{"arguments":[{"id":9774,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"6993:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9773,"name":"_verifyOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10442,"src":"6976:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6976:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9776,"nodeType":"ExpressionStatement","src":"6976:23:37"},{"assignments":[9778],"declarations":[{"constant":false,"id":9778,"mutability":"mutable","name":"startTime","nameLocation":"7019:9:37","nodeType":"VariableDeclaration","scope":9925,"src":"7012:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9777,"name":"uint40","nodeType":"ElementaryTypeName","src":"7012:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"id":9786,"initialValue":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":9785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":9781,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7038:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7038:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7031:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9779,"name":"uint40","nodeType":"ElementaryTypeName","src":"7031:6:37","typeDescriptions":{}}},"id":9783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7031:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9784,"name":"VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"7057:12:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7031:38:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"7012:57:37"},{"assignments":[9788],"declarations":[{"constant":false,"id":9788,"mutability":"mutable","name":"endTime","nameLocation":"7087:7:37","nodeType":"VariableDeclaration","scope":9925,"src":"7080:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9787,"name":"uint40","nodeType":"ElementaryTypeName","src":"7080:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"id":9792,"initialValue":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":9791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9789,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9778,"src":"7097:9:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9790,"name":"VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"7109:13:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7097:25:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"7080:42:37"},{"assignments":[9794],"declarations":[{"constant":false,"id":9794,"mutability":"mutable","name":"proposalLifeCycleTime","nameLocation":"7140:21:37","nodeType":"VariableDeclaration","scope":9925,"src":"7133:28:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":9793,"name":"uint40","nodeType":"ElementaryTypeName","src":"7133:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"id":9805,"initialValue":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":9804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":9797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9795,"name":"VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"7164:12:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9796,"name":"VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"7179:13:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7164:28:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9800,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"7202:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":9801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":10662,"src":"7202:14:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":9802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7202:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7195:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9798,"name":"uint40","nodeType":"ElementaryTypeName","src":"7195:6:37","typeDescriptions":{}}},"id":9803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7195:24:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7164:55:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"7133:86:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9807,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"7493:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":9814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":9810,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7507:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7507:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7500:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9808,"name":"uint40","nodeType":"ElementaryTypeName","src":"7500:6:37","typeDescriptions":{}}},"id":9812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7500:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9813,"name":"proposalLifeCycleTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9794,"src":"7526:21:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7500:47:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":9806,"name":"_getNftValueAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10482,"src":"7478:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint40_$returns$_t_uint96_$","typeString":"function (uint256,uint40) view returns (uint96)"}},"id":9815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7478:70:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9816,"name":"PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"7551:18:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"7478:91:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9821,"nodeType":"IfStatement","src":"7474:123:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9818,"name":"InsufficientVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"7578:17:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7578:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9820,"nodeType":"RevertStatement","src":"7571:26:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9822,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7694:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7694:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":9824,"name":"proposalTimeout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9535,"src":"7712:15:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint40_$","typeString":"mapping(uint256 => uint40)"}},"id":9826,"indexExpression":{"id":9825,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"7728:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7712:22:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7694:40:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9831,"nodeType":"IfStatement","src":"7690:72:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9828,"name":"InsufficientVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"7743:17:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7743:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9830,"nodeType":"RevertStatement","src":"7736:26:37"}},{"expression":{"id":9842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9832,"name":"proposalTimeout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9535,"src":"7773:15:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint40_$","typeString":"mapping(uint256 => uint40)"}},"id":9834,"indexExpression":{"id":9833,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"7789:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7773:22:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":9841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":9837,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7805:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7805:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7798:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9835,"name":"uint40","nodeType":"ElementaryTypeName","src":"7798:6:37","typeDescriptions":{}}},"id":9839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7798:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9840,"name":"proposalLifeCycleTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9794,"src":"7824:21:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7798:47:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7773:72:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":9843,"nodeType":"ExpressionStatement","src":"7773:72:37"},{"expression":{"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9844,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"7858:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7878:15:37","subExpression":{"id":9847,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9510,"src":"7880:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7871:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":9845,"name":"uint64","nodeType":"ElementaryTypeName","src":"7871:6:37","typeDescriptions":{}}},"id":9849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7871:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7858:36:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":9851,"nodeType":"ExpressionStatement","src":"7858:36:37"},{"assignments":[9854],"declarations":[{"constant":false,"id":9854,"mutability":"mutable","name":"newProposal","nameLocation":"7923:11:37","nodeType":"VariableDeclaration","scope":9925,"src":"7907:27:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal"},"typeName":{"id":9853,"nodeType":"UserDefinedTypeName","pathNode":{"id":9852,"name":"Proposal","nodeType":"IdentifierPath","referencedDeclaration":9569,"src":"7907:8:37"},"referencedDeclaration":9569,"src":"7907:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"}},"visibility":"internal"}],"id":9855,"nodeType":"VariableDeclarationStatement","src":"7907:27:37"},{"expression":{"id":9860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9856,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"7945:11:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":9858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":9547,"src":"7945:20:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9859,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"7968:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7945:28:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9861,"nodeType":"ExpressionStatement","src":"7945:28:37"},{"expression":{"id":9866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9862,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"7984:11:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":9864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":9556,"src":"7984:21:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9865,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9778,"src":"8008:9:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7984:33:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":9867,"nodeType":"ExpressionStatement","src":"7984:33:37"},{"expression":{"id":9872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9868,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"8028:11:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":9870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":9559,"src":"8028:19:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9871,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9788,"src":"8050:7:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"8028:29:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":9873,"nodeType":"ExpressionStatement","src":"8028:29:37"},{"expression":{"id":9878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9874,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"8070:9:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal storage ref)"}},"id":9876,"indexExpression":{"id":9875,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"8080:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8070:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9877,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"8094:11:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"src":"8070:35:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}},"id":9879,"nodeType":"ExpressionStatement","src":"8070:35:37"},{"assignments":[9882],"declarations":[{"constant":false,"id":9882,"mutability":"mutable","name":"newProposalAction","nameLocation":"8140:17:37","nodeType":"VariableDeclaration","scope":9925,"src":"8118:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_memory_ptr","typeString":"struct GovernorPango.ProposalAction"},"typeName":{"id":9881,"nodeType":"UserDefinedTypeName","pathNode":{"id":9880,"name":"ProposalAction","nodeType":"IdentifierPath","referencedDeclaration":9586,"src":"8118:14:37"},"referencedDeclaration":9586,"src":"8118:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction"}},"visibility":"internal"}],"id":9883,"nodeType":"VariableDeclarationStatement","src":"8118:39:37"},{"expression":{"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9884,"name":"newProposalAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9882,"src":"8168:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_memory_ptr","typeString":"struct GovernorPango.ProposalAction memory"}},"id":9886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":9573,"src":"8168:25:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9887,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9726,"src":"8196:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"8168:35:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":9889,"nodeType":"ExpressionStatement","src":"8168:35:37"},{"expression":{"id":9894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9890,"name":"newProposalAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9882,"src":"8214:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_memory_ptr","typeString":"struct GovernorPango.ProposalAction memory"}},"id":9892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":9577,"src":"8214:24:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9893,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9729,"src":"8241:6:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"8214:33:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":9895,"nodeType":"ExpressionStatement","src":"8214:33:37"},{"expression":{"id":9900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9896,"name":"newProposalAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9882,"src":"8258:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_memory_ptr","typeString":"struct GovernorPango.ProposalAction memory"}},"id":9898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":9581,"src":"8258:28:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9899,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9732,"src":"8289:10:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"8258:41:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":9901,"nodeType":"ExpressionStatement","src":"8258:41:37"},{"expression":{"id":9906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9902,"name":"newProposalAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9882,"src":"8310:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_memory_ptr","typeString":"struct GovernorPango.ProposalAction memory"}},"id":9904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":9585,"src":"8310:27:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9905,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9735,"src":"8340:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"8310:39:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":9907,"nodeType":"ExpressionStatement","src":"8310:39:37"},{"expression":{"id":9912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9908,"name":"proposalActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9522,"src":"8362:15:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_ProposalAction_$9586_storage_$","typeString":"mapping(uint64 => struct GovernorPango.ProposalAction storage ref)"}},"id":9910,"indexExpression":{"id":9909,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"8378:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8362:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage","typeString":"struct GovernorPango.ProposalAction storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9911,"name":"newProposalAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9882,"src":"8392:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_memory_ptr","typeString":"struct GovernorPango.ProposalAction memory"}},"src":"8362:47:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage","typeString":"struct GovernorPango.ProposalAction storage ref"}},"id":9913,"nodeType":"ExpressionStatement","src":"8362:47:37"},{"eventCall":{"arguments":[{"id":9915,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"8443:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":9916,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9726,"src":"8455:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":9917,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9729,"src":"8464:6:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":9918,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9732,"src":"8472:10:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":9919,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9735,"src":"8484:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":9920,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9778,"src":"8495:9:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":9921,"name":"endTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9788,"src":"8506:7:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},{"id":9922,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9737,"src":"8515:11:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_uint40","typeString":"uint40"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9914,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"8427:15:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint40_$_t_uint40_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint64,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint40,uint40,string memory)"}},"id":9923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8427:100:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9924,"nodeType":"EmitStatement","src":"8422:105:37"}]},"functionSelector":"0944db16","id":9926,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nameLocation":"6505:7:37","nodeType":"FunctionDefinition","parameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9726,"mutability":"mutable","name":"targets","nameLocation":"6540:7:37","nodeType":"VariableDeclaration","scope":9926,"src":"6523:24:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9724,"name":"address","nodeType":"ElementaryTypeName","src":"6523:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9725,"nodeType":"ArrayTypeName","src":"6523:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":9729,"mutability":"mutable","name":"values","nameLocation":"6575:6:37","nodeType":"VariableDeclaration","scope":9926,"src":"6558:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9727,"name":"uint256","nodeType":"ElementaryTypeName","src":"6558:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9728,"nodeType":"ArrayTypeName","src":"6558:9:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":9732,"mutability":"mutable","name":"signatures","nameLocation":"6608:10:37","nodeType":"VariableDeclaration","scope":9926,"src":"6592:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":9730,"name":"string","nodeType":"ElementaryTypeName","src":"6592:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9731,"nodeType":"ArrayTypeName","src":"6592:8:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":9735,"mutability":"mutable","name":"calldatas","nameLocation":"6644:9:37","nodeType":"VariableDeclaration","scope":9926,"src":"6629:24:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9733,"name":"bytes","nodeType":"ElementaryTypeName","src":"6629:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9734,"nodeType":"ArrayTypeName","src":"6629:7:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":9737,"mutability":"mutable","name":"description","nameLocation":"6678:11:37","nodeType":"VariableDeclaration","scope":9926,"src":"6664:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9736,"name":"string","nodeType":"ElementaryTypeName","src":"6664:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9739,"mutability":"mutable","name":"nftId","nameLocation":"6708:5:37","nodeType":"VariableDeclaration","scope":9926,"src":"6700:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9738,"name":"uint256","nodeType":"ElementaryTypeName","src":"6700:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6512:208:37"},"returnParameters":{"id":9743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9742,"mutability":"mutable","name":"proposalId","nameLocation":"6746:10:37","nodeType":"VariableDeclaration","scope":9926,"src":"6739:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9741,"name":"uint64","nodeType":"ElementaryTypeName","src":"6739:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6738:19:37"},"scope":10609,"src":"6496:2039:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":9996,"nodeType":"Block","src":"8826:740:37","statements":[{"assignments":[9933],"declarations":[{"constant":false,"id":9933,"mutability":"mutable","name":"proposal","nameLocation":"8854:8:37","nodeType":"VariableDeclaration","scope":9996,"src":"8837:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"},"typeName":{"id":9932,"nodeType":"UserDefinedTypeName","pathNode":{"id":9931,"name":"Proposal","nodeType":"IdentifierPath","referencedDeclaration":9569,"src":"8837:8:37"},"referencedDeclaration":9569,"src":"8837:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"}},"visibility":"internal"}],"id":9937,"initialValue":{"baseExpression":{"id":9934,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"8865:9:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal storage ref)"}},"id":9936,"indexExpression":{"id":9935,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9928,"src":"8875:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8865:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8837:49:37"},{"assignments":[9940],"declarations":[{"constant":false,"id":9940,"mutability":"mutable","name":"proposalState","nameLocation":"8911:13:37","nodeType":"VariableDeclaration","scope":9996,"src":"8897:27:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"typeName":{"id":9939,"nodeType":"UserDefinedTypeName","pathNode":{"id":9938,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":9544,"src":"8897:13:37"},"referencedDeclaration":9544,"src":"8897:13:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"visibility":"internal"}],"id":9944,"initialValue":{"arguments":[{"id":9942,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"8934:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}],"id":9941,"name":"_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"8927:6:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$9569_memory_ptr_$returns$_t_enum$_ProposalState_$9544_$","typeString":"function (struct GovernorPango.Proposal memory) view returns (enum GovernorPango.ProposalState)"}},"id":9943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8927:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"8897:46:37"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"id":9948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9945,"name":"proposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"8958:13:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":9946,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"8975:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":9947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":9543,"src":"8975:22:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"src":"8958:39:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"id":9952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9949,"name":"proposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"9001:13:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":9950,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"9018:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":9951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":9542,"src":"9018:21:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"src":"9001:38:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8958:81:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9957,"nodeType":"IfStatement","src":"8954:108:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9954,"name":"InvalidState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"9048:12:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9048:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9956,"nodeType":"RevertStatement","src":"9041:21:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":9968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":9959,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"9207:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":9960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":9547,"src":"9207:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":9963,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9233:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9233:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9226:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":9961,"name":"uint40","nodeType":"ElementaryTypeName","src":"9226:6:37","typeDescriptions":{}}},"id":9965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9226:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":9958,"name":"_getNftValueAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10482,"src":"9192:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint40_$returns$_t_uint96_$","typeString":"function (uint256,uint40) view returns (uint96)"}},"id":9966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9192:58:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9967,"name":"PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"9254:18:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"9192:80:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9985,"nodeType":"IfStatement","src":"9188:288:37","trueBody":{"id":9984,"nodeType":"Block","src":"9274:202:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9969,"name":"proposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"9293:13:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":9970,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"9310:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":9971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":9536,"src":"9310:21:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"src":"9293:38:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9982,"nodeType":"Block","src":"9409:56:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":9979,"name":"InvalidState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"9435:12:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":9980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9435:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9981,"nodeType":"RevertStatement","src":"9428:21:37"}]},"id":9983,"nodeType":"IfStatement","src":"9289:176:37","trueBody":{"id":9978,"nodeType":"Block","src":"9333:70:37","statements":[{"expression":{"arguments":[{"expression":{"id":9974,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"9369:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":9975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":9547,"src":"9369:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9973,"name":"_verifyOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10442,"src":"9352:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":9976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9352:35:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9977,"nodeType":"ExpressionStatement","src":"9352:35:37"}]}}]}},{"expression":{"id":9990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":9986,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9933,"src":"9488:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":9988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":9568,"src":"9488:17:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":9989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9508:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9488:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9991,"nodeType":"ExpressionStatement","src":"9488:24:37"},{"eventCall":{"arguments":[{"id":9993,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9928,"src":"9547:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":9992,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"9530:16:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":9994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9530:28:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9995,"nodeType":"EmitStatement","src":"9525:33:37"}]},"functionSelector":"4c125e79","id":9997,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"8791:6:37","nodeType":"FunctionDefinition","parameters":{"id":9929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9928,"mutability":"mutable","name":"proposalId","nameLocation":"8805:10:37","nodeType":"VariableDeclaration","scope":9997,"src":"8798:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9927,"name":"uint64","nodeType":"ElementaryTypeName","src":"8798:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8797:19:37"},"returnParameters":{"id":9930,"nodeType":"ParameterList","parameters":[],"src":"8826:0:37"},"scope":10609,"src":"8782:784:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10097,"nodeType":"Block","src":"9649:844:37","statements":[{"assignments":[10008],"declarations":[{"constant":false,"id":10008,"mutability":"mutable","name":"proposal","nameLocation":"9677:8:37","nodeType":"VariableDeclaration","scope":10097,"src":"9660:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"},"typeName":{"id":10007,"nodeType":"UserDefinedTypeName","pathNode":{"id":10006,"name":"Proposal","nodeType":"IdentifierPath","referencedDeclaration":9569,"src":"9660:8:37"},"referencedDeclaration":9569,"src":"9660:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"}},"visibility":"internal"}],"id":10012,"initialValue":{"baseExpression":{"id":10009,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"9688:9:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal storage ref)"}},"id":10011,"indexExpression":{"id":10010,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9999,"src":"9698:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9688:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9660:49:37"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"id":10018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10008,"src":"9731:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}],"id":10013,"name":"_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"9724:6:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$9569_memory_ptr_$returns$_t_enum$_ProposalState_$9544_$","typeString":"function (struct GovernorPango.Proposal memory) view returns (enum GovernorPango.ProposalState)"}},"id":10015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9724:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":10016,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"9744:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":9537,"src":"9744:20:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"src":"9724:40:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10022,"nodeType":"IfStatement","src":"9720:67:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10019,"name":"InvalidState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"9773:12:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9773:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10021,"nodeType":"RevertStatement","src":"9766:21:37"}},{"expression":{"arguments":[{"id":10024,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"9817:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10023,"name":"_verifyOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10442,"src":"9800:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":10025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9800:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10026,"nodeType":"ExpressionStatement","src":"9800:23:37"},{"assignments":[10028],"declarations":[{"constant":false,"id":10028,"mutability":"mutable","name":"votes","nameLocation":"9901:5:37","nodeType":"VariableDeclaration","scope":10097,"src":"9894:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10027,"name":"uint96","nodeType":"ElementaryTypeName","src":"9894:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":10034,"initialValue":{"arguments":[{"id":10030,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"9924:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":10031,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10008,"src":"9931:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":10032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":9556,"src":"9931:18:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":10029,"name":"_getNftValueAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10482,"src":"9909:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint40_$returns$_t_uint96_$","typeString":"function (uint256,uint40) view returns (uint96)"}},"id":10033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9909:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"9894:56:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":10037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10035,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"9965:5:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9974:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9965:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10041,"nodeType":"IfStatement","src":"9961:42:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10038,"name":"InsufficientVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"9984:17:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9984:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10040,"nodeType":"RevertStatement","src":"9977:26:37"}},{"assignments":[10044],"declarations":[{"constant":false,"id":10044,"mutability":"mutable","name":"receipt","nameLocation":"10074:7:37","nodeType":"VariableDeclaration","scope":10097,"src":"10058:23:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage_ptr","typeString":"struct GovernorPango.Receipt"},"typeName":{"id":10043,"nodeType":"UserDefinedTypeName","pathNode":{"id":10042,"name":"Receipt","nodeType":"IdentifierPath","referencedDeclaration":9596,"src":"10058:7:37"},"referencedDeclaration":9596,"src":"10058:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage_ptr","typeString":"struct GovernorPango.Receipt"}},"visibility":"internal"}],"id":10050,"initialValue":{"baseExpression":{"baseExpression":{"id":10045,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"10084:8:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_mapping$_t_uint256_$_t_struct$_Receipt_$9596_storage_$_$","typeString":"mapping(uint64 => mapping(uint256 => struct GovernorPango.Receipt storage ref))"}},"id":10047,"indexExpression":{"id":10046,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9999,"src":"10093:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10084:20:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Receipt_$9596_storage_$","typeString":"mapping(uint256 => struct GovernorPango.Receipt storage ref)"}},"id":10049,"indexExpression":{"id":10048,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"10105:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10084:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage","typeString":"struct GovernorPango.Receipt storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10058:53:37"},{"condition":{"expression":{"id":10051,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10044,"src":"10126:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage_ptr","typeString":"struct GovernorPango.Receipt storage pointer"}},"id":10052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":9589,"src":"10126:16:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10056,"nodeType":"IfStatement","src":"10122:42:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10053,"name":"IllegalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9658,"src":"10151:11:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10151:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10055,"nodeType":"RevertStatement","src":"10144:20:37"}},{"expression":{"id":10061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10057,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10044,"src":"10199:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage_ptr","typeString":"struct GovernorPango.Receipt storage pointer"}},"id":10059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":9589,"src":"10199:16:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":10060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10218:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10199:23:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10062,"nodeType":"ExpressionStatement","src":"10199:23:37"},{"expression":{"id":10067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10063,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10044,"src":"10233:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage_ptr","typeString":"struct GovernorPango.Receipt storage pointer"}},"id":10065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"support","nodeType":"MemberAccess","referencedDeclaration":9592,"src":"10233:15:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10066,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"10251:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10233:25:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10068,"nodeType":"ExpressionStatement","src":"10233:25:37"},{"expression":{"id":10073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10069,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10044,"src":"10269:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$9596_storage_ptr","typeString":"struct GovernorPango.Receipt storage pointer"}},"id":10071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":9595,"src":"10269:13:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10072,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"10285:5:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"10269:21:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":10074,"nodeType":"ExpressionStatement","src":"10269:21:37"},{"condition":{"id":10075,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"10307:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10089,"nodeType":"Block","src":"10375:57:37","statements":[{"expression":{"id":10087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10083,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10008,"src":"10390:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":10085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":9553,"src":"10390:21:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10086,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"10415:5:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"10390:30:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":10088,"nodeType":"ExpressionStatement","src":"10390:30:37"}]},"id":10090,"nodeType":"IfStatement","src":"10303:129:37","trueBody":{"id":10082,"nodeType":"Block","src":"10316:53:37","statements":[{"expression":{"id":10080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10076,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10008,"src":"10331:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":10078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":9550,"src":"10331:17:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10079,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"10352:5:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"10331:26:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":10081,"nodeType":"ExpressionStatement","src":"10331:26:37"}]}},{"eventCall":{"arguments":[{"id":10092,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9999,"src":"10458:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":10093,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"10470:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10094,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"10479:5:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":10091,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9630,"src":"10449:8:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_bool_$_t_uint96_$returns$__$","typeString":"function (uint64,bool,uint96)"}},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10449:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10096,"nodeType":"EmitStatement","src":"10444:41:37"}]},"functionSelector":"f3dc6314","id":10098,"implemented":true,"kind":"function","modifiers":[],"name":"castVote","nameLocation":"9583:8:37","nodeType":"FunctionDefinition","parameters":{"id":10004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9999,"mutability":"mutable","name":"proposalId","nameLocation":"9599:10:37","nodeType":"VariableDeclaration","scope":10098,"src":"9592:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9998,"name":"uint64","nodeType":"ElementaryTypeName","src":"9592:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":10001,"mutability":"mutable","name":"support","nameLocation":"9616:7:37","nodeType":"VariableDeclaration","scope":10098,"src":"9611:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10000,"name":"bool","nodeType":"ElementaryTypeName","src":"9611:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10003,"mutability":"mutable","name":"nftId","nameLocation":"9633:5:37","nodeType":"VariableDeclaration","scope":10098,"src":"9625:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10002,"name":"uint256","nodeType":"ElementaryTypeName","src":"9625:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9591:48:37"},"returnParameters":{"id":10005,"nodeType":"ParameterList","parameters":[],"src":"9649:0:37"},"scope":10609,"src":"9574:919:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10188,"nodeType":"Block","src":"10544:615:37","statements":[{"assignments":[10105],"declarations":[{"constant":false,"id":10105,"mutability":"mutable","name":"proposal","nameLocation":"10572:8:37","nodeType":"VariableDeclaration","scope":10188,"src":"10555:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"},"typeName":{"id":10104,"nodeType":"UserDefinedTypeName","pathNode":{"id":10103,"name":"Proposal","nodeType":"IdentifierPath","referencedDeclaration":9569,"src":"10555:8:37"},"referencedDeclaration":9569,"src":"10555:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"}},"visibility":"internal"}],"id":10109,"initialValue":{"baseExpression":{"id":10106,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"10583:9:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal storage ref)"}},"id":10108,"indexExpression":{"id":10107,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10100,"src":"10593:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10583:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10555:49:37"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"id":10115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10111,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10105,"src":"10626:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}],"id":10110,"name":"_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"10619:6:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$9569_memory_ptr_$returns$_t_enum$_ProposalState_$9544_$","typeString":"function (struct GovernorPango.Proposal memory) view returns (enum GovernorPango.ProposalState)"}},"id":10112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10619:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":10113,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"10639:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":9540,"src":"10639:23:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"src":"10619:43:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10119,"nodeType":"IfStatement","src":"10615:70:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10116,"name":"InvalidState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"10671:12:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10671:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10118,"nodeType":"RevertStatement","src":"10664:21:37"}},{"assignments":[10122],"declarations":[{"constant":false,"id":10122,"mutability":"mutable","name":"action","nameLocation":"10721:6:37","nodeType":"VariableDeclaration","scope":10188,"src":"10698:29:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction"},"typeName":{"id":10121,"nodeType":"UserDefinedTypeName","pathNode":{"id":10120,"name":"ProposalAction","nodeType":"IdentifierPath","referencedDeclaration":9586,"src":"10698:14:37"},"referencedDeclaration":9586,"src":"10698:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction"}},"visibility":"internal"}],"id":10126,"initialValue":{"baseExpression":{"id":10123,"name":"proposalActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9522,"src":"10730:15:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_ProposalAction_$9586_storage_$","typeString":"mapping(uint64 => struct GovernorPango.ProposalAction storage ref)"}},"id":10125,"indexExpression":{"id":10124,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10100,"src":"10746:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10730:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage","typeString":"struct GovernorPango.ProposalAction storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10698:59:37"},{"assignments":[10128],"declarations":[{"constant":false,"id":10128,"mutability":"mutable","name":"eta","nameLocation":"10777:3:37","nodeType":"VariableDeclaration","scope":10188,"src":"10770:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":10127,"name":"uint40","nodeType":"ElementaryTypeName","src":"10770:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"id":10138,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10131,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10790:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10790:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10133,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"10808:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":10134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":10662,"src":"10808:14:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":10135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10808:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10790:34:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10783:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":10129,"name":"uint40","nodeType":"ElementaryTypeName","src":"10783:6:37","typeDescriptions":{}}},"id":10137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10783:42:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"10770:55:37"},{"assignments":[10140],"declarations":[{"constant":false,"id":10140,"mutability":"mutable","name":"length","nameLocation":"10846:6:37","nodeType":"VariableDeclaration","scope":10188,"src":"10838:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10139,"name":"uint256","nodeType":"ElementaryTypeName","src":"10838:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10144,"initialValue":{"expression":{"expression":{"id":10141,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"10855:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":9573,"src":"10855:14:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":10143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10855:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10838:38:37"},{"body":{"id":10175,"nodeType":"Block","src":"10916:156:37","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":10152,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"10946:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":9573,"src":"10946:14:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":10155,"indexExpression":{"id":10154,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10146,"src":"10961:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10946:17:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":10156,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"10965:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":9577,"src":"10965:13:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":10159,"indexExpression":{"id":10158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10146,"src":"10979:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10965:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":10160,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"10983:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":9581,"src":"10983:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":10163,"indexExpression":{"id":10162,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10146,"src":"11001:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10983:20:37","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":10164,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10122,"src":"11005:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":9585,"src":"11005:16:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":10167,"indexExpression":{"id":10166,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10146,"src":"11022:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11005:19:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"id":10168,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10128,"src":"11026:3:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":10151,"name":"_queueOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10230,"src":"10931:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint40_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint40)"}},"id":10169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10931:99:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10170,"nodeType":"ExpressionStatement","src":"10931:99:37"},{"id":10174,"nodeType":"UncheckedBlock","src":"11045:16:37","statements":[{"expression":{"id":10172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11056:3:37","subExpression":{"id":10171,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10146,"src":"11058:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10173,"nodeType":"ExpressionStatement","src":"11056:3:37"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10146,"src":"10903:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10149,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10140,"src":"10907:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10903:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10176,"initializationExpression":{"assignments":[10146],"declarations":[{"constant":false,"id":10146,"mutability":"mutable","name":"i","nameLocation":"10900:1:37","nodeType":"VariableDeclaration","scope":10176,"src":"10892:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10145,"name":"uint256","nodeType":"ElementaryTypeName","src":"10892:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10147,"nodeType":"VariableDeclarationStatement","src":"10892:9:37"},"nodeType":"ForStatement","src":"10887:185:37"},{"expression":{"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10177,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10105,"src":"11084:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":10179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":9562,"src":"11084:12:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10180,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10128,"src":"11099:3:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"11084:18:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":10182,"nodeType":"ExpressionStatement","src":"11084:18:37"},{"eventCall":{"arguments":[{"id":10184,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10100,"src":"11135:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":10185,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10128,"src":"11147:3:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":10183,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9636,"src":"11120:14:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$_t_uint40_$returns$__$","typeString":"function (uint64,uint40)"}},"id":10186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11120:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10187,"nodeType":"EmitStatement","src":"11115:36:37"}]},"functionSelector":"926c46b2","id":10189,"implemented":true,"kind":"function","modifiers":[],"name":"queue","nameLocation":"10510:5:37","nodeType":"FunctionDefinition","parameters":{"id":10101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10100,"mutability":"mutable","name":"proposalId","nameLocation":"10523:10:37","nodeType":"VariableDeclaration","scope":10189,"src":"10516:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10099,"name":"uint64","nodeType":"ElementaryTypeName","src":"10516:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"10515:19:37"},"returnParameters":{"id":10102,"nodeType":"ParameterList","parameters":[],"src":"10544:0:37"},"scope":10609,"src":"10501:658:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10229,"nodeType":"Block","src":"11286:206:37","statements":[{"condition":{"arguments":[{"arguments":[{"arguments":[{"id":10207,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10191,"src":"11350:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10208,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10193,"src":"11358:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10209,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10195,"src":"11365:9:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10210,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10197,"src":"11376:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10211,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"11382:3:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":10205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11339:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"11339:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11339:47:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10204,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11329:9:37","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11329:58:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10202,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"11301:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":10203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queuedTransactions","nodeType":"MemberAccess","referencedDeclaration":10669,"src":"11301:27:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":10214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11301:87:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10218,"nodeType":"IfStatement","src":"11297:114:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10215,"name":"InvalidState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"11397:12:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11397:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10217,"nodeType":"RevertStatement","src":"11390:21:37"}},{"expression":{"arguments":[{"id":10222,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10191,"src":"11448:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10223,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10193,"src":"11456:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10224,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10195,"src":"11463:9:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10225,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10197,"src":"11474:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10226,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"11480:3:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":10219,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"11422:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":10221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":10697,"src":"11422:25:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)"}},"id":10227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11422:62:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10228,"nodeType":"ExpressionStatement","src":"11422:62:37"}]},"id":10230,"implemented":true,"kind":"function","modifiers":[],"name":"_queueOrRevert","nameLocation":"11176:14:37","nodeType":"FunctionDefinition","parameters":{"id":10200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10191,"mutability":"mutable","name":"target","nameLocation":"11199:6:37","nodeType":"VariableDeclaration","scope":10230,"src":"11191:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10190,"name":"address","nodeType":"ElementaryTypeName","src":"11191:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10193,"mutability":"mutable","name":"value","nameLocation":"11215:5:37","nodeType":"VariableDeclaration","scope":10230,"src":"11207:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10192,"name":"uint256","nodeType":"ElementaryTypeName","src":"11207:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10195,"mutability":"mutable","name":"signature","nameLocation":"11236:9:37","nodeType":"VariableDeclaration","scope":10230,"src":"11222:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10194,"name":"string","nodeType":"ElementaryTypeName","src":"11222:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10197,"mutability":"mutable","name":"data","nameLocation":"11260:4:37","nodeType":"VariableDeclaration","scope":10230,"src":"11247:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10196,"name":"bytes","nodeType":"ElementaryTypeName","src":"11247:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10199,"mutability":"mutable","name":"eta","nameLocation":"11273:3:37","nodeType":"VariableDeclaration","scope":10230,"src":"11266:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":10198,"name":"uint40","nodeType":"ElementaryTypeName","src":"11266:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"11190:87:37"},"returnParameters":{"id":10201,"nodeType":"ParameterList","parameters":[],"src":"11286:0:37"},"scope":10609,"src":"11167:325:37","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10315,"nodeType":"Block","src":"11705:594:37","statements":[{"assignments":[10237],"declarations":[{"constant":false,"id":10237,"mutability":"mutable","name":"proposal","nameLocation":"11733:8:37","nodeType":"VariableDeclaration","scope":10315,"src":"11716:25:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"},"typeName":{"id":10236,"nodeType":"UserDefinedTypeName","pathNode":{"id":10235,"name":"Proposal","nodeType":"IdentifierPath","referencedDeclaration":9569,"src":"11716:8:37"},"referencedDeclaration":9569,"src":"11716:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"}},"visibility":"internal"}],"id":10241,"initialValue":{"baseExpression":{"id":10238,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"11744:9:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal storage ref)"}},"id":10240,"indexExpression":{"id":10239,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10232,"src":"11754:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11744:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11716:49:37"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"id":10247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10243,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10237,"src":"11787:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}],"id":10242,"name":"_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"11780:6:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$9569_memory_ptr_$returns$_t_enum$_ProposalState_$9544_$","typeString":"function (struct GovernorPango.Proposal memory) view returns (enum GovernorPango.ProposalState)"}},"id":10244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11780:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":10245,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"11800:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":9541,"src":"11800:20:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"src":"11780:40:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10251,"nodeType":"IfStatement","src":"11776:67:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10248,"name":"InvalidState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"11829:12:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11829:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10250,"nodeType":"RevertStatement","src":"11822:21:37"}},{"assignments":[10254],"declarations":[{"constant":false,"id":10254,"mutability":"mutable","name":"action","nameLocation":"11879:6:37","nodeType":"VariableDeclaration","scope":10315,"src":"11856:29:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction"},"typeName":{"id":10253,"nodeType":"UserDefinedTypeName","pathNode":{"id":10252,"name":"ProposalAction","nodeType":"IdentifierPath","referencedDeclaration":9586,"src":"11856:14:37"},"referencedDeclaration":9586,"src":"11856:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction"}},"visibility":"internal"}],"id":10258,"initialValue":{"baseExpression":{"id":10255,"name":"proposalActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9522,"src":"11888:15:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_ProposalAction_$9586_storage_$","typeString":"mapping(uint64 => struct GovernorPango.ProposalAction storage ref)"}},"id":10257,"indexExpression":{"id":10256,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10232,"src":"11904:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11888:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage","typeString":"struct GovernorPango.ProposalAction storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11856:59:37"},{"assignments":[10260],"declarations":[{"constant":false,"id":10260,"mutability":"mutable","name":"length","nameLocation":"11936:6:37","nodeType":"VariableDeclaration","scope":10315,"src":"11928:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10259,"name":"uint256","nodeType":"ElementaryTypeName","src":"11928:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10264,"initialValue":{"expression":{"expression":{"id":10261,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"11945:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":9573,"src":"11945:14:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":10263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11945:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11928:38:37"},{"body":{"id":10303,"nodeType":"Block","src":"12006:203:37","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":10279,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"12074:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":9573,"src":"12074:14:37","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":10282,"indexExpression":{"id":10281,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"12089:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12074:17:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"expression":{"id":10283,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"12093:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":9577,"src":"12093:13:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":10286,"indexExpression":{"id":10285,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"12107:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12093:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":10287,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"12111:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":9581,"src":"12111:17:37","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":10290,"indexExpression":{"id":10289,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"12129:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12111:20:37","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"baseExpression":{"expression":{"id":10291,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"12133:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":9585,"src":"12133:16:37","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":10294,"indexExpression":{"id":10293,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"12150:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12133:19:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"expression":{"id":10295,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10237,"src":"12154:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":10296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":9562,"src":"12154:12:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint40","typeString":"uint40"}],"expression":{"id":10271,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"12021:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":10273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":10725,"src":"12021:27:37","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"}},"id":10278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"baseExpression":{"expression":{"id":10274,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10254,"src":"12056:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction storage pointer"}},"id":10275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":9577,"src":"12056:13:37","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":10277,"indexExpression":{"id":10276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"12070:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12056:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"12021:52:37","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value","typeString":"function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"}},"id":10297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12021:146:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10298,"nodeType":"ExpressionStatement","src":"12021:146:37"},{"id":10302,"nodeType":"UncheckedBlock","src":"12182:16:37","statements":[{"expression":{"id":10300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12193:3:37","subExpression":{"id":10299,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"12195:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10301,"nodeType":"ExpressionStatement","src":"12193:3:37"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"11993:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10269,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10260,"src":"11997:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11993:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10304,"initializationExpression":{"assignments":[10266],"declarations":[{"constant":false,"id":10266,"mutability":"mutable","name":"i","nameLocation":"11990:1:37","nodeType":"VariableDeclaration","scope":10304,"src":"11982:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10265,"name":"uint256","nodeType":"ElementaryTypeName","src":"11982:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10267,"nodeType":"VariableDeclarationStatement","src":"11982:9:37"},"nodeType":"ForStatement","src":"11977:232:37"},{"expression":{"id":10309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10305,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10237,"src":"12221:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal storage pointer"}},"id":10307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":9565,"src":"12221:17:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":10308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12241:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12221:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10310,"nodeType":"ExpressionStatement","src":"12221:24:37"},{"eventCall":{"arguments":[{"id":10312,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10232,"src":"12280:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":10311,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"12263:16:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":10313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12263:28:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10314,"nodeType":"EmitStatement","src":"12258:33:37"}]},"functionSelector":"b590be77","id":10316,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"11661:7:37","nodeType":"FunctionDefinition","parameters":{"id":10233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10232,"mutability":"mutable","name":"proposalId","nameLocation":"11676:10:37","nodeType":"VariableDeclaration","scope":10316,"src":"11669:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10231,"name":"uint64","nodeType":"ElementaryTypeName","src":"11669:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"11668:19:37"},"returnParameters":{"id":10234,"nodeType":"ParameterList","parameters":[],"src":"11705:0:37"},"scope":10609,"src":"11652:647:37","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":10330,"nodeType":"Block","src":"12469:55:37","statements":[{"expression":{"arguments":[{"baseExpression":{"id":10325,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9516,"src":"12494:9:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_Proposal_$9569_storage_$","typeString":"mapping(uint64 => struct GovernorPango.Proposal storage ref)"}},"id":10327,"indexExpression":{"id":10326,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10318,"src":"12504:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12494:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$9569_storage","typeString":"struct GovernorPango.Proposal storage ref"}],"id":10324,"name":"_state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10412,"src":"12487:6:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$9569_memory_ptr_$returns$_t_enum$_ProposalState_$9544_$","typeString":"function (struct GovernorPango.Proposal memory) view returns (enum GovernorPango.ProposalState)"}},"id":10328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12487:29:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10323,"id":10329,"nodeType":"Return","src":"12480:36:37"}]},"functionSelector":"2df23d15","id":10331,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"12406:5:37","nodeType":"FunctionDefinition","parameters":{"id":10319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10318,"mutability":"mutable","name":"proposalId","nameLocation":"12419:10:37","nodeType":"VariableDeclaration","scope":10331,"src":"12412:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10317,"name":"uint64","nodeType":"ElementaryTypeName","src":"12412:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"12411:19:37"},"returnParameters":{"id":10323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10331,"src":"12454:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"typeName":{"id":10321,"nodeType":"UserDefinedTypeName","pathNode":{"id":10320,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":9544,"src":"12454:13:37"},"referencedDeclaration":9544,"src":"12454:13:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"visibility":"internal"}],"src":"12453:15:37"},"scope":10609,"src":"12397:127:37","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":10411,"nodeType":"Block","src":"12699:767:37","statements":[{"condition":{"expression":{"id":10340,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"12714:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":9568,"src":"12714:17:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10346,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12799:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12799:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":10348,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"12818:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":9556,"src":"12818:18:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"12799:37:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10355,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12903:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12903:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":10357,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"12922:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":9559,"src":"12922:16:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"12903:35:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":10368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10364,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"13004:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":9550,"src":"13004:17:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":10366,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"13025:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":9553,"src":"13025:21:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"13004:42:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":10376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10373,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"13114:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":9562,"src":"13114:12:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13130:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13114:17:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"expression":{"id":10381,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"13200:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":9565,"src":"13200:17:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10387,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13285:5:37","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13285:15:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10389,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10334,"src":"13304:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal memory"}},"id":10390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":9562,"src":"13304:12:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10391,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"13319:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"GRACE_PERIOD","nodeType":"MemberAccess","referencedDeclaration":10657,"src":"13319:21:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":10393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13319:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13304:38:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13285:57:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10403,"nodeType":"Block","src":"13405:54:37","statements":[{"expression":{"expression":{"id":10400,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"13427:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":9541,"src":"13427:20:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10402,"nodeType":"Return","src":"13420:27:37"}]},"id":10404,"nodeType":"IfStatement","src":"13281:178:37","trueBody":{"id":10399,"nodeType":"Block","src":"13344:55:37","statements":[{"expression":{"expression":{"id":10396,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"13366:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":9542,"src":"13366:21:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10398,"nodeType":"Return","src":"13359:28:37"}]}},"id":10405,"nodeType":"IfStatement","src":"13196:263:37","trueBody":{"id":10386,"nodeType":"Block","src":"13219:56:37","statements":[{"expression":{"expression":{"id":10383,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"13241:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":9543,"src":"13241:22:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10385,"nodeType":"Return","src":"13234:29:37"}]}},"id":10406,"nodeType":"IfStatement","src":"13110:349:37","trueBody":{"id":10380,"nodeType":"Block","src":"13133:57:37","statements":[{"expression":{"expression":{"id":10377,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"13155:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":9540,"src":"13155:23:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10379,"nodeType":"Return","src":"13148:30:37"}]}},"id":10407,"nodeType":"IfStatement","src":"13000:459:37","trueBody":{"id":10372,"nodeType":"Block","src":"13048:56:37","statements":[{"expression":{"expression":{"id":10369,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"13070:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Defeated","nodeType":"MemberAccess","referencedDeclaration":9539,"src":"13070:22:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10371,"nodeType":"Return","src":"13063:29:37"}]}},"id":10408,"nodeType":"IfStatement","src":"12899:560:37","trueBody":{"id":10363,"nodeType":"Block","src":"12940:54:37","statements":[{"expression":{"expression":{"id":10360,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"12962:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":9537,"src":"12962:20:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10362,"nodeType":"Return","src":"12955:27:37"}]}},"id":10409,"nodeType":"IfStatement","src":"12795:664:37","trueBody":{"id":10354,"nodeType":"Block","src":"12838:55:37","statements":[{"expression":{"expression":{"id":10351,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"12860:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":9536,"src":"12860:21:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10353,"nodeType":"Return","src":"12853:28:37"}]}},"id":10410,"nodeType":"IfStatement","src":"12710:749:37","trueBody":{"id":10345,"nodeType":"Block","src":"12733:56:37","statements":[{"expression":{"expression":{"id":10342,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"12755:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$9544_$","typeString":"type(enum GovernorPango.ProposalState)"}},"id":10343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":9538,"src":"12755:22:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"functionReturnParameters":10339,"id":10344,"nodeType":"Return","src":"12748:29:37"}]}}]},"id":10412,"implemented":true,"kind":"function","modifiers":[],"name":"_state","nameLocation":"12629:6:37","nodeType":"FunctionDefinition","parameters":{"id":10335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10334,"mutability":"mutable","name":"proposal","nameLocation":"12652:8:37","nodeType":"VariableDeclaration","scope":10412,"src":"12636:24:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_memory_ptr","typeString":"struct GovernorPango.Proposal"},"typeName":{"id":10333,"nodeType":"UserDefinedTypeName","pathNode":{"id":10332,"name":"Proposal","nodeType":"IdentifierPath","referencedDeclaration":9569,"src":"12636:8:37"},"referencedDeclaration":9569,"src":"12636:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$9569_storage_ptr","typeString":"struct GovernorPango.Proposal"}},"visibility":"internal"}],"src":"12635:26:37"},"returnParameters":{"id":10339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10412,"src":"12684:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"},"typeName":{"id":10337,"nodeType":"UserDefinedTypeName","pathNode":{"id":10336,"name":"ProposalState","nodeType":"IdentifierPath","referencedDeclaration":9544,"src":"12684:13:37"},"referencedDeclaration":9544,"src":"12684:13:37","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$9544","typeString":"enum GovernorPango.ProposalState"}},"visibility":"internal"}],"src":"12683:15:37"},"scope":10609,"src":"12620:846:37","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":10424,"nodeType":"Block","src":"13641:53:37","statements":[{"expression":{"baseExpression":{"id":10420,"name":"proposalActions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9522,"src":"13659:15:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_ProposalAction_$9586_storage_$","typeString":"mapping(uint64 => struct GovernorPango.ProposalAction storage ref)"}},"id":10422,"indexExpression":{"id":10421,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10414,"src":"13675:10:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13659:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage","typeString":"struct GovernorPango.ProposalAction storage ref"}},"functionReturnParameters":10419,"id":10423,"nodeType":"Return","src":"13652:34:37"}]},"functionSelector":"3d928f3c","id":10425,"implemented":true,"kind":"function","modifiers":[],"name":"getActions","nameLocation":"13565:10:37","nodeType":"FunctionDefinition","parameters":{"id":10415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10414,"mutability":"mutable","name":"proposalId","nameLocation":"13583:10:37","nodeType":"VariableDeclaration","scope":10425,"src":"13576:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":10413,"name":"uint64","nodeType":"ElementaryTypeName","src":"13576:6:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13575:19:37"},"returnParameters":{"id":10419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10425,"src":"13618:21:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_memory_ptr","typeString":"struct GovernorPango.ProposalAction"},"typeName":{"id":10417,"nodeType":"UserDefinedTypeName","pathNode":{"id":10416,"name":"ProposalAction","nodeType":"IdentifierPath","referencedDeclaration":9586,"src":"13618:14:37"},"referencedDeclaration":9586,"src":"13618:14:37","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalAction_$9586_storage_ptr","typeString":"struct GovernorPango.ProposalAction"}},"visibility":"internal"}],"src":"13617:23:37"},"scope":10609,"src":"13556:138:37","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":10441,"nodeType":"Block","src":"13860:101:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10432,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"13910:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10430,"name":"PANGOLIN_STAKING_POSITIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9507,"src":"13875:26:37","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10650","typeString":"contract IPangolinStakingPositions"}},"id":10431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":10649,"src":"13875:34:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":10433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13875:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":10434,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13920:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"13920:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13875:55:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10440,"nodeType":"IfStatement","src":"13871:82:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10437,"name":"InvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9662,"src":"13939:12:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13939:14:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10439,"nodeType":"RevertStatement","src":"13932:21:37"}}]},"id":10442,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyOwnership","nameLocation":"13815:16:37","nodeType":"FunctionDefinition","parameters":{"id":10428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10427,"mutability":"mutable","name":"nftId","nameLocation":"13840:5:37","nodeType":"VariableDeclaration","scope":10442,"src":"13832:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10426,"name":"uint256","nodeType":"ElementaryTypeName","src":"13832:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13831:15:37"},"returnParameters":{"id":10429,"nodeType":"ParameterList","parameters":[],"src":"13860:0:37"},"scope":10609,"src":"13806:155:37","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":10481,"nodeType":"Block","src":"14240:314:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10451,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10444,"src":"14255:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":10452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14264:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14255:10:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10457,"nodeType":"IfStatement","src":"14251:35:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10454,"name":"InvalidNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9660,"src":"14274:10:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14274:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10456,"nodeType":"RevertStatement","src":"14267:19:37"}},{"assignments":[10462],"declarations":[{"constant":false,"id":10462,"mutability":"mutable","name":"position","nameLocation":"14339:8:37","nodeType":"VariableDeclaration","scope":10481,"src":"14297:50:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$10634_memory_ptr","typeString":"struct IPangolinStakingPositions.Position"},"typeName":{"id":10461,"nodeType":"UserDefinedTypeName","pathNode":{"id":10460,"name":"IPangolinStakingPositions.Position","nodeType":"IdentifierPath","referencedDeclaration":10634,"src":"14297:34:37"},"referencedDeclaration":10634,"src":"14297:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$10634_storage_ptr","typeString":"struct IPangolinStakingPositions.Position"}},"visibility":"internal"}],"id":10467,"initialValue":{"arguments":[{"id":10465,"name":"nftId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10444,"src":"14387:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10463,"name":"PANGOLIN_STAKING_POSITIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9507,"src":"14350:26:37","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10650","typeString":"contract IPangolinStakingPositions"}},"id":10464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"positions","nodeType":"MemberAccess","referencedDeclaration":10642,"src":"14350:36:37","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Position_$10634_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPangolinStakingPositions.Position memory)"}},"id":10466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14350:43:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Position_$10634_memory_ptr","typeString":"struct IPangolinStakingPositions.Position memory"}},"nodeType":"VariableDeclarationStatement","src":"14297:96:37"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":10471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10468,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10462,"src":"14408:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$10634_memory_ptr","typeString":"struct IPangolinStakingPositions.Position memory"}},"id":10469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":10631,"src":"14408:19:37","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10470,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"14430:9:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14408:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10479,"nodeType":"Block","src":"14512:35:37","statements":[{"expression":{"hexValue":"30","id":10477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14534:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":10450,"id":10478,"nodeType":"Return","src":"14527:8:37"}]},"id":10480,"nodeType":"IfStatement","src":"14404:143:37","trueBody":{"id":10476,"nodeType":"Block","src":"14441:65:37","statements":[{"expression":{"expression":{"expression":{"id":10472,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10462,"src":"14463:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$10634_memory_ptr","typeString":"struct IPangolinStakingPositions.Position memory"}},"id":10473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":10624,"src":"14463:23:37","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$10616_memory_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables memory"}},"id":10474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":10613,"src":"14463:31:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":10450,"id":10475,"nodeType":"Return","src":"14456:38:37"}]}}]},"id":10482,"implemented":true,"kind":"function","modifiers":[],"name":"_getNftValueAt","nameLocation":"14162:14:37","nodeType":"FunctionDefinition","parameters":{"id":10447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10444,"mutability":"mutable","name":"nftId","nameLocation":"14185:5:37","nodeType":"VariableDeclaration","scope":10482,"src":"14177:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10443,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10446,"mutability":"mutable","name":"timestamp","nameLocation":"14199:9:37","nodeType":"VariableDeclaration","scope":10482,"src":"14192:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":10445,"name":"uint40","nodeType":"ElementaryTypeName","src":"14192:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14176:33:37"},"returnParameters":{"id":10450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10482,"src":"14232:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10448,"name":"uint96","nodeType":"ElementaryTypeName","src":"14232:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"14231:8:37"},"scope":10609,"src":"14153:401:37","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":10490,"nodeType":"Block","src":"14596:41:37","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10485,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"14607:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}},"id":10487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"acceptAdmin","nodeType":"MemberAccess","referencedDeclaration":10677,"src":"14607:20:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":10488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14607:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10489,"nodeType":"ExpressionStatement","src":"14607:22:37"}]},"functionSelector":"b9a61961","id":10491,"implemented":true,"kind":"function","modifiers":[],"name":"__acceptAdmin","nameLocation":"14571:13:37","nodeType":"FunctionDefinition","parameters":{"id":10483,"nodeType":"ParameterList","parameters":[],"src":"14584:2:37"},"returnParameters":{"id":10484,"nodeType":"ParameterList","parameters":[],"src":"14596:0:37"},"scope":10609,"src":"14562:75:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10529,"nodeType":"Block","src":"14715:360:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14730:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14730:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":10500,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"14752:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}],"id":10499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14744:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10498,"name":"address","nodeType":"ElementaryTypeName","src":"14744:7:37","typeDescriptions":{}}},"id":10501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14744:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14730:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10506,"nodeType":"IfStatement","src":"14726:59:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10503,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"14770:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14770:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10505,"nodeType":"RevertStatement","src":"14763:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":10509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10507,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"14800:20:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10508,"name":"PROPOSAL_THRESHOLD_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9497,"src":"14823:22:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"14800:45:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10513,"nodeType":"IfStatement","src":"14796:73:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10510,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"14854:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14854:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10512,"nodeType":"RevertStatement","src":"14847:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":10516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10514,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"14884:20:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10515,"name":"PROPOSAL_THRESHOLD_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"14907:22:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"14884:45:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10520,"nodeType":"IfStatement","src":"14880:73:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10517,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"14938:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14938:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10519,"nodeType":"RevertStatement","src":"14931:22:37"}},{"expression":{"id":10523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10521,"name":"PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9495,"src":"14964:18:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10522,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"14985:20:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"14964:41:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":10524,"nodeType":"ExpressionStatement","src":"14964:41:37"},{"eventCall":{"arguments":[{"id":10526,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"15046:20:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":10525,"name":"ProposalThresholdChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9644,"src":"15021:24:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint96_$returns$__$","typeString":"function (uint96)"}},"id":10527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15021:46:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10528,"nodeType":"EmitStatement","src":"15016:51:37"}]},"functionSelector":"e907dc81","id":10530,"implemented":true,"kind":"function","modifiers":[],"name":"__setProposalThreshold","nameLocation":"14654:22:37","nodeType":"FunctionDefinition","parameters":{"id":10494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10493,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"14684:20:37","nodeType":"VariableDeclaration","scope":10530,"src":"14677:27:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10492,"name":"uint96","nodeType":"ElementaryTypeName","src":"14677:6:37","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"14676:29:37"},"returnParameters":{"id":10495,"nodeType":"ParameterList","parameters":[],"src":"14715:0:37"},"scope":10609,"src":"14645:430:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10568,"nodeType":"Block","src":"15141:292:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10535,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15156:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"15156:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":10539,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"15178:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}],"id":10538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15170:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10537,"name":"address","nodeType":"ElementaryTypeName","src":"15170:7:37","typeDescriptions":{}}},"id":10540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15170:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15156:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10545,"nodeType":"IfStatement","src":"15152:59:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10542,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"15196:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15196:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10544,"nodeType":"RevertStatement","src":"15189:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10546,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10532,"src":"15226:14:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":10547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15243:6:37","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"15226:23:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10552,"nodeType":"IfStatement","src":"15222:51:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10549,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"15258:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15258:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10551,"nodeType":"RevertStatement","src":"15251:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":10555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10553,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10532,"src":"15288:14:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"37","id":10554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15305:6:37","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"src":"15288:23:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10559,"nodeType":"IfStatement","src":"15284:51:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10556,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"15320:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15320:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10558,"nodeType":"RevertStatement","src":"15313:22:37"}},{"expression":{"id":10562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10560,"name":"VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"15346:12:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10561,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10532,"src":"15361:14:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"15346:29:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":10563,"nodeType":"ExpressionStatement","src":"15346:29:37"},{"eventCall":{"arguments":[{"id":10565,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10532,"src":"15410:14:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":10564,"name":"VotingDelayChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9648,"src":"15391:18:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint40_$returns$__$","typeString":"function (uint40)"}},"id":10566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15391:34:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10567,"nodeType":"EmitStatement","src":"15386:39:37"}]},"functionSelector":"fc45ddcd","id":10569,"implemented":true,"kind":"function","modifiers":[],"name":"__setVotingDelay","nameLocation":"15092:16:37","nodeType":"FunctionDefinition","parameters":{"id":10533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10532,"mutability":"mutable","name":"newVotingDelay","nameLocation":"15116:14:37","nodeType":"VariableDeclaration","scope":10569,"src":"15109:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":10531,"name":"uint40","nodeType":"ElementaryTypeName","src":"15109:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"15108:23:37"},"returnParameters":{"id":10534,"nodeType":"ParameterList","parameters":[],"src":"15141:0:37"},"scope":10609,"src":"15083:350:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10607,"nodeType":"Block","src":"15501:299:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10574,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15516:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"15516:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":10578,"name":"TIMELOCK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"15538:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITimelock_$10726","typeString":"contract ITimelock"}],"id":10577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15530:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10576,"name":"address","nodeType":"ElementaryTypeName","src":"15530:7:37","typeDescriptions":{}}},"id":10579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15530:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15516:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10584,"nodeType":"IfStatement","src":"15512:59:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10581,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"15556:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15556:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10583,"nodeType":"RevertStatement","src":"15549:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":10587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10585,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"15586:15:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":10586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15604:6:37","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_259200_by_1","typeString":"int_const 259200"},"value":"3"},"src":"15586:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10591,"nodeType":"IfStatement","src":"15582:52:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10588,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"15619:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15619:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10590,"nodeType":"RevertStatement","src":"15612:22:37"}},{"condition":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":10594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10592,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"15649:15:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3330","id":10593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15667:7:37","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_2592000_by_1","typeString":"int_const 2592000"},"value":"30"},"src":"15649:25:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10598,"nodeType":"IfStatement","src":"15645:53:37","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":10595,"name":"InvalidAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9654,"src":"15683:13:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":10596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15683:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10597,"nodeType":"RevertStatement","src":"15676:22:37"}},{"expression":{"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10599,"name":"VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"15709:13:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10600,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"15725:15:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"15709:31:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":10602,"nodeType":"ExpressionStatement","src":"15709:31:37"},{"eventCall":{"arguments":[{"id":10604,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"15776:15:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":10603,"name":"VotingPeriodChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9652,"src":"15756:19:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint40_$returns$__$","typeString":"function (uint40)"}},"id":10605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15756:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10606,"nodeType":"EmitStatement","src":"15751:41:37"}]},"functionSelector":"2d4c7bd3","id":10608,"implemented":true,"kind":"function","modifiers":[],"name":"__setVotingPeriod","nameLocation":"15450:17:37","nodeType":"FunctionDefinition","parameters":{"id":10572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10571,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"15475:15:37","nodeType":"VariableDeclaration","scope":10608,"src":"15468:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":10570,"name":"uint40","nodeType":"ElementaryTypeName","src":"15468:6:37","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"15467:24:37"},"returnParameters":{"id":10573,"nodeType":"ParameterList","parameters":[],"src":"15501:0:37"},"scope":10609,"src":"15441:359:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":10610,"src":"956:14847:37","usedErrors":[9654,9656,9658,9660,9662,9664]}],"src":"0:15805:37"},"id":37},"contracts/governance/interfaces/IPangolinStakingPositions.sol":{"ast":{"absolutePath":"contracts/governance/interfaces/IPangolinStakingPositions.sol","exportedSymbols":{"IPangolinStakingPositions":[10650]},"id":10651,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10611,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"0:24:38"},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinStakingPositions","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":10650,"linearizedBaseContracts":[10650],"name":"IPangolinStakingPositions","nameLocation":"71:25:38","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IPangolinStakingPositions.ValueVariables","id":10616,"members":[{"constant":false,"id":10613,"mutability":"mutable","name":"balance","nameLocation":"144:7:38","nodeType":"VariableDeclaration","scope":10616,"src":"137:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10612,"name":"uint96","nodeType":"ElementaryTypeName","src":"137:6:38","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":10615,"mutability":"mutable","name":"sumOfEntryTimes","nameLocation":"170:15:38","nodeType":"VariableDeclaration","scope":10616,"src":"162:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":10614,"name":"uint160","nodeType":"ElementaryTypeName","src":"162:7:38","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"name":"ValueVariables","nameLocation":"111:14:38","nodeType":"StructDefinition","scope":10650,"src":"104:89:38","visibility":"public"},{"canonicalName":"IPangolinStakingPositions.RewardSummations","id":10621,"members":[{"constant":false,"id":10618,"mutability":"mutable","name":"idealPosition","nameLocation":"244:13:38","nodeType":"VariableDeclaration","scope":10621,"src":"236:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10617,"name":"uint256","nodeType":"ElementaryTypeName","src":"236:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10620,"mutability":"mutable","name":"rewardPerValue","nameLocation":"276:14:38","nodeType":"VariableDeclaration","scope":10621,"src":"268:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10619,"name":"uint256","nodeType":"ElementaryTypeName","src":"268:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardSummations","nameLocation":"208:16:38","nodeType":"StructDefinition","scope":10650,"src":"201:97:38","visibility":"public"},{"canonicalName":"IPangolinStakingPositions.Position","id":10634,"members":[{"constant":false,"id":10624,"mutability":"mutable","name":"valueVariables","nameLocation":"348:14:38","nodeType":"VariableDeclaration","scope":10634,"src":"333:29:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$10616_storage_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables"},"typeName":{"id":10623,"nodeType":"UserDefinedTypeName","pathNode":{"id":10622,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":10616,"src":"333:14:38"},"referencedDeclaration":10616,"src":"333:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$10616_storage_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables"}},"visibility":"internal"},{"constant":false,"id":10627,"mutability":"mutable","name":"rewardSummationsPaid","nameLocation":"390:20:38","nodeType":"VariableDeclaration","scope":10634,"src":"373:37:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$10621_storage_ptr","typeString":"struct IPangolinStakingPositions.RewardSummations"},"typeName":{"id":10626,"nodeType":"UserDefinedTypeName","pathNode":{"id":10625,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":10621,"src":"373:16:38"},"referencedDeclaration":10621,"src":"373:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$10621_storage_ptr","typeString":"struct IPangolinStakingPositions.RewardSummations"}},"visibility":"internal"},{"constant":false,"id":10629,"mutability":"mutable","name":"previousValues","nameLocation":"429:14:38","nodeType":"VariableDeclaration","scope":10634,"src":"421:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":10628,"name":"uint160","nodeType":"ElementaryTypeName","src":"421:7:38","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":10631,"mutability":"mutable","name":"lastUpdate","nameLocation":"461:10:38","nodeType":"VariableDeclaration","scope":10634,"src":"454:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":10630,"name":"uint48","nodeType":"ElementaryTypeName","src":"454:6:38","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":10633,"mutability":"mutable","name":"lastDevaluation","nameLocation":"489:15:38","nodeType":"VariableDeclaration","scope":10634,"src":"482:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":10632,"name":"uint48","nodeType":"ElementaryTypeName","src":"482:6:38","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"Position","nameLocation":"313:8:38","nodeType":"StructDefinition","scope":10650,"src":"306:206:38","visibility":"public"},{"functionSelector":"99fbab88","id":10642,"implemented":false,"kind":"function","modifiers":[],"name":"positions","nameLocation":"529:9:38","nodeType":"FunctionDefinition","parameters":{"id":10637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10636,"mutability":"mutable","name":"positionId","nameLocation":"547:10:38","nodeType":"VariableDeclaration","scope":10642,"src":"539:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10635,"name":"uint256","nodeType":"ElementaryTypeName","src":"539:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"538:20:38"},"returnParameters":{"id":10641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10642,"src":"582:15:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$10634_memory_ptr","typeString":"struct IPangolinStakingPositions.Position"},"typeName":{"id":10639,"nodeType":"UserDefinedTypeName","pathNode":{"id":10638,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":10634,"src":"582:8:38"},"referencedDeclaration":10634,"src":"582:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$10634_storage_ptr","typeString":"struct IPangolinStakingPositions.Position"}},"visibility":"internal"}],"src":"581:17:38"},"scope":10650,"src":"520:79:38","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6352211e","id":10649,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"614:7:38","nodeType":"FunctionDefinition","parameters":{"id":10645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10644,"mutability":"mutable","name":"tokenId","nameLocation":"630:7:38","nodeType":"VariableDeclaration","scope":10649,"src":"622:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10643,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"621:17:38"},"returnParameters":{"id":10648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10647,"mutability":"mutable","name":"owner","nameLocation":"670:5:38","nodeType":"VariableDeclaration","scope":10649,"src":"662:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10646,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"661:15:38"},"scope":10650,"src":"605:72:38","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10651,"src":"61:619:38","usedErrors":[]}],"src":"0:682:38"},"id":38},"contracts/governance/interfaces/ITimelock.sol":{"ast":{"absolutePath":"contracts/governance/interfaces/ITimelock.sol","exportedSymbols":{"ITimelock":[10726]},"id":10727,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10652,"literals":["solidity",">=","0.8",".0"],"nodeType":"PragmaDirective","src":"0:24:39"},{"abstract":false,"baseContracts":[],"canonicalName":"ITimelock","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":10726,"linearizedBaseContracts":[10726],"name":"ITimelock","nameLocation":"71:9:39","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c1a287e2","id":10657,"implemented":false,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nameLocation":"97:12:39","nodeType":"FunctionDefinition","parameters":{"id":10653,"nodeType":"ParameterList","parameters":[],"src":"109:2:39"},"returnParameters":{"id":10656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10657,"src":"135:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10654,"name":"uint256","nodeType":"ElementaryTypeName","src":"135:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"134:9:39"},"scope":10726,"src":"88:56:39","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6a42b8f8","id":10662,"implemented":false,"kind":"function","modifiers":[],"name":"delay","nameLocation":"159:5:39","nodeType":"FunctionDefinition","parameters":{"id":10658,"nodeType":"ParameterList","parameters":[],"src":"164:2:39"},"returnParameters":{"id":10661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10662,"src":"190:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10659,"name":"uint256","nodeType":"ElementaryTypeName","src":"190:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"189:9:39"},"scope":10726,"src":"150:49:39","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f2b06537","id":10669,"implemented":false,"kind":"function","modifiers":[],"name":"queuedTransactions","nameLocation":"214:18:39","nodeType":"FunctionDefinition","parameters":{"id":10665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10664,"mutability":"mutable","name":"hash","nameLocation":"241:4:39","nodeType":"VariableDeclaration","scope":10669,"src":"233:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"232:14:39"},"returnParameters":{"id":10668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10669,"src":"270:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10666,"name":"bool","nodeType":"ElementaryTypeName","src":"270:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"269:6:39"},"scope":10726,"src":"205:71:39","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e177246e","id":10674,"implemented":false,"kind":"function","modifiers":[],"name":"setDelay","nameLocation":"291:8:39","nodeType":"FunctionDefinition","parameters":{"id":10672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10671,"mutability":"mutable","name":"delay","nameLocation":"308:5:39","nodeType":"VariableDeclaration","scope":10674,"src":"300:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10670,"name":"uint256","nodeType":"ElementaryTypeName","src":"300:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"299:15:39"},"returnParameters":{"id":10673,"nodeType":"ParameterList","parameters":[],"src":"323:0:39"},"scope":10726,"src":"282:42:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0e18b681","id":10677,"implemented":false,"kind":"function","modifiers":[],"name":"acceptAdmin","nameLocation":"339:11:39","nodeType":"FunctionDefinition","parameters":{"id":10675,"nodeType":"ParameterList","parameters":[],"src":"350:2:39"},"returnParameters":{"id":10676,"nodeType":"ParameterList","parameters":[],"src":"361:0:39"},"scope":10726,"src":"330:32:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4dd18bf5","id":10682,"implemented":false,"kind":"function","modifiers":[],"name":"setPendingAdmin","nameLocation":"377:15:39","nodeType":"FunctionDefinition","parameters":{"id":10680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10679,"mutability":"mutable","name":"pendingAdmin_","nameLocation":"401:13:39","nodeType":"VariableDeclaration","scope":10682,"src":"393:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10678,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"392:23:39"},"returnParameters":{"id":10681,"nodeType":"ParameterList","parameters":[],"src":"424:0:39"},"scope":10726,"src":"368:57:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3a66f901","id":10697,"implemented":false,"kind":"function","modifiers":[],"name":"queueTransaction","nameLocation":"440:16:39","nodeType":"FunctionDefinition","parameters":{"id":10693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10684,"mutability":"mutable","name":"target","nameLocation":"465:6:39","nodeType":"VariableDeclaration","scope":10697,"src":"457:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10683,"name":"address","nodeType":"ElementaryTypeName","src":"457:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10686,"mutability":"mutable","name":"value","nameLocation":"481:5:39","nodeType":"VariableDeclaration","scope":10697,"src":"473:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10685,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10688,"mutability":"mutable","name":"signature","nameLocation":"504:9:39","nodeType":"VariableDeclaration","scope":10697,"src":"488:25:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":10687,"name":"string","nodeType":"ElementaryTypeName","src":"488:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10690,"mutability":"mutable","name":"data","nameLocation":"530:4:39","nodeType":"VariableDeclaration","scope":10697,"src":"515:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10689,"name":"bytes","nodeType":"ElementaryTypeName","src":"515:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10692,"mutability":"mutable","name":"eta","nameLocation":"544:3:39","nodeType":"VariableDeclaration","scope":10697,"src":"536:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10691,"name":"uint256","nodeType":"ElementaryTypeName","src":"536:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"456:92:39"},"returnParameters":{"id":10696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10697,"src":"567:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"567:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"566:9:39"},"scope":10726,"src":"431:145:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"591fcdfe","id":10710,"implemented":false,"kind":"function","modifiers":[],"name":"cancelTransaction","nameLocation":"591:17:39","nodeType":"FunctionDefinition","parameters":{"id":10708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10699,"mutability":"mutable","name":"target","nameLocation":"617:6:39","nodeType":"VariableDeclaration","scope":10710,"src":"609:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10698,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10701,"mutability":"mutable","name":"value","nameLocation":"633:5:39","nodeType":"VariableDeclaration","scope":10710,"src":"625:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10700,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10703,"mutability":"mutable","name":"signature","nameLocation":"656:9:39","nodeType":"VariableDeclaration","scope":10710,"src":"640:25:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":10702,"name":"string","nodeType":"ElementaryTypeName","src":"640:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10705,"mutability":"mutable","name":"data","nameLocation":"682:4:39","nodeType":"VariableDeclaration","scope":10710,"src":"667:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10704,"name":"bytes","nodeType":"ElementaryTypeName","src":"667:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10707,"mutability":"mutable","name":"eta","nameLocation":"696:3:39","nodeType":"VariableDeclaration","scope":10710,"src":"688:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10706,"name":"uint256","nodeType":"ElementaryTypeName","src":"688:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"608:92:39"},"returnParameters":{"id":10709,"nodeType":"ParameterList","parameters":[],"src":"709:0:39"},"scope":10726,"src":"582:128:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0825f38f","id":10725,"implemented":false,"kind":"function","modifiers":[],"name":"executeTransaction","nameLocation":"725:18:39","nodeType":"FunctionDefinition","parameters":{"id":10721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10712,"mutability":"mutable","name":"target","nameLocation":"752:6:39","nodeType":"VariableDeclaration","scope":10725,"src":"744:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10711,"name":"address","nodeType":"ElementaryTypeName","src":"744:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10714,"mutability":"mutable","name":"value","nameLocation":"768:5:39","nodeType":"VariableDeclaration","scope":10725,"src":"760:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10713,"name":"uint256","nodeType":"ElementaryTypeName","src":"760:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10716,"mutability":"mutable","name":"signature","nameLocation":"791:9:39","nodeType":"VariableDeclaration","scope":10725,"src":"775:25:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":10715,"name":"string","nodeType":"ElementaryTypeName","src":"775:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10718,"mutability":"mutable","name":"data","nameLocation":"817:4:39","nodeType":"VariableDeclaration","scope":10725,"src":"802:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10717,"name":"bytes","nodeType":"ElementaryTypeName","src":"802:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10720,"mutability":"mutable","name":"eta","nameLocation":"831:3:39","nodeType":"VariableDeclaration","scope":10725,"src":"823:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10719,"name":"uint256","nodeType":"ElementaryTypeName","src":"823:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"743:92:39"},"returnParameters":{"id":10724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10725,"src":"862:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10722,"name":"bytes","nodeType":"ElementaryTypeName","src":"862:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"861:14:39"},"scope":10726,"src":"716:160:39","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":10727,"src":"61:818:39","usedErrors":[]}],"src":"0:881:39"},"id":39},"contracts/pangolin-token/Merkledrop.sol":{"ast":{"absolutePath":"contracts/pangolin-token/Merkledrop.sol","exportedSymbols":{"Context":[4686],"IERC20":[1502],"MerkleProof":[5952],"Merkledrop":[10937],"Ownable":[651],"Pausable":[837]},"id":10938,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10728,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"33:23:40"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":10729,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10938,"sourceUnit":1503,"src":"60:56:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":10730,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10938,"sourceUnit":838,"src":"118:55:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","file":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","id":10731,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10938,"sourceUnit":5953,"src":"175:68:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":10732,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10938,"sourceUnit":652,"src":"245:52:40","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10733,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":651,"src":"324:7:40"},"id":10734,"nodeType":"InheritanceSpecifier","src":"324:7:40"},{"baseName":{"id":10735,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":837,"src":"333:8:40"},"id":10736,"nodeType":"InheritanceSpecifier","src":"333:8:40"}],"canonicalName":"Merkledrop","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":10937,"linearizedBaseContracts":[10937,837,651,4686],"name":"Merkledrop","nameLocation":"310:10:40","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"71417b32","id":10740,"mutability":"mutable","name":"claimedAmounts","nameLocation":"383:14:40","nodeType":"VariableDeclaration","scope":10937,"src":"349:48:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"},"typeName":{"id":10739,"keyType":{"id":10737,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"349:26:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"},"valueType":{"id":10738,"name":"uint96","nodeType":"ElementaryTypeName","src":"368:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}},"visibility":"public"},{"constant":false,"functionSelector":"9bab65b8","id":10743,"mutability":"immutable","name":"PNG","nameLocation":"428:3:40","nodeType":"VariableDeclaration","scope":10937,"src":"404:27:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":10742,"nodeType":"UserDefinedTypeName","pathNode":{"id":10741,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"404:6:40"},"referencedDeclaration":1502,"src":"404:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"2eb4a7ab","id":10745,"mutability":"mutable","name":"merkleRoot","nameLocation":"453:10:40","nodeType":"VariableDeclaration","scope":10937,"src":"438:25:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"438:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"anonymous":false,"eventSelector":"1f1f3fe51e971f9768a1b748e2a520609176b6de88aa4d9c02ace9fb9177189f","id":10751,"name":"Claimed","nameLocation":"478:7:40","nodeType":"EventDefinition","parameters":{"id":10750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10747,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"494:7:40","nodeType":"VariableDeclaration","scope":10751,"src":"486:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10746,"name":"address","nodeType":"ElementaryTypeName","src":"486:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10749,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"510:6:40","nodeType":"VariableDeclaration","scope":10751,"src":"503:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10748,"name":"uint96","nodeType":"ElementaryTypeName","src":"503:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"485:32:40"},"src":"472:46:40"},{"anonymous":false,"eventSelector":"42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b","id":10755,"name":"MerkleRootSet","nameLocation":"530:13:40","nodeType":"EventDefinition","parameters":{"id":10754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10753,"indexed":false,"mutability":"mutable","name":"newMerkleRoot","nameLocation":"552:13:40","nodeType":"VariableDeclaration","scope":10755,"src":"544:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"544:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"543:23:40"},"src":"524:43:40"},{"body":{"id":10794,"nodeType":"Block","src":"631:252:40","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10763,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10757,"src":"650:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"650:17:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"650:24:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"678:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"650:29:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e2061646472657373","id":10768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"681:23:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488","typeString":"literal_string \"invalid token address\""},"value":"invalid token address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488","typeString":"literal_string \"invalid token address\""}],"id":10762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"642:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"642:63:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10770,"nodeType":"ExpressionStatement","src":"642:63:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10772,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"724:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"748:1:40","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":10774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"740:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10773,"name":"address","nodeType":"ElementaryTypeName","src":"740:7:40","typeDescriptions":{}}},"id":10776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"740:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"724:26:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420696e697469616c206f776e6572","id":10778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"752:23:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427","typeString":"literal_string \"invalid initial owner\""},"value":"invalid initial owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427","typeString":"literal_string \"invalid initial owner\""}],"id":10771,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"716:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"716:60:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10780,"nodeType":"ExpressionStatement","src":"716:60:40"},{"expression":{"arguments":[{"id":10782,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"806:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10781,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"787:18:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"787:32:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10784,"nodeType":"ExpressionStatement","src":"787:32:40"},{"expression":{"id":10789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10785,"name":"PNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"830:3:40","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10787,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10757,"src":"843:12:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10786,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"836:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":10788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"836:20:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"src":"830:26:40","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":10790,"nodeType":"ExpressionStatement","src":"830:26:40"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10791,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"867:6:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"867:8:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10793,"nodeType":"ExpressionStatement","src":"867:8:40"}]},"id":10795,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10757,"mutability":"mutable","name":"airdropToken","nameLocation":"595:12:40","nodeType":"VariableDeclaration","scope":10795,"src":"587:20:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10756,"name":"address","nodeType":"ElementaryTypeName","src":"587:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10759,"mutability":"mutable","name":"initialOwner","nameLocation":"617:12:40","nodeType":"VariableDeclaration","scope":10795,"src":"609:20:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10758,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"586:44:40"},"returnParameters":{"id":10761,"nodeType":"ParameterList","parameters":[],"src":"631:0:40"},"scope":10937,"src":"575:308:40","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10869,"nodeType":"Block","src":"976:529:40","statements":[{"assignments":[10806],"declarations":[{"constant":false,"id":10806,"mutability":"mutable","name":"previouslyClaimed","nameLocation":"994:17:40","nodeType":"VariableDeclaration","scope":10869,"src":"987:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10805,"name":"uint96","nodeType":"ElementaryTypeName","src":"987:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":10811,"initialValue":{"baseExpression":{"id":10807,"name":"claimedAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10740,"src":"1014:14:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"}},"id":10810,"indexExpression":{"expression":{"id":10808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1029:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1029:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1014:26:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"987:53:40"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":10815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10813,"name":"previouslyClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10806,"src":"1059:17:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10814,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"1079:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1059:26:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7468696e6720746f20636c61696d","id":10816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1087:18:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d","typeString":"literal_string \"nothing to claim\""},"value":"nothing to claim"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d","typeString":"literal_string \"nothing to claim\""}],"id":10812,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1051:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1051:55:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10818,"nodeType":"ExpressionStatement","src":"1051:55:40"},{"assignments":[10820],"declarations":[{"constant":false,"id":10820,"mutability":"mutable","name":"node","nameLocation":"1125:4:40","nodeType":"VariableDeclaration","scope":10869,"src":"1117:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1117:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10830,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":10825,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1157:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1157:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"1169:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":10823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1140:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1140:16:40","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1140:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1132:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1132:7:40","typeDescriptions":{}}},"id":10829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1132:45:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1117:60:40"},{"expression":{"arguments":[{"arguments":[{"id":10834,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10800,"src":"1215:11:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":10835,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"1228:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10836,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10820,"src":"1240:4:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10832,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"1196:11:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$5952_$","typeString":"type(library MerkleProof)"}},"id":10833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":5474,"src":"1196:18:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":10837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1196:49:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726f6f66","id":10838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1247:15:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""},"value":"invalid proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""}],"id":10831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1188:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1188:75:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10840,"nodeType":"ExpressionStatement","src":"1188:75:40"},{"expression":{"id":10846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10841,"name":"claimedAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10740,"src":"1274:14:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"}},"id":10844,"indexExpression":{"expression":{"id":10842,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1289:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1289:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1274:26:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10845,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"1303:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1274:35:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":10847,"nodeType":"ExpressionStatement","src":"1274:35:40"},{"id":10852,"nodeType":"UncheckedBlock","src":"1320:64:40","statements":[{"expression":{"id":10850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10848,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"1345:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":10849,"name":"previouslyClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10806,"src":"1355:17:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1345:27:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":10851,"nodeType":"ExpressionStatement","src":"1345:27:40"}]},{"expression":{"arguments":[{"arguments":[{"expression":{"id":10856,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1415:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1415:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10858,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"1427:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":10854,"name":"PNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"1402:3:40","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":10855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1469,"src":"1402:12:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":10859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1402:32:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":10860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1436:17:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":10853,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1394:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1394:60:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10862,"nodeType":"ExpressionStatement","src":"1394:60:40"},{"eventCall":{"arguments":[{"expression":{"id":10864,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1478:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1478:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10866,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"1490:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":10863,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"1470:7:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint96_$returns$__$","typeString":"function (address,uint96)"}},"id":10867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1470:27:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10868,"nodeType":"EmitStatement","src":"1465:32:40"}]},"functionSelector":"91a862fa","id":10870,"implemented":true,"kind":"function","modifiers":[{"id":10803,"kind":"modifierInvocation","modifierName":{"id":10802,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":764,"src":"962:13:40"},"nodeType":"ModifierInvocation","src":"962:13:40"}],"name":"claim","nameLocation":"900:5:40","nodeType":"FunctionDefinition","parameters":{"id":10801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10797,"mutability":"mutable","name":"amount","nameLocation":"913:6:40","nodeType":"VariableDeclaration","scope":10870,"src":"906:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10796,"name":"uint96","nodeType":"ElementaryTypeName","src":"906:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":10800,"mutability":"mutable","name":"merkleProof","nameLocation":"940:11:40","nodeType":"VariableDeclaration","scope":10870,"src":"921:30:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":10798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"921:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10799,"nodeType":"ArrayTypeName","src":"921:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"905:47:40"},"returnParameters":{"id":10804,"nodeType":"ParameterList","parameters":[],"src":"976:0:40"},"scope":10937,"src":"891:614:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10887,"nodeType":"Block","src":"1589:89:40","statements":[{"expression":{"id":10881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10879,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"1600:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10880,"name":"newMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10872,"src":"1613:13:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1600:26:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10882,"nodeType":"ExpressionStatement","src":"1600:26:40"},{"eventCall":{"arguments":[{"id":10884,"name":"newMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10872,"src":"1656:13:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10883,"name":"MerkleRootSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10755,"src":"1642:13:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":10885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1642:28:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10886,"nodeType":"EmitStatement","src":"1637:33:40"}]},"functionSelector":"7cb64759","id":10888,"implemented":true,"kind":"function","modifiers":[{"id":10875,"kind":"modifierInvocation","modifierName":{"id":10874,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":772,"src":"1568:10:40"},"nodeType":"ModifierInvocation","src":"1568:10:40"},{"id":10877,"kind":"modifierInvocation","modifierName":{"id":10876,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"1579:9:40"},"nodeType":"ModifierInvocation","src":"1579:9:40"}],"name":"setMerkleRoot","nameLocation":"1522:13:40","nodeType":"FunctionDefinition","parameters":{"id":10873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10872,"mutability":"mutable","name":"newMerkleRoot","nameLocation":"1544:13:40","nodeType":"VariableDeclaration","scope":10888,"src":"1536:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1536:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1535:23:40"},"returnParameters":{"id":10878,"nodeType":"ParameterList","parameters":[],"src":"1589:0:40"},"scope":10937,"src":"1513:165:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10910,"nodeType":"Block","src":"1763:81:40","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":10903,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1797:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1797:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"1809:6:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10901,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10891,"src":"1782:5:40","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":10902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1469,"src":"1782:14:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":10906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1782:34:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":10907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1818:17:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":10900,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1774:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:62:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10909,"nodeType":"ExpressionStatement","src":"1774:62:40"}]},"functionSelector":"5705ae43","id":10911,"implemented":true,"kind":"function","modifiers":[{"id":10896,"kind":"modifierInvocation","modifierName":{"id":10895,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":772,"src":"1742:10:40"},"nodeType":"ModifierInvocation","src":"1742:10:40"},{"id":10898,"kind":"modifierInvocation","modifierName":{"id":10897,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"1753:9:40"},"nodeType":"ModifierInvocation","src":"1753:9:40"}],"name":"recover","nameLocation":"1695:7:40","nodeType":"FunctionDefinition","parameters":{"id":10894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10891,"mutability":"mutable","name":"token","nameLocation":"1710:5:40","nodeType":"VariableDeclaration","scope":10911,"src":"1703:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":10890,"nodeType":"UserDefinedTypeName","pathNode":{"id":10889,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"1703:6:40"},"referencedDeclaration":1502,"src":"1703:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":10893,"mutability":"mutable","name":"amount","nameLocation":"1725:6:40","nodeType":"VariableDeclaration","scope":10911,"src":"1717:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10892,"name":"uint256","nodeType":"ElementaryTypeName","src":"1717:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1702:30:40"},"returnParameters":{"id":10899,"nodeType":"ParameterList","parameters":[],"src":"1763:0:40"},"scope":10937,"src":"1686:158:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10919,"nodeType":"Block","src":"1888:27:40","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10916,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"1899:6:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1899:8:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10918,"nodeType":"ExpressionStatement","src":"1899:8:40"}]},"functionSelector":"8456cb59","id":10920,"implemented":true,"kind":"function","modifiers":[{"id":10914,"kind":"modifierInvocation","modifierName":{"id":10913,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"1878:9:40"},"nodeType":"ModifierInvocation","src":"1878:9:40"}],"name":"pause","nameLocation":"1861:5:40","nodeType":"FunctionDefinition","parameters":{"id":10912,"nodeType":"ParameterList","parameters":[],"src":"1866:2:40"},"returnParameters":{"id":10915,"nodeType":"ParameterList","parameters":[],"src":"1888:0:40"},"scope":10937,"src":"1852:63:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":10935,"nodeType":"Block","src":"1961:90:40","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10926,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"1980:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30783030","id":10927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1994:4:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"1980:18:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6d65726b6c6520726f6f74206e6f7420736574","id":10929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2000:21:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156","typeString":"literal_string \"merkle root not set\""},"value":"merkle root not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156","typeString":"literal_string \"merkle root not set\""}],"id":10925,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1972:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1972:50:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10931,"nodeType":"ExpressionStatement","src":"1972:50:40"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10932,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":836,"src":"2033:8:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2033:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10934,"nodeType":"ExpressionStatement","src":"2033:10:40"}]},"functionSelector":"3f4ba83a","id":10936,"implemented":true,"kind":"function","modifiers":[{"id":10923,"kind":"modifierInvocation","modifierName":{"id":10922,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"1951:9:40"},"nodeType":"ModifierInvocation","src":"1951:9:40"}],"name":"unpause","nameLocation":"1932:7:40","nodeType":"FunctionDefinition","parameters":{"id":10921,"nodeType":"ParameterList","parameters":[],"src":"1939:2:40"},"returnParameters":{"id":10924,"nodeType":"ParameterList","parameters":[],"src":"1961:0:40"},"scope":10937,"src":"1923:128:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":10938,"src":"301:1753:40","usedErrors":[]}],"src":"33:2023:40"},"id":40},"contracts/pangolin-token/MerkledropToStaking.sol":{"ast":{"absolutePath":"contracts/pangolin-token/MerkledropToStaking.sol","exportedSymbols":{"Context":[4686],"IERC165":[5988],"IERC20":[1502],"IERC721":[3857],"IPangolinStakingPositions":[10954],"MerkleProof":[5952],"MerkledropToStaking":[11220],"Ownable":[651],"Pausable":[837]},"id":11221,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10939,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"33:23:41"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":10940,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11221,"sourceUnit":1503,"src":"60:56:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":10941,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11221,"sourceUnit":3858,"src":"118:58:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":10942,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11221,"sourceUnit":838,"src":"178:55:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","file":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","id":10943,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11221,"sourceUnit":5953,"src":"235:68:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":10944,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11221,"sourceUnit":652,"src":"305:52:41","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10945,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":3857,"src":"400:7:41"},"id":10946,"nodeType":"InheritanceSpecifier","src":"400:7:41"}],"canonicalName":"IPangolinStakingPositions","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":10954,"linearizedBaseContracts":[10954,3857,5988],"name":"IPangolinStakingPositions","nameLocation":"371:25:41","nodeType":"ContractDefinition","nodes":[{"functionSelector":"a0712d68","id":10953,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"424:4:41","nodeType":"FunctionDefinition","parameters":{"id":10949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10948,"mutability":"mutable","name":"amount","nameLocation":"437:6:41","nodeType":"VariableDeclaration","scope":10953,"src":"429:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10947,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"428:16:41"},"returnParameters":{"id":10952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10951,"mutability":"mutable","name":"positionId","nameLocation":"471:10:41","nodeType":"VariableDeclaration","scope":10953,"src":"463:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10950,"name":"uint256","nodeType":"ElementaryTypeName","src":"463:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"462:20:41"},"scope":10954,"src":"415:68:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11221,"src":"361:125:41","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":10955,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":651,"src":"522:7:41"},"id":10956,"nodeType":"InheritanceSpecifier","src":"522:7:41"},{"baseName":{"id":10957,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":837,"src":"531:8:41"},"id":10958,"nodeType":"InheritanceSpecifier","src":"531:8:41"}],"canonicalName":"MerkledropToStaking","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11220,"linearizedBaseContracts":[11220,837,651,4686],"name":"MerkledropToStaking","nameLocation":"499:19:41","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"71417b32","id":10962,"mutability":"mutable","name":"claimedAmounts","nameLocation":"581:14:41","nodeType":"VariableDeclaration","scope":11220,"src":"547:48:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"},"typeName":{"id":10961,"keyType":{"id":10959,"name":"address","nodeType":"ElementaryTypeName","src":"555:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"547:26:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"},"valueType":{"id":10960,"name":"uint96","nodeType":"ElementaryTypeName","src":"566:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}},"visibility":"public"},{"constant":false,"functionSelector":"9bab65b8","id":10965,"mutability":"immutable","name":"PNG","nameLocation":"626:3:41","nodeType":"VariableDeclaration","scope":11220,"src":"602:27:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":10964,"nodeType":"UserDefinedTypeName","pathNode":{"id":10963,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"602:6:41"},"referencedDeclaration":1502,"src":"602:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"33c88ff6","id":10968,"mutability":"immutable","name":"SAR","nameLocation":"679:3:41","nodeType":"VariableDeclaration","scope":11220,"src":"636:46:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10954","typeString":"contract IPangolinStakingPositions"},"typeName":{"id":10967,"nodeType":"UserDefinedTypeName","pathNode":{"id":10966,"name":"IPangolinStakingPositions","nodeType":"IdentifierPath","referencedDeclaration":10954,"src":"636:25:41"},"referencedDeclaration":10954,"src":"636:25:41","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10954","typeString":"contract IPangolinStakingPositions"}},"visibility":"public"},{"constant":false,"functionSelector":"2eb4a7ab","id":10970,"mutability":"mutable","name":"merkleRoot","nameLocation":"704:10:41","nodeType":"VariableDeclaration","scope":11220,"src":"689:25:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"689:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"anonymous":false,"eventSelector":"f9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab7","id":10978,"name":"Claimed","nameLocation":"729:7:41","nodeType":"EventDefinition","parameters":{"id":10977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10972,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"753:4:41","nodeType":"VariableDeclaration","scope":10978,"src":"737:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10971,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10974,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"775:2:41","nodeType":"VariableDeclaration","scope":10978,"src":"759:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10973,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10976,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"794:6:41","nodeType":"VariableDeclaration","scope":10978,"src":"779:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":10975,"name":"uint96","nodeType":"ElementaryTypeName","src":"779:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"736:65:41"},"src":"723:79:41"},{"anonymous":false,"eventSelector":"42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b","id":10982,"name":"MerkleRootSet","nameLocation":"814:13:41","nodeType":"EventDefinition","parameters":{"id":10981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10980,"indexed":true,"mutability":"mutable","name":"newMerkleRoot","nameLocation":"844:13:41","nodeType":"VariableDeclaration","scope":10982,"src":"828:29:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"828:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"827:31:41"},"src":"808:51:41"},{"body":{"id":11050,"nodeType":"Block","src":"949:468:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10992,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10984,"src":"968:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"968:17:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"968:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"968:29:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e2061646472657373","id":10997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"999:23:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488","typeString":"literal_string \"invalid token address\""},"value":"invalid token address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488","typeString":"literal_string \"invalid token address\""}],"id":10991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"960:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"960:63:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10999,"nodeType":"ExpressionStatement","src":"960:63:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":11001,"name":"stakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10986,"src":"1042:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1042:21:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1042:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1074:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1042:33:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c6964207374616b696e672061646472657373","id":11006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1077:25:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae","typeString":"literal_string \"invalid staking address\""},"value":"invalid staking address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae","typeString":"literal_string \"invalid staking address\""}],"id":11000,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1034:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1034:69:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11008,"nodeType":"ExpressionStatement","src":"1034:69:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11010,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10988,"src":"1122:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1146:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1138:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11011,"name":"address","nodeType":"ElementaryTypeName","src":"1138:7:41","typeDescriptions":{}}},"id":11014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1122:26:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420696e697469616c206f776e6572","id":11016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1150:23:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427","typeString":"literal_string \"invalid initial owner\""},"value":"invalid initial owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427","typeString":"literal_string \"invalid initial owner\""}],"id":11009,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1114:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1114:60:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11018,"nodeType":"ExpressionStatement","src":"1114:60:41"},{"expression":{"arguments":[{"id":11020,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10988,"src":"1204:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11019,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"1185:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1185:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11022,"nodeType":"ExpressionStatement","src":"1185:32:41"},{"expression":{"arguments":[{"id":11027,"name":"stakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10986,"src":"1257:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":11030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1280:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11029,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:41","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11028,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1275:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1275:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1275:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11024,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10984,"src":"1235:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11023,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1228:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":11025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1228:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":11026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"1228:28:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1228:65:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11034,"nodeType":"ExpressionStatement","src":"1228:65:41"},{"expression":{"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11035,"name":"PNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"1304:3:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11037,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10984,"src":"1317:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11036,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1310:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1310:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"src":"1304:26:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":11040,"nodeType":"ExpressionStatement","src":"1304:26:41"},{"expression":{"id":11045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11041,"name":"SAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10968,"src":"1341:3:41","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10954","typeString":"contract IPangolinStakingPositions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11043,"name":"stakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10986,"src":"1373:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11042,"name":"IPangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10954,"src":"1347:25:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinStakingPositions_$10954_$","typeString":"type(contract IPangolinStakingPositions)"}},"id":11044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1347:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10954","typeString":"contract IPangolinStakingPositions"}},"src":"1341:49:41","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10954","typeString":"contract IPangolinStakingPositions"}},"id":11046,"nodeType":"ExpressionStatement","src":"1341:49:41"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11047,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"1401:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1401:8:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11049,"nodeType":"ExpressionStatement","src":"1401:8:41"}]},"id":11051,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10984,"mutability":"mutable","name":"airdropToken","nameLocation":"887:12:41","nodeType":"VariableDeclaration","scope":11051,"src":"879:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10983,"name":"address","nodeType":"ElementaryTypeName","src":"879:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10986,"mutability":"mutable","name":"stakingPositions","nameLocation":"909:16:41","nodeType":"VariableDeclaration","scope":11051,"src":"901:24:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10985,"name":"address","nodeType":"ElementaryTypeName","src":"901:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10988,"mutability":"mutable","name":"initialOwner","nameLocation":"935:12:41","nodeType":"VariableDeclaration","scope":11051,"src":"927:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10987,"name":"address","nodeType":"ElementaryTypeName","src":"927:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"878:70:41"},"returnParameters":{"id":10990,"nodeType":"ParameterList","parameters":[],"src":"949:0:41"},"scope":11220,"src":"867:550:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11066,"nodeType":"Block","src":"1496:59:41","statements":[{"expression":{"arguments":[{"expression":{"id":11060,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1515:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1515:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11062,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11053,"src":"1527:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":11063,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11056,"src":"1535:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"id":11059,"name":"claimTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"1507:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint96_$_t_array$_t_bytes32_$dyn_calldata_ptr_$returns$__$","typeString":"function (address,uint96,bytes32[] calldata)"}},"id":11064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1507:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11065,"nodeType":"ExpressionStatement","src":"1507:40:41"}]},"functionSelector":"91a862fa","id":11067,"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1434:5:41","nodeType":"FunctionDefinition","parameters":{"id":11057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11053,"mutability":"mutable","name":"amount","nameLocation":"1447:6:41","nodeType":"VariableDeclaration","scope":11067,"src":"1440:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11052,"name":"uint96","nodeType":"ElementaryTypeName","src":"1440:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":11056,"mutability":"mutable","name":"merkleProof","nameLocation":"1474:11:41","nodeType":"VariableDeclaration","scope":11067,"src":"1455:30:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1455:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11055,"nodeType":"ArrayTypeName","src":"1455:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1439:47:41"},"returnParameters":{"id":11058,"nodeType":"ParameterList","parameters":[],"src":"1496:0:41"},"scope":11220,"src":"1425:130:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11152,"nodeType":"Block","src":"1694:572:41","statements":[{"assignments":[11080],"declarations":[{"constant":false,"id":11080,"mutability":"mutable","name":"previouslyClaimed","nameLocation":"1712:17:41","nodeType":"VariableDeclaration","scope":11152,"src":"1705:24:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11079,"name":"uint96","nodeType":"ElementaryTypeName","src":"1705:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":11085,"initialValue":{"baseExpression":{"id":11081,"name":"claimedAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10962,"src":"1732:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"}},"id":11084,"indexExpression":{"expression":{"id":11082,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1747:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1747:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1732:26:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"1705:53:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11087,"name":"previouslyClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11080,"src":"1777:17:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11088,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"1797:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1777:26:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7468696e6720746f20636c61696d","id":11090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1805:18:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d","typeString":"literal_string \"nothing to claim\""},"value":"nothing to claim"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d","typeString":"literal_string \"nothing to claim\""}],"id":11086,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1769:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1769:55:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11092,"nodeType":"ExpressionStatement","src":"1769:55:41"},{"assignments":[11094],"declarations":[{"constant":false,"id":11094,"mutability":"mutable","name":"node","nameLocation":"1843:4:41","nodeType":"VariableDeclaration","scope":11152,"src":"1835:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1835:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11104,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":11099,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1875:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1875:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11101,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"1887:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":11097,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1858:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1858:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1858:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1850:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1850:7:41","typeDescriptions":{}}},"id":11103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1850:45:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1835:60:41"},{"expression":{"arguments":[{"arguments":[{"id":11108,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11074,"src":"1933:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":11109,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10970,"src":"1946:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11110,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11094,"src":"1958:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11106,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"1914:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$5952_$","typeString":"type(library MerkleProof)"}},"id":11107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":5474,"src":"1914:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:49:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726f6f66","id":11112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1965:15:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""},"value":"invalid proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""}],"id":11105,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1906:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1906:75:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11114,"nodeType":"ExpressionStatement","src":"1906:75:41"},{"expression":{"id":11120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11115,"name":"claimedAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10962,"src":"1992:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"}},"id":11118,"indexExpression":{"expression":{"id":11116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2007:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2007:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1992:26:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11119,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"2021:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1992:35:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":11121,"nodeType":"ExpressionStatement","src":"1992:35:41"},{"id":11126,"nodeType":"UncheckedBlock","src":"2038:64:41","statements":[{"expression":{"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11122,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"2063:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":11123,"name":"previouslyClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11080,"src":"2073:17:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2063:27:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":11125,"nodeType":"ExpressionStatement","src":"2063:27:41"}]},{"assignments":[11128],"declarations":[{"constant":false,"id":11128,"mutability":"mutable","name":"positionId","nameLocation":"2120:10:41","nodeType":"VariableDeclaration","scope":11152,"src":"2112:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11127,"name":"uint256","nodeType":"ElementaryTypeName","src":"2112:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11133,"initialValue":{"arguments":[{"id":11131,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"2142:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":11129,"name":"SAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10968,"src":"2133:3:41","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10954","typeString":"contract IPangolinStakingPositions"}},"id":11130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":10953,"src":"2133:8:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) external returns (uint256)"}},"id":11132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2133:16:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2112:37:41"},{"expression":{"arguments":[{"arguments":[{"id":11139,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2189:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_MerkledropToStaking_$11220","typeString":"contract MerkledropToStaking"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MerkledropToStaking_$11220","typeString":"contract MerkledropToStaking"}],"id":11138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11137,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:41","typeDescriptions":{}}},"id":11140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11141,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11069,"src":"2196:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11142,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11128,"src":"2200:10:41","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":11134,"name":"SAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10968,"src":"2160:3:41","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$10954","typeString":"contract IPangolinStakingPositions"}},"id":11136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":3812,"src":"2160:20:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":11143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2160:51:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11144,"nodeType":"ExpressionStatement","src":"2160:51:41"},{"eventCall":{"arguments":[{"expression":{"id":11146,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2235:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2235:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11148,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11069,"src":"2247:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11149,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"2251:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":11145,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10978,"src":"2227:7:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$","typeString":"function (address,address,uint96)"}},"id":11150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2227:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11151,"nodeType":"EmitStatement","src":"2222:36:41"}]},"functionSelector":"d8ef8ad4","id":11153,"implemented":true,"kind":"function","modifiers":[{"id":11077,"kind":"modifierInvocation","modifierName":{"id":11076,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":764,"src":"1680:13:41"},"nodeType":"ModifierInvocation","src":"1680:13:41"}],"name":"claimTo","nameLocation":"1572:7:41","nodeType":"FunctionDefinition","parameters":{"id":11075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11069,"mutability":"mutable","name":"to","nameLocation":"1598:2:41","nodeType":"VariableDeclaration","scope":11153,"src":"1590:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11068,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11071,"mutability":"mutable","name":"amount","nameLocation":"1618:6:41","nodeType":"VariableDeclaration","scope":11153,"src":"1611:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11070,"name":"uint96","nodeType":"ElementaryTypeName","src":"1611:6:41","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":11074,"mutability":"mutable","name":"merkleProof","nameLocation":"1654:11:41","nodeType":"VariableDeclaration","scope":11153,"src":"1635:30:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11072,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1635:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11073,"nodeType":"ArrayTypeName","src":"1635:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1579:93:41"},"returnParameters":{"id":11078,"nodeType":"ParameterList","parameters":[],"src":"1694:0:41"},"scope":11220,"src":"1563:703:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11170,"nodeType":"Block","src":"2350:89:41","statements":[{"expression":{"id":11164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11162,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10970,"src":"2361:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11163,"name":"newMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11155,"src":"2374:13:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2361:26:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11165,"nodeType":"ExpressionStatement","src":"2361:26:41"},{"eventCall":{"arguments":[{"id":11167,"name":"newMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11155,"src":"2417:13:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11166,"name":"MerkleRootSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10982,"src":"2403:13:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":11168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2403:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11169,"nodeType":"EmitStatement","src":"2398:33:41"}]},"functionSelector":"7cb64759","id":11171,"implemented":true,"kind":"function","modifiers":[{"id":11158,"kind":"modifierInvocation","modifierName":{"id":11157,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":772,"src":"2329:10:41"},"nodeType":"ModifierInvocation","src":"2329:10:41"},{"id":11160,"kind":"modifierInvocation","modifierName":{"id":11159,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"2340:9:41"},"nodeType":"ModifierInvocation","src":"2340:9:41"}],"name":"setMerkleRoot","nameLocation":"2283:13:41","nodeType":"FunctionDefinition","parameters":{"id":11156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11155,"mutability":"mutable","name":"newMerkleRoot","nameLocation":"2305:13:41","nodeType":"VariableDeclaration","scope":11171,"src":"2297:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2297:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2296:23:41"},"returnParameters":{"id":11161,"nodeType":"ParameterList","parameters":[],"src":"2350:0:41"},"scope":11220,"src":"2274:165:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11193,"nodeType":"Block","src":"2524:81:41","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":11186,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2558:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2558:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11188,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"2570:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11184,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11174,"src":"2543:5:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1469,"src":"2543:14:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2543:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":11190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2579:17:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":11183,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2535:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2535:62:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11192,"nodeType":"ExpressionStatement","src":"2535:62:41"}]},"functionSelector":"5705ae43","id":11194,"implemented":true,"kind":"function","modifiers":[{"id":11179,"kind":"modifierInvocation","modifierName":{"id":11178,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":772,"src":"2503:10:41"},"nodeType":"ModifierInvocation","src":"2503:10:41"},{"id":11181,"kind":"modifierInvocation","modifierName":{"id":11180,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"2514:9:41"},"nodeType":"ModifierInvocation","src":"2514:9:41"}],"name":"recover","nameLocation":"2456:7:41","nodeType":"FunctionDefinition","parameters":{"id":11177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11174,"mutability":"mutable","name":"token","nameLocation":"2471:5:41","nodeType":"VariableDeclaration","scope":11194,"src":"2464:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":11173,"nodeType":"UserDefinedTypeName","pathNode":{"id":11172,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"2464:6:41"},"referencedDeclaration":1502,"src":"2464:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":11176,"mutability":"mutable","name":"amount","nameLocation":"2486:6:41","nodeType":"VariableDeclaration","scope":11194,"src":"2478:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11175,"name":"uint256","nodeType":"ElementaryTypeName","src":"2478:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2463:30:41"},"returnParameters":{"id":11182,"nodeType":"ParameterList","parameters":[],"src":"2524:0:41"},"scope":11220,"src":"2447:158:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11202,"nodeType":"Block","src":"2649:27:41","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11199,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"2660:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2660:8:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11201,"nodeType":"ExpressionStatement","src":"2660:8:41"}]},"functionSelector":"8456cb59","id":11203,"implemented":true,"kind":"function","modifiers":[{"id":11197,"kind":"modifierInvocation","modifierName":{"id":11196,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"2639:9:41"},"nodeType":"ModifierInvocation","src":"2639:9:41"}],"name":"pause","nameLocation":"2622:5:41","nodeType":"FunctionDefinition","parameters":{"id":11195,"nodeType":"ParameterList","parameters":[],"src":"2627:2:41"},"returnParameters":{"id":11198,"nodeType":"ParameterList","parameters":[],"src":"2649:0:41"},"scope":11220,"src":"2613:63:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11218,"nodeType":"Block","src":"2722:90:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":11211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11209,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10970,"src":"2741:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30783030","id":11210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2755:4:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"2741:18:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6d65726b6c6520726f6f74206e6f7420736574","id":11212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2761:21:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156","typeString":"literal_string \"merkle root not set\""},"value":"merkle root not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156","typeString":"literal_string \"merkle root not set\""}],"id":11208,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2733:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2733:50:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11214,"nodeType":"ExpressionStatement","src":"2733:50:41"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11215,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":836,"src":"2794:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2794:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11217,"nodeType":"ExpressionStatement","src":"2794:10:41"}]},"functionSelector":"3f4ba83a","id":11219,"implemented":true,"kind":"function","modifiers":[{"id":11206,"kind":"modifierInvocation","modifierName":{"id":11205,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"2712:9:41"},"nodeType":"ModifierInvocation","src":"2712:9:41"}],"name":"unpause","nameLocation":"2693:7:41","nodeType":"FunctionDefinition","parameters":{"id":11204,"nodeType":"ParameterList","parameters":[],"src":"2700:2:41"},"returnParameters":{"id":11207,"nodeType":"ParameterList","parameters":[],"src":"2722:0:41"},"scope":11220,"src":"2684:128:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11221,"src":"490:2325:41","usedErrors":[]}],"src":"33:2784:41"},"id":41},"contracts/pangolin-token/MerkledropToStakingCompliant.sol":{"ast":{"absolutePath":"contracts/pangolin-token/MerkledropToStakingCompliant.sol","exportedSymbols":{"Context":[4686],"ECDSA":[5296],"IERC165":[5988],"IERC20":[1502],"IERC721":[3857],"IPangolinStakingPositions":[11238],"Math":[6853],"MerkleProof":[5952],"MerkledropToStakingCompliant":[11573],"Ownable":[651],"Pausable":[837],"Strings":[4935]},"id":11574,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11222,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"33:23:42"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":11223,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11574,"sourceUnit":1503,"src":"60:56:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":11224,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11574,"sourceUnit":3858,"src":"118:58:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":11225,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11574,"sourceUnit":838,"src":"178:55:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","file":"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol","id":11226,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11574,"sourceUnit":5953,"src":"235:68:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":11227,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11574,"sourceUnit":5297,"src":"305:62:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":11228,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11574,"sourceUnit":652,"src":"369:52:42","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11229,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":3857,"src":"464:7:42"},"id":11230,"nodeType":"InheritanceSpecifier","src":"464:7:42"}],"canonicalName":"IPangolinStakingPositions","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":11238,"linearizedBaseContracts":[11238,3857,5988],"name":"IPangolinStakingPositions","nameLocation":"435:25:42","nodeType":"ContractDefinition","nodes":[{"functionSelector":"a0712d68","id":11237,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"488:4:42","nodeType":"FunctionDefinition","parameters":{"id":11233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11232,"mutability":"mutable","name":"amount","nameLocation":"501:6:42","nodeType":"VariableDeclaration","scope":11237,"src":"493:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11231,"name":"uint256","nodeType":"ElementaryTypeName","src":"493:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"492:16:42"},"returnParameters":{"id":11236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11235,"mutability":"mutable","name":"positionId","nameLocation":"535:10:42","nodeType":"VariableDeclaration","scope":11237,"src":"527:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11234,"name":"uint256","nodeType":"ElementaryTypeName","src":"527:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"526:20:42"},"scope":11238,"src":"479:68:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11574,"src":"425:125:42","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":11239,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":651,"src":"595:7:42"},"id":11240,"nodeType":"InheritanceSpecifier","src":"595:7:42"},{"baseName":{"id":11241,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":837,"src":"604:8:42"},"id":11242,"nodeType":"InheritanceSpecifier","src":"604:8:42"}],"canonicalName":"MerkledropToStakingCompliant","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11573,"linearizedBaseContracts":[11573,837,651,4686],"name":"MerkledropToStakingCompliant","nameLocation":"563:28:42","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11245,"libraryName":{"id":11243,"name":"ECDSA","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"626:5:42"},"nodeType":"UsingForDirective","src":"620:24:42","typeName":{"id":11244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"636:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":11248,"libraryName":{"id":11246,"name":"ECDSA","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"656:5:42"},"nodeType":"UsingForDirective","src":"650:22:42","typeName":{"id":11247,"name":"bytes","nodeType":"ElementaryTypeName","src":"666:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"constant":false,"functionSelector":"71417b32","id":11252,"mutability":"mutable","name":"claimedAmounts","nameLocation":"714:14:42","nodeType":"VariableDeclaration","scope":11573,"src":"680:48:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"},"typeName":{"id":11251,"keyType":{"id":11249,"name":"address","nodeType":"ElementaryTypeName","src":"688:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"680:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"},"valueType":{"id":11250,"name":"uint96","nodeType":"ElementaryTypeName","src":"699:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}},"visibility":"public"},{"constant":false,"functionSelector":"9bab65b8","id":11255,"mutability":"immutable","name":"PNG","nameLocation":"759:3:42","nodeType":"VariableDeclaration","scope":11573,"src":"735:27:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":11254,"nodeType":"UserDefinedTypeName","pathNode":{"id":11253,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"735:6:42"},"referencedDeclaration":1502,"src":"735:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"public"},{"constant":false,"functionSelector":"33c88ff6","id":11258,"mutability":"immutable","name":"SAR","nameLocation":"812:3:42","nodeType":"VariableDeclaration","scope":11573,"src":"769:46:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$11238","typeString":"contract IPangolinStakingPositions"},"typeName":{"id":11257,"nodeType":"UserDefinedTypeName","pathNode":{"id":11256,"name":"IPangolinStakingPositions","nodeType":"IdentifierPath","referencedDeclaration":11238,"src":"769:25:42"},"referencedDeclaration":11238,"src":"769:25:42","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$11238","typeString":"contract IPangolinStakingPositions"}},"visibility":"public"},{"constant":false,"functionSelector":"2eb4a7ab","id":11260,"mutability":"mutable","name":"merkleRoot","nameLocation":"837:10:42","nodeType":"VariableDeclaration","scope":11573,"src":"822:25:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"0b22f24a","id":11263,"mutability":"mutable","name":"complianceMessage","nameLocation":"868:17:42","nodeType":"VariableDeclaration","scope":11573,"src":"854:245:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":11261,"name":"string","nodeType":"ElementaryTypeName","src":"854:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4279207369676e696e672074686973207472616e73616374696f6e2c2049206865726562792061636b6e6f776c656467652074686174204920616d206e6f742061205553207265736964656e74206f7220636974697a656e2e2028436974697a656e73206f72207265736964656e7473206f662074686520556e6974656420537461746573206f6620416d657269636120617265206e6f7420616c6c6f77656420746f207468652050534220746f6b656e2061697264726f702064756520746f206170706c696361626c65206c61772e29","id":11262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"888:211:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a5bd6eb2150b4b56021a6997b515c99940ba92321c44b31f62d39290ef846e9","typeString":"literal_string \"By signing this transaction, I hereby acknowledge that I am not a US resident or citizen. (Citizens or residents of the United States of America are not allowed to the PSB token airdrop due to applicable law.)\""},"value":"By signing this transaction, I hereby acknowledge that I am not a US resident or citizen. (Citizens or residents of the United States of America are not allowed to the PSB token airdrop due to applicable law.)"},"visibility":"public"},{"constant":false,"functionSelector":"2d2069ec","id":11271,"mutability":"mutable","name":"complianceHash","nameLocation":"1121:14:42","nodeType":"VariableDeclaration","scope":11573,"src":"1106:81:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1106:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":11267,"name":"complianceMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11263,"src":"1144:17:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":11266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1138:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11265,"name":"bytes","nodeType":"ElementaryTypeName","src":"1138:5:42","typeDescriptions":{}}},"id":11268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":11269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"1138:47:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"anonymous":false,"eventSelector":"f9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab7","id":11279,"name":"Claimed","nameLocation":"1202:7:42","nodeType":"EventDefinition","parameters":{"id":11278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11273,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1226:4:42","nodeType":"VariableDeclaration","scope":11279,"src":"1210:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11272,"name":"address","nodeType":"ElementaryTypeName","src":"1210:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11275,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1248:2:42","nodeType":"VariableDeclaration","scope":11279,"src":"1232:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11274,"name":"address","nodeType":"ElementaryTypeName","src":"1232:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11277,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"1267:6:42","nodeType":"VariableDeclaration","scope":11279,"src":"1252:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11276,"name":"uint96","nodeType":"ElementaryTypeName","src":"1252:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1209:65:42"},"src":"1196:79:42"},{"anonymous":false,"eventSelector":"42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b","id":11283,"name":"MerkleRootSet","nameLocation":"1287:13:42","nodeType":"EventDefinition","parameters":{"id":11282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11281,"indexed":true,"mutability":"mutable","name":"newMerkleRoot","nameLocation":"1317:13:42","nodeType":"VariableDeclaration","scope":11283,"src":"1301:29:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1301:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1300:31:42"},"src":"1281:51:42"},{"anonymous":false,"eventSelector":"e8d6349745d718fbb56b30e41d99dbe12fc69f0a8d7401dac98476504c027a43","id":11289,"name":"NewComplianceMessage","nameLocation":"1344:20:42","nodeType":"EventDefinition","parameters":{"id":11288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11285,"indexed":true,"mutability":"mutable","name":"newComplianceHash","nameLocation":"1381:17:42","nodeType":"VariableDeclaration","scope":11289,"src":"1365:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1365:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11287,"indexed":false,"mutability":"mutable","name":"newComplianceMessage","nameLocation":"1407:20:42","nodeType":"VariableDeclaration","scope":11289,"src":"1400:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11286,"name":"string","nodeType":"ElementaryTypeName","src":"1400:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1364:64:42"},"src":"1338:91:42"},{"body":{"id":11357,"nodeType":"Block","src":"1519:468:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":11299,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11291,"src":"1538:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1538:17:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1538:24:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1566:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1538:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420746f6b656e2061646472657373","id":11304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1569:23:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488","typeString":"literal_string \"invalid token address\""},"value":"invalid token address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488","typeString":"literal_string \"invalid token address\""}],"id":11298,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1530:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1530:63:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11306,"nodeType":"ExpressionStatement","src":"1530:63:42"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":11308,"name":"stakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"1612:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1612:21:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1612:28:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1644:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1612:33:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c6964207374616b696e672061646472657373","id":11313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1647:25:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae","typeString":"literal_string \"invalid staking address\""},"value":"invalid staking address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae","typeString":"literal_string \"invalid staking address\""}],"id":11307,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1604:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1604:69:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11315,"nodeType":"ExpressionStatement","src":"1604:69:42"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11317,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"1692:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1716:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1708:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11318,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:42","typeDescriptions":{}}},"id":11321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1708:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1692:26:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420696e697469616c206f776e6572","id":11323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1720:23:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427","typeString":"literal_string \"invalid initial owner\""},"value":"invalid initial owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427","typeString":"literal_string \"invalid initial owner\""}],"id":11316,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1684:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1684:60:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11325,"nodeType":"ExpressionStatement","src":"1684:60:42"},{"expression":{"arguments":[{"id":11327,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"1774:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11326,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"1755:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1755:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11329,"nodeType":"ExpressionStatement","src":"1755:32:42"},{"expression":{"arguments":[{"id":11334,"name":"stakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"1827:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":11337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1850:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11336,"name":"uint256","nodeType":"ElementaryTypeName","src":"1850:7:42","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11335,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1845:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1845:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1845:17:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11331,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11291,"src":"1805:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11330,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1798:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":11332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1798:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":11333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"1798:28:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1798:65:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11341,"nodeType":"ExpressionStatement","src":"1798:65:42"},{"expression":{"id":11346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11342,"name":"PNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11255,"src":"1874:3:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11344,"name":"airdropToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11291,"src":"1887:12:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11343,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1880:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":11345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1880:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"src":"1874:26:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":11347,"nodeType":"ExpressionStatement","src":"1874:26:42"},{"expression":{"id":11352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11348,"name":"SAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11258,"src":"1911:3:42","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$11238","typeString":"contract IPangolinStakingPositions"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11350,"name":"stakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"1943:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11349,"name":"IPangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11238,"src":"1917:25:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinStakingPositions_$11238_$","typeString":"type(contract IPangolinStakingPositions)"}},"id":11351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1917:43:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$11238","typeString":"contract IPangolinStakingPositions"}},"src":"1911:49:42","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$11238","typeString":"contract IPangolinStakingPositions"}},"id":11353,"nodeType":"ExpressionStatement","src":"1911:49:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11354,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"1971:6:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1971:8:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11356,"nodeType":"ExpressionStatement","src":"1971:8:42"}]},"id":11358,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11291,"mutability":"mutable","name":"airdropToken","nameLocation":"1457:12:42","nodeType":"VariableDeclaration","scope":11358,"src":"1449:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11290,"name":"address","nodeType":"ElementaryTypeName","src":"1449:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11293,"mutability":"mutable","name":"stakingPositions","nameLocation":"1479:16:42","nodeType":"VariableDeclaration","scope":11358,"src":"1471:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11292,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11295,"mutability":"mutable","name":"initialOwner","nameLocation":"1505:12:42","nodeType":"VariableDeclaration","scope":11358,"src":"1497:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11294,"name":"address","nodeType":"ElementaryTypeName","src":"1497:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1448:70:42"},"returnParameters":{"id":11297,"nodeType":"ParameterList","parameters":[],"src":"1519:0:42"},"scope":11573,"src":"1437:550:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11376,"nodeType":"Block","src":"2126:70:42","statements":[{"expression":{"arguments":[{"expression":{"id":11369,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2145:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2145:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11371,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11360,"src":"2157:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":11372,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11363,"src":"2165:11:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":11373,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11365,"src":"2178:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":11368,"name":"claimTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11476,"src":"2137:7:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint96_$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint96,bytes32[] calldata,bytes calldata)"}},"id":11374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2137:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11375,"nodeType":"ExpressionStatement","src":"2137:51:42"}]},"functionSelector":"c13f573e","id":11377,"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"2004:5:42","nodeType":"FunctionDefinition","parameters":{"id":11366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11360,"mutability":"mutable","name":"amount","nameLocation":"2027:6:42","nodeType":"VariableDeclaration","scope":11377,"src":"2020:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11359,"name":"uint96","nodeType":"ElementaryTypeName","src":"2020:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":11363,"mutability":"mutable","name":"merkleProof","nameLocation":"2063:11:42","nodeType":"VariableDeclaration","scope":11377,"src":"2044:30:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2044:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11362,"nodeType":"ArrayTypeName","src":"2044:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":11365,"mutability":"mutable","name":"signature","nameLocation":"2100:9:42","nodeType":"VariableDeclaration","scope":11377,"src":"2085:24:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11364,"name":"bytes","nodeType":"ElementaryTypeName","src":"2085:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2009:107:42"},"returnParameters":{"id":11367,"nodeType":"ParameterList","parameters":[],"src":"2126:0:42"},"scope":11573,"src":"1995:201:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11475,"nodeType":"Block","src":"2370:671:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11394,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11386,"src":"2412:9:42","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11392,"name":"complianceHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11271,"src":"2389:14:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":5062,"src":"2389:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":11395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2389:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":11396,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2426:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2426:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2389:47:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420636f6d706c69616e6365207369676e6174757265","id":11399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2438:30:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_174513475f9c53bc5b2e1ee6a828adc62c13c5dd0a72290fb622361272707df6","typeString":"literal_string \"invalid compliance signature\""},"value":"invalid compliance signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_174513475f9c53bc5b2e1ee6a828adc62c13c5dd0a72290fb622361272707df6","typeString":"literal_string \"invalid compliance signature\""}],"id":11391,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2381:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2381:88:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11401,"nodeType":"ExpressionStatement","src":"2381:88:42"},{"assignments":[11403],"declarations":[{"constant":false,"id":11403,"mutability":"mutable","name":"previouslyClaimed","nameLocation":"2487:17:42","nodeType":"VariableDeclaration","scope":11475,"src":"2480:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11402,"name":"uint96","nodeType":"ElementaryTypeName","src":"2480:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":11408,"initialValue":{"baseExpression":{"id":11404,"name":"claimedAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11252,"src":"2507:14:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"}},"id":11407,"indexExpression":{"expression":{"id":11405,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2522:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2522:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2507:26:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"2480:53:42"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":11412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11410,"name":"previouslyClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11403,"src":"2552:17:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11411,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"2572:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2552:26:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7468696e6720746f20636c61696d","id":11413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2580:18:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d","typeString":"literal_string \"nothing to claim\""},"value":"nothing to claim"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d","typeString":"literal_string \"nothing to claim\""}],"id":11409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2544:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2544:55:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11415,"nodeType":"ExpressionStatement","src":"2544:55:42"},{"assignments":[11417],"declarations":[{"constant":false,"id":11417,"mutability":"mutable","name":"node","nameLocation":"2618:4:42","nodeType":"VariableDeclaration","scope":11475,"src":"2610:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2610:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11427,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":11422,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2650:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2650:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11424,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"2662:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":11420,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2633:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2633:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2633:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2625:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2625:7:42","typeDescriptions":{}}},"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2625:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2610:60:42"},{"expression":{"arguments":[{"arguments":[{"id":11431,"name":"merkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"2708:11:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":11432,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"2721:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11433,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11417,"src":"2733:4:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11429,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5952,"src":"2689:11:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$5952_$","typeString":"type(library MerkleProof)"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":5474,"src":"2689:18:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":11434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2689:49:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642070726f6f66","id":11435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2740:15:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""},"value":"invalid proof"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624","typeString":"literal_string \"invalid proof\""}],"id":11428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2681:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2681:75:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11437,"nodeType":"ExpressionStatement","src":"2681:75:42"},{"expression":{"id":11443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11438,"name":"claimedAmounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11252,"src":"2767:14:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint96_$","typeString":"mapping(address => uint96)"}},"id":11441,"indexExpression":{"expression":{"id":11439,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2782:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2782:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2767:26:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11442,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"2796:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2767:35:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":11444,"nodeType":"ExpressionStatement","src":"2767:35:42"},{"id":11449,"nodeType":"UncheckedBlock","src":"2813:64:42","statements":[{"expression":{"id":11447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11445,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"2838:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":11446,"name":"previouslyClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11403,"src":"2848:17:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2838:27:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":11448,"nodeType":"ExpressionStatement","src":"2838:27:42"}]},{"assignments":[11451],"declarations":[{"constant":false,"id":11451,"mutability":"mutable","name":"positionId","nameLocation":"2895:10:42","nodeType":"VariableDeclaration","scope":11475,"src":"2887:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11450,"name":"uint256","nodeType":"ElementaryTypeName","src":"2887:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11456,"initialValue":{"arguments":[{"id":11454,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"2917:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"}],"expression":{"id":11452,"name":"SAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11258,"src":"2908:3:42","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$11238","typeString":"contract IPangolinStakingPositions"}},"id":11453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":11237,"src":"2908:8:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) external returns (uint256)"}},"id":11455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2908:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2887:37:42"},{"expression":{"arguments":[{"arguments":[{"id":11462,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2964:4:42","typeDescriptions":{"typeIdentifier":"t_contract$_MerkledropToStakingCompliant_$11573","typeString":"contract MerkledropToStakingCompliant"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MerkledropToStakingCompliant_$11573","typeString":"contract MerkledropToStakingCompliant"}],"id":11461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2956:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11460,"name":"address","nodeType":"ElementaryTypeName","src":"2956:7:42","typeDescriptions":{}}},"id":11463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11464,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11379,"src":"2971:2:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11465,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11451,"src":"2975:10:42","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":11457,"name":"SAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11258,"src":"2935:3:42","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$11238","typeString":"contract IPangolinStakingPositions"}},"id":11459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":3812,"src":"2935:20:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":11466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2935:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11467,"nodeType":"ExpressionStatement","src":"2935:51:42"},{"eventCall":{"arguments":[{"expression":{"id":11469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3010:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3010:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11471,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11379,"src":"3022:2:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11472,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11381,"src":"3026:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":11468,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"3002:7:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint96_$returns$__$","typeString":"function (address,address,uint96)"}},"id":11473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3002:31:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11474,"nodeType":"EmitStatement","src":"2997:36:42"}]},"functionSelector":"c1b0eb94","id":11476,"implemented":true,"kind":"function","modifiers":[{"id":11389,"kind":"modifierInvocation","modifierName":{"id":11388,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":764,"src":"2356:13:42"},"nodeType":"ModifierInvocation","src":"2356:13:42"}],"name":"claimTo","nameLocation":"2213:7:42","nodeType":"FunctionDefinition","parameters":{"id":11387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11379,"mutability":"mutable","name":"to","nameLocation":"2239:2:42","nodeType":"VariableDeclaration","scope":11476,"src":"2231:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11378,"name":"address","nodeType":"ElementaryTypeName","src":"2231:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11381,"mutability":"mutable","name":"amount","nameLocation":"2259:6:42","nodeType":"VariableDeclaration","scope":11476,"src":"2252:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11380,"name":"uint96","nodeType":"ElementaryTypeName","src":"2252:6:42","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":11384,"mutability":"mutable","name":"merkleProof","nameLocation":"2295:11:42","nodeType":"VariableDeclaration","scope":11476,"src":"2276:30:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2276:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11383,"nodeType":"ArrayTypeName","src":"2276:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":11386,"mutability":"mutable","name":"signature","nameLocation":"2332:9:42","nodeType":"VariableDeclaration","scope":11476,"src":"2317:24:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11385,"name":"bytes","nodeType":"ElementaryTypeName","src":"2317:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2220:128:42"},"returnParameters":{"id":11390,"nodeType":"ParameterList","parameters":[],"src":"2370:0:42"},"scope":11573,"src":"2204:837:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11505,"nodeType":"Block","src":"3136:272:42","statements":[{"assignments":[11484],"declarations":[{"constant":false,"id":11484,"mutability":"mutable","name":"newComplianceHash","nameLocation":"3155:17:42","nodeType":"VariableDeclaration","scope":11505,"src":"3147:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3147:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11491,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":11487,"name":"newComplianceMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"3181:20:42","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3175:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11485,"name":"bytes","nodeType":"ElementaryTypeName","src":"3175:5:42","typeDescriptions":{}}},"id":11488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3175:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":11489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"3175:50:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3175:52:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3147:80:42"},{"expression":{"id":11494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11492,"name":"complianceHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11271,"src":"3238:14:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11493,"name":"newComplianceHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"3255:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3238:34:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11495,"nodeType":"ExpressionStatement","src":"3238:34:42"},{"expression":{"id":11498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11496,"name":"complianceMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11263,"src":"3283:17:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11497,"name":"newComplianceMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"3303:20:42","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"3283:40:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":11499,"nodeType":"ExpressionStatement","src":"3283:40:42"},{"eventCall":{"arguments":[{"id":11501,"name":"newComplianceHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"3360:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11502,"name":"newComplianceMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"3379:20:42","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":11500,"name":"NewComplianceMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11289,"src":"3339:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory)"}},"id":11503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3339:61:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11504,"nodeType":"EmitStatement","src":"3334:66:42"}]},"functionSelector":"be8cbeed","id":11506,"implemented":true,"kind":"function","modifiers":[{"id":11481,"kind":"modifierInvocation","modifierName":{"id":11480,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"3126:9:42"},"nodeType":"ModifierInvocation","src":"3126:9:42"}],"name":"setComplianceMessage","nameLocation":"3058:20:42","nodeType":"FunctionDefinition","parameters":{"id":11479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11478,"mutability":"mutable","name":"newComplianceMessage","nameLocation":"3095:20:42","nodeType":"VariableDeclaration","scope":11506,"src":"3079:36:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11477,"name":"string","nodeType":"ElementaryTypeName","src":"3079:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3078:38:42"},"returnParameters":{"id":11482,"nodeType":"ParameterList","parameters":[],"src":"3136:0:42"},"scope":11573,"src":"3049:359:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11523,"nodeType":"Block","src":"3492:89:42","statements":[{"expression":{"id":11517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11515,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"3503:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11516,"name":"newMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11508,"src":"3516:13:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3503:26:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11518,"nodeType":"ExpressionStatement","src":"3503:26:42"},{"eventCall":{"arguments":[{"id":11520,"name":"newMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11508,"src":"3559:13:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11519,"name":"MerkleRootSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"3545:13:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3545:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11522,"nodeType":"EmitStatement","src":"3540:33:42"}]},"functionSelector":"7cb64759","id":11524,"implemented":true,"kind":"function","modifiers":[{"id":11511,"kind":"modifierInvocation","modifierName":{"id":11510,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":772,"src":"3471:10:42"},"nodeType":"ModifierInvocation","src":"3471:10:42"},{"id":11513,"kind":"modifierInvocation","modifierName":{"id":11512,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"3482:9:42"},"nodeType":"ModifierInvocation","src":"3482:9:42"}],"name":"setMerkleRoot","nameLocation":"3425:13:42","nodeType":"FunctionDefinition","parameters":{"id":11509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11508,"mutability":"mutable","name":"newMerkleRoot","nameLocation":"3447:13:42","nodeType":"VariableDeclaration","scope":11524,"src":"3439:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3439:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3438:23:42"},"returnParameters":{"id":11514,"nodeType":"ParameterList","parameters":[],"src":"3492:0:42"},"scope":11573,"src":"3416:165:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11546,"nodeType":"Block","src":"3666:81:42","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":11539,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3700:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3700:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11541,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"3712:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11537,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11527,"src":"3685:5:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":11538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1469,"src":"3685:14:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3685:34:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":11543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3721:17:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":11536,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3677:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3677:62:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11545,"nodeType":"ExpressionStatement","src":"3677:62:42"}]},"functionSelector":"5705ae43","id":11547,"implemented":true,"kind":"function","modifiers":[{"id":11532,"kind":"modifierInvocation","modifierName":{"id":11531,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":772,"src":"3645:10:42"},"nodeType":"ModifierInvocation","src":"3645:10:42"},{"id":11534,"kind":"modifierInvocation","modifierName":{"id":11533,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"3656:9:42"},"nodeType":"ModifierInvocation","src":"3656:9:42"}],"name":"recover","nameLocation":"3598:7:42","nodeType":"FunctionDefinition","parameters":{"id":11530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11527,"mutability":"mutable","name":"token","nameLocation":"3613:5:42","nodeType":"VariableDeclaration","scope":11547,"src":"3606:12:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":11526,"nodeType":"UserDefinedTypeName","pathNode":{"id":11525,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"3606:6:42"},"referencedDeclaration":1502,"src":"3606:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":11529,"mutability":"mutable","name":"amount","nameLocation":"3628:6:42","nodeType":"VariableDeclaration","scope":11547,"src":"3620:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11528,"name":"uint256","nodeType":"ElementaryTypeName","src":"3620:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3605:30:42"},"returnParameters":{"id":11535,"nodeType":"ParameterList","parameters":[],"src":"3666:0:42"},"scope":11573,"src":"3589:158:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11555,"nodeType":"Block","src":"3791:27:42","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11552,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"3802:6:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3802:8:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11554,"nodeType":"ExpressionStatement","src":"3802:8:42"}]},"functionSelector":"8456cb59","id":11556,"implemented":true,"kind":"function","modifiers":[{"id":11550,"kind":"modifierInvocation","modifierName":{"id":11549,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"3781:9:42"},"nodeType":"ModifierInvocation","src":"3781:9:42"}],"name":"pause","nameLocation":"3764:5:42","nodeType":"FunctionDefinition","parameters":{"id":11548,"nodeType":"ParameterList","parameters":[],"src":"3769:2:42"},"returnParameters":{"id":11551,"nodeType":"ParameterList","parameters":[],"src":"3791:0:42"},"scope":11573,"src":"3755:63:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11571,"nodeType":"Block","src":"3864:90:42","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":11564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11562,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"3883:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30783030","id":11563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3897:4:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"3883:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6d65726b6c6520726f6f74206e6f7420736574","id":11565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3903:21:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156","typeString":"literal_string \"merkle root not set\""},"value":"merkle root not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156","typeString":"literal_string \"merkle root not set\""}],"id":11561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3875:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3875:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11567,"nodeType":"ExpressionStatement","src":"3875:50:42"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11568,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":836,"src":"3936:8:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3936:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11570,"nodeType":"ExpressionStatement","src":"3936:10:42"}]},"functionSelector":"3f4ba83a","id":11572,"implemented":true,"kind":"function","modifiers":[{"id":11559,"kind":"modifierInvocation","modifierName":{"id":11558,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"3854:9:42"},"nodeType":"ModifierInvocation","src":"3854:9:42"}],"name":"unpause","nameLocation":"3835:7:42","nodeType":"FunctionDefinition","parameters":{"id":11557,"nodeType":"ParameterList","parameters":[],"src":"3842:2:42"},"returnParameters":{"id":11560,"nodeType":"ParameterList","parameters":[],"src":"3864:0:42"},"scope":11573,"src":"3826:128:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11574,"src":"554:3403:42","usedErrors":[]}],"src":"33:3926:42"},"id":42},"contracts/pangolin-token/Png.sol":{"ast":{"absolutePath":"contracts/pangolin-token/Png.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Context":[4686],"Counters":[4760],"ECDSA":[5296],"EIP712":[5450],"ERC165":[5976],"ERC20":[1424],"ERC20Burnable":[1546],"ERC20Permit":[2497],"ERC20Votes":[2244],"ERC20VotesComp":[2300],"EnumerableSet":[9007],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"IERC20":[1502],"IERC20Metadata":[2325],"IERC20Permit":[2533],"IVotes":[729],"Math":[6853],"Png":[11718],"SafeCast":[8394],"Strings":[4935]},"id":11719,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11575,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"33:23:43"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":11576,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11719,"sourceUnit":1425,"src":"60:55:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","id":11577,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11719,"sourceUnit":1547,"src":"117:74:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","id":11578,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11719,"sourceUnit":2498,"src":"193:78:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol","id":11579,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11719,"sourceUnit":2301,"src":"273:75:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","id":11580,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11719,"sourceUnit":441,"src":"350:68:43","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11581,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":1424,"src":"438:5:43"},"id":11582,"nodeType":"InheritanceSpecifier","src":"438:5:43"},{"baseName":{"id":11583,"name":"ERC20Burnable","nodeType":"IdentifierPath","referencedDeclaration":1546,"src":"445:13:43"},"id":11584,"nodeType":"InheritanceSpecifier","src":"445:13:43"},{"baseName":{"id":11585,"name":"ERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":2497,"src":"460:11:43"},"id":11586,"nodeType":"InheritanceSpecifier","src":"460:11:43"},{"baseName":{"id":11587,"name":"ERC20VotesComp","nodeType":"IdentifierPath","referencedDeclaration":2300,"src":"473:14:43"},"id":11588,"nodeType":"InheritanceSpecifier","src":"473:14:43"},{"baseName":{"id":11589,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":440,"src":"489:23:43"},"id":11590,"nodeType":"InheritanceSpecifier","src":"489:23:43"}],"canonicalName":"Png","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11718,"linearizedBaseContracts":[11718,440,315,5976,5988,538,513,2300,2244,2497,5450,2533,1546,1424,2325,1502,4686,729],"name":"Png","nameLocation":"431:3:43","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"d5391393","id":11595,"mutability":"constant","name":"MINTER_ROLE","nameLocation":"544:11:43","nodeType":"VariableDeclaration","scope":11718,"src":"520:62:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"520:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d494e5445525f524f4c45","id":11593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"568:13:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6","typeString":"literal_string \"MINTER_ROLE\""},"value":"MINTER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6","typeString":"literal_string \"MINTER_ROLE\""}],"id":11592,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"558:9:43","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"558:24:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"355274ea","id":11597,"mutability":"immutable","name":"cap","nameLocation":"614:3:43","nodeType":"VariableDeclaration","scope":11718,"src":"589:28:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11596,"name":"uint256","nodeType":"ElementaryTypeName","src":"589:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":11631,"nodeType":"Block","src":"775:119:43","statements":[{"expression":{"id":11617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11615,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11597,"src":"786:3:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11616,"name":"cap_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11599,"src":"792:4:43","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"786:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11618,"nodeType":"ExpressionStatement","src":"786:10:43"},{"expression":{"arguments":[{"expression":{"id":11620,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"813:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"813:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11622,"name":"preMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11601,"src":"825:7:43","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":11619,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[11699],"referencedDeclaration":11699,"src":"807:5:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"807:26:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11624,"nodeType":"ExpressionStatement","src":"807:26:43"},{"expression":{"arguments":[{"id":11626,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"855:18:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":11627,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"875:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"875:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11625,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"844:10:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":11629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"844:42:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11630,"nodeType":"ExpressionStatement","src":"844:42:43"}]},"id":11632,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11608,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11603,"src":"726:5:43","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11609,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11605,"src":"733:7:43","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":11610,"kind":"baseConstructorSpecifier","modifierName":{"id":11607,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":1424,"src":"720:5:43"},"nodeType":"ModifierInvocation","src":"720:21:43"},{"arguments":[{"id":11612,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11603,"src":"763:5:43","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":11613,"kind":"baseConstructorSpecifier","modifierName":{"id":11611,"name":"ERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":2497,"src":"751:11:43"},"nodeType":"ModifierInvocation","src":"751:18:43"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11599,"mutability":"mutable","name":"cap_","nameLocation":"645:4:43","nodeType":"VariableDeclaration","scope":11632,"src":"638:11:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11598,"name":"uint96","nodeType":"ElementaryTypeName","src":"638:6:43","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":11601,"mutability":"mutable","name":"preMint","nameLocation":"658:7:43","nodeType":"VariableDeclaration","scope":11632,"src":"651:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":11600,"name":"uint96","nodeType":"ElementaryTypeName","src":"651:6:43","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":11603,"mutability":"mutable","name":"name_","nameLocation":"681:5:43","nodeType":"VariableDeclaration","scope":11632,"src":"667:19:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11602,"name":"string","nodeType":"ElementaryTypeName","src":"667:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11605,"mutability":"mutable","name":"symbol_","nameLocation":"702:7:43","nodeType":"VariableDeclaration","scope":11632,"src":"688:21:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11604,"name":"string","nodeType":"ElementaryTypeName","src":"688:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"637:73:43"},"returnParameters":{"id":11614,"nodeType":"ParameterList","parameters":[],"src":"775:0:43"},"scope":11718,"src":"626:268:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11647,"nodeType":"Block","src":"975:36:43","statements":[{"expression":{"arguments":[{"id":11643,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11634,"src":"992:2:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11644,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11636,"src":"996:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11642,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[11699],"referencedDeclaration":11699,"src":"986:5:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"986:17:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11646,"nodeType":"ExpressionStatement","src":"986:17:43"}]},"functionSelector":"40c10f19","id":11648,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":11639,"name":"MINTER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11595,"src":"962:11:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11640,"kind":"modifierInvocation","modifierName":{"id":11638,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"953:8:43"},"nodeType":"ModifierInvocation","src":"953:21:43"}],"name":"mint","nameLocation":"911:4:43","nodeType":"FunctionDefinition","parameters":{"id":11637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11634,"mutability":"mutable","name":"to","nameLocation":"924:2:43","nodeType":"VariableDeclaration","scope":11648,"src":"916:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11633,"name":"address","nodeType":"ElementaryTypeName","src":"916:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11636,"mutability":"mutable","name":"amount","nameLocation":"936:6:43","nodeType":"VariableDeclaration","scope":11648,"src":"928:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11635,"name":"uint256","nodeType":"ElementaryTypeName","src":"928:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"915:28:43"},"returnParameters":{"id":11641,"nodeType":"ParameterList","parameters":[],"src":"975:0:43"},"scope":11718,"src":"902:109:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2299],"body":{"id":11659,"nodeType":"Block","src":"1082:38:43","statements":[{"expression":{"arguments":[{"id":11656,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11597,"src":"1108:3:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1100:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":11654,"name":"uint224","nodeType":"ElementaryTypeName","src":"1100:7:43","typeDescriptions":{}}},"id":11657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1100:12:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":11653,"id":11658,"nodeType":"Return","src":"1093:19:43"}]},"id":11660,"implemented":true,"kind":"function","modifiers":[],"name":"_maxSupply","nameLocation":"1028:10:43","nodeType":"FunctionDefinition","overrides":{"id":11650,"nodeType":"OverrideSpecifier","overrides":[],"src":"1055:8:43"},"parameters":{"id":11649,"nodeType":"ParameterList","parameters":[],"src":"1038:2:43"},"returnParameters":{"id":11653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11660,"src":"1073:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":11651,"name":"uint224","nodeType":"ElementaryTypeName","src":"1073:7:43","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"1072:9:43"},"scope":11718,"src":"1019:101:43","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[1423,1990],"body":{"id":11680,"nodeType":"Block","src":"1259:62:43","statements":[{"expression":{"arguments":[{"id":11675,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11662,"src":"1296:4:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11676,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11664,"src":"1302:2:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11677,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11666,"src":"1306:6:43","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":11672,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1270:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Png_$11718_$","typeString":"type(contract super Png)"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_afterTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1990,"src":"1270:25:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1270:43:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11679,"nodeType":"ExpressionStatement","src":"1270:43:43"}]},"id":11681,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"1137:19:43","nodeType":"FunctionDefinition","overrides":{"id":11670,"nodeType":"OverrideSpecifier","overrides":[{"id":11668,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":1424,"src":"1235:5:43"},{"id":11669,"name":"ERC20Votes","nodeType":"IdentifierPath","referencedDeclaration":2244,"src":"1242:10:43"}],"src":"1226:27:43"},"parameters":{"id":11667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11662,"mutability":"mutable","name":"from","nameLocation":"1165:4:43","nodeType":"VariableDeclaration","scope":11681,"src":"1157:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11661,"name":"address","nodeType":"ElementaryTypeName","src":"1157:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11664,"mutability":"mutable","name":"to","nameLocation":"1179:2:43","nodeType":"VariableDeclaration","scope":11681,"src":"1171:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11663,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11666,"mutability":"mutable","name":"amount","nameLocation":"1191:6:43","nodeType":"VariableDeclaration","scope":11681,"src":"1183:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11665,"name":"uint256","nodeType":"ElementaryTypeName","src":"1183:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1156:42:43"},"returnParameters":{"id":11671,"nodeType":"ParameterList","parameters":[],"src":"1259:0:43"},"scope":11718,"src":"1128:193:43","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1241,1937],"body":{"id":11698,"nodeType":"Block","src":"1409:42:43","statements":[{"expression":{"arguments":[{"id":11694,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11683,"src":"1432:2:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11695,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11685,"src":"1436:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11691,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1420:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Png_$11718_$","typeString":"type(contract super Png)"}},"id":11693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_mint","nodeType":"MemberAccess","referencedDeclaration":1937,"src":"1420:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1420:23:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11697,"nodeType":"ExpressionStatement","src":"1420:23:43"}]},"id":11699,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"1338:5:43","nodeType":"FunctionDefinition","overrides":{"id":11689,"nodeType":"OverrideSpecifier","overrides":[{"id":11687,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":1424,"src":"1390:5:43"},{"id":11688,"name":"ERC20Votes","nodeType":"IdentifierPath","referencedDeclaration":2244,"src":"1397:10:43"}],"src":"1381:27:43"},"parameters":{"id":11686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11683,"mutability":"mutable","name":"to","nameLocation":"1352:2:43","nodeType":"VariableDeclaration","scope":11699,"src":"1344:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11682,"name":"address","nodeType":"ElementaryTypeName","src":"1344:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11685,"mutability":"mutable","name":"amount","nameLocation":"1364:6:43","nodeType":"VariableDeclaration","scope":11699,"src":"1356:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11684,"name":"uint256","nodeType":"ElementaryTypeName","src":"1356:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1343:28:43"},"returnParameters":{"id":11690,"nodeType":"ParameterList","parameters":[],"src":"1409:0:43"},"scope":11718,"src":"1329:122:43","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1313,1960],"body":{"id":11716,"nodeType":"Block","src":"1544:47:43","statements":[{"expression":{"arguments":[{"id":11712,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11701,"src":"1567:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11713,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"1576:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11709,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1555:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Png_$11718_$","typeString":"type(contract super Png)"}},"id":11711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":1960,"src":"1555:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1555:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11715,"nodeType":"ExpressionStatement","src":"1555:28:43"}]},"id":11717,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"1468:5:43","nodeType":"FunctionDefinition","overrides":{"id":11707,"nodeType":"OverrideSpecifier","overrides":[{"id":11705,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":1424,"src":"1525:5:43"},{"id":11706,"name":"ERC20Votes","nodeType":"IdentifierPath","referencedDeclaration":2244,"src":"1532:10:43"}],"src":"1516:27:43"},"parameters":{"id":11704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11701,"mutability":"mutable","name":"account","nameLocation":"1482:7:43","nodeType":"VariableDeclaration","scope":11717,"src":"1474:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11700,"name":"address","nodeType":"ElementaryTypeName","src":"1474:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11703,"mutability":"mutable","name":"amount","nameLocation":"1499:6:43","nodeType":"VariableDeclaration","scope":11717,"src":"1491:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11702,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1473:33:43"},"returnParameters":{"id":11708,"nodeType":"ParameterList","parameters":[],"src":"1544:0:43"},"scope":11718,"src":"1459:132:43","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11719,"src":"422:1172:43","usedErrors":[]}],"src":"33:1563:43"},"id":43},"contracts/pangolin-token/RegistrationCompliant.sol":{"ast":{"absolutePath":"contracts/pangolin-token/RegistrationCompliant.sol","exportedSymbols":{"Context":[4686],"ECDSA":[5296],"Math":[6853],"Ownable":[651],"Pausable":[837],"RegistrationCompliant":[11839],"Strings":[4935]},"id":11840,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11720,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"33:23:44"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":11721,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11840,"sourceUnit":652,"src":"60:52:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":11722,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11840,"sourceUnit":838,"src":"114:55:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":11723,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11840,"sourceUnit":5297,"src":"171:62:44","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11724,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":651,"src":"271:7:44"},"id":11725,"nodeType":"InheritanceSpecifier","src":"271:7:44"},{"baseName":{"id":11726,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":837,"src":"280:8:44"},"id":11727,"nodeType":"InheritanceSpecifier","src":"280:8:44"}],"canonicalName":"RegistrationCompliant","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11839,"linearizedBaseContracts":[11839,837,651,4686],"name":"RegistrationCompliant","nameLocation":"246:21:44","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11730,"libraryName":{"id":11728,"name":"ECDSA","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"302:5:44"},"nodeType":"UsingForDirective","src":"296:22:44","typeName":{"id":11729,"name":"bytes","nodeType":"ElementaryTypeName","src":"312:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":11733,"libraryName":{"id":11731,"name":"ECDSA","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"330:5:44"},"nodeType":"UsingForDirective","src":"324:24:44","typeName":{"id":11732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"constant":false,"functionSelector":"942e6bcf","id":11737,"mutability":"mutable","name":"registrations","nameLocation":"388:13:44","nodeType":"VariableDeclaration","scope":11839,"src":"356:45:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":11736,"keyType":{"id":11734,"name":"address","nodeType":"ElementaryTypeName","src":"364:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"356:24:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":11735,"name":"bool","nodeType":"ElementaryTypeName","src":"375:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":true,"functionSelector":"cbaf3496","id":11740,"mutability":"constant","name":"COMPLIANCE_MESSAGE","nameLocation":"433:18:44","nodeType":"VariableDeclaration","scope":11839,"src":"410:251:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11738,"name":"string","nodeType":"ElementaryTypeName","src":"410:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4279207369676e696e672074686973207472616e73616374696f6e2c2049206865726562792061636b6e6f776c656467652074686174204920616d206e6f742061205553207265736964656e74206f7220636974697a656e2e2028436974697a656e73206f72207265736964656e7473206f662074686520556e6974656420537461746573206f6620416d657269636120617265206e6f7420616c6c6f77656420746f2074686520746f6b656e2061697264726f702064756520746f206170706c696361626c65206c61772e29","id":11739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"454:207:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_7518f57c35ac14e88f5e308a474b53e3b7e853ef959a541dccbb93d0c778ef63","typeString":"literal_string \"By signing this transaction, I hereby acknowledge that I am not a US resident or citizen. (Citizens or residents of the United States of America are not allowed to the token airdrop due to applicable law.)\""},"value":"By signing this transaction, I hereby acknowledge that I am not a US resident or citizen. (Citizens or residents of the United States of America are not allowed to the token airdrop due to applicable law.)"},"visibility":"public"},{"constant":false,"functionSelector":"04b846c9","id":11742,"mutability":"immutable","name":"COMPLIANCE_HASH","nameLocation":"693:15:44","nodeType":"VariableDeclaration","scope":11839,"src":"668:40:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"668:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"anonymous":false,"eventSelector":"0a31ee9d46a828884b81003c8498156ea6aa15b9b54bdd0ef0b533d9eba57e55","id":11748,"name":"Registered","nameLocation":"723:10:44","nodeType":"EventDefinition","parameters":{"id":11747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11744,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"750:4:44","nodeType":"VariableDeclaration","scope":11748,"src":"734:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11743,"name":"address","nodeType":"ElementaryTypeName","src":"734:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11746,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"772:2:44","nodeType":"VariableDeclaration","scope":11748,"src":"756:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11745,"name":"address","nodeType":"ElementaryTypeName","src":"756:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"733:42:44"},"src":"717:59:44"},{"body":{"id":11766,"nodeType":"Block","src":"816:127:44","statements":[{"expression":{"id":11760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11753,"name":"COMPLIANCE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"827:15:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":11756,"name":"COMPLIANCE_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11740,"src":"851:18:44","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"845:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11754,"name":"bytes","nodeType":"ElementaryTypeName","src":"845:5:44","typeDescriptions":{}}},"id":11757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"845:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"845:48:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"845:50:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"827:68:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11761,"nodeType":"ExpressionStatement","src":"827:68:44"},{"expression":{"arguments":[{"id":11763,"name":"firstOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11750,"src":"924:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11762,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"906:17:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"906:29:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11765,"nodeType":"ExpressionStatement","src":"906:29:44"}]},"id":11767,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11750,"mutability":"mutable","name":"firstOwner","nameLocation":"804:10:44","nodeType":"VariableDeclaration","scope":11767,"src":"796:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11749,"name":"address","nodeType":"ElementaryTypeName","src":"796:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"795:20:44"},"returnParameters":{"id":11752,"nodeType":"ParameterList","parameters":[],"src":"816:0:44"},"scope":11839,"src":"784:159:44","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11819,"nodeType":"Block","src":"1071:341:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11777,"name":"destinationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"1090:18:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1120:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1112:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11778,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:44","typeDescriptions":{}}},"id":11781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1112:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1090:32:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c69642064657374696e6174696f6e","id":11783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1124:21:44","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":11776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1082:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1082:64:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11785,"nodeType":"ExpressionStatement","src":"1082:64:44"},{"expression":{"arguments":[{"id":11791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1165:26:44","subExpression":{"baseExpression":{"id":11787,"name":"registrations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11737,"src":"1166:13:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11790,"indexExpression":{"expression":{"id":11788,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1180:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1180:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1166:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c72656164792072656769737465726564","id":11792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1193:20:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2","typeString":"literal_string \"Already registered\""},"value":"Already registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2","typeString":"literal_string \"Already registered\""}],"id":11786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1157:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1157:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11794,"nodeType":"ExpressionStatement","src":"1157:57:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11798,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"1257:9:44","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11796,"name":"COMPLIANCE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"1233:15:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":5062,"src":"1233:23:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":11799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1233:34:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":11800,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1271:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1271:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1233:48:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964207369676e6174757265","id":11803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:19:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7","typeString":"literal_string \"Invalid signature\""},"value":"Invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7","typeString":"literal_string \"Invalid signature\""}],"id":11795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1225:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1225:78:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11805,"nodeType":"ExpressionStatement","src":"1225:78:44"},{"expression":{"id":11811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11806,"name":"registrations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11737,"src":"1314:13:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11809,"indexExpression":{"expression":{"id":11807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1328:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1328:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1314:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":11810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1342:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1314:32:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11812,"nodeType":"ExpressionStatement","src":"1314:32:44"},{"eventCall":{"arguments":[{"expression":{"id":11814,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1373:3:44","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1373:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11816,"name":"destinationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"1385:18:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11813,"name":"Registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11748,"src":"1362:10:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":11817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1362:42:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11818,"nodeType":"EmitStatement","src":"1357:47:44"}]},"functionSelector":"24b8fbf6","id":11820,"implemented":true,"kind":"function","modifiers":[{"id":11774,"kind":"modifierInvocation","modifierName":{"id":11773,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":764,"src":"1057:13:44"},"nodeType":"ModifierInvocation","src":"1057:13:44"}],"name":"register","nameLocation":"960:8:44","nodeType":"FunctionDefinition","parameters":{"id":11772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11769,"mutability":"mutable","name":"destinationAddress","nameLocation":"987:18:44","nodeType":"VariableDeclaration","scope":11820,"src":"979:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11768,"name":"address","nodeType":"ElementaryTypeName","src":"979:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11771,"mutability":"mutable","name":"signature","nameLocation":"1031:9:44","nodeType":"VariableDeclaration","scope":11820,"src":"1016:24:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11770,"name":"bytes","nodeType":"ElementaryTypeName","src":"1016:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"968:79:44"},"returnParameters":{"id":11775,"nodeType":"ParameterList","parameters":[],"src":"1071:0:44"},"scope":11839,"src":"951:461:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11828,"nodeType":"Block","src":"1456:27:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11825,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"1467:6:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1467:8:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11827,"nodeType":"ExpressionStatement","src":"1467:8:44"}]},"functionSelector":"8456cb59","id":11829,"implemented":true,"kind":"function","modifiers":[{"id":11823,"kind":"modifierInvocation","modifierName":{"id":11822,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"1446:9:44"},"nodeType":"ModifierInvocation","src":"1446:9:44"}],"name":"pause","nameLocation":"1429:5:44","nodeType":"FunctionDefinition","parameters":{"id":11821,"nodeType":"ParameterList","parameters":[],"src":"1434:2:44"},"returnParameters":{"id":11824,"nodeType":"ParameterList","parameters":[],"src":"1456:0:44"},"scope":11839,"src":"1420:63:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11837,"nodeType":"Block","src":"1529:29:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11834,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":836,"src":"1540:8:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":11835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1540:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11836,"nodeType":"ExpressionStatement","src":"1540:10:44"}]},"functionSelector":"3f4ba83a","id":11838,"implemented":true,"kind":"function","modifiers":[{"id":11832,"kind":"modifierInvocation","modifierName":{"id":11831,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"1519:9:44"},"nodeType":"ModifierInvocation","src":"1519:9:44"}],"name":"unpause","nameLocation":"1500:7:44","nodeType":"FunctionDefinition","parameters":{"id":11830,"nodeType":"ParameterList","parameters":[],"src":"1507:2:44"},"returnParameters":{"id":11833,"nodeType":"ParameterList","parameters":[],"src":"1529:0:44"},"scope":11839,"src":"1491:67:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11840,"src":"237:1324:44","usedErrors":[]}],"src":"33:1530:44"},"id":44},"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol":{"ast":{"absolutePath":"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol","exportedSymbols":{"EmissionDiversionFromPangoChefToPangolinStakingPositions":[11997],"IERC20":[1502],"IPangoChef":[11869]},"id":11998,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":11841,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"35:23:45"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":11842,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11998,"sourceUnit":1503,"src":"62:56:45","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPangoChef","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":11869,"linearizedBaseContracts":[11869],"name":"IPangoChef","nameLocation":"132:10:45","nodeType":"ContractDefinition","nodes":[{"functionSelector":"379607f5","id":11849,"implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"159:5:45","nodeType":"FunctionDefinition","parameters":{"id":11845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11844,"mutability":"mutable","name":"poolId","nameLocation":"173:6:45","nodeType":"VariableDeclaration","scope":11849,"src":"165:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11843,"name":"uint256","nodeType":"ElementaryTypeName","src":"165:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"164:16:45"},"returnParameters":{"id":11848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11847,"mutability":"mutable","name":"reward","nameLocation":"207:6:45","nodeType":"VariableDeclaration","scope":11849,"src":"199:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11846,"name":"uint256","nodeType":"ElementaryTypeName","src":"199:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"198:16:45"},"scope":11869,"src":"150:65:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d1af0c7d","id":11854,"implemented":false,"kind":"function","modifiers":[],"name":"rewardsToken","nameLocation":"232:12:45","nodeType":"FunctionDefinition","parameters":{"id":11850,"nodeType":"ParameterList","parameters":[],"src":"244:2:45"},"returnParameters":{"id":11853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11854,"src":"270:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11851,"name":"address","nodeType":"ElementaryTypeName","src":"270:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"269:9:45"},"scope":11869,"src":"223:56:45","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"74de4ec4","id":11859,"implemented":false,"kind":"function","modifiers":[],"name":"addReward","nameLocation":"296:9:45","nodeType":"FunctionDefinition","parameters":{"id":11857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11856,"mutability":"mutable","name":"amount","nameLocation":"314:6:45","nodeType":"VariableDeclaration","scope":11859,"src":"306:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11855,"name":"uint256","nodeType":"ElementaryTypeName","src":"306:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"305:16:45"},"returnParameters":{"id":11858,"nodeType":"ParameterList","parameters":[],"src":"330:0:45"},"scope":11869,"src":"287:44:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"91d14854","id":11868,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"348:7:45","nodeType":"FunctionDefinition","parameters":{"id":11864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11861,"mutability":"mutable","name":"role","nameLocation":"364:4:45","nodeType":"VariableDeclaration","scope":11868,"src":"356:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11860,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11863,"mutability":"mutable","name":"account","nameLocation":"378:7:45","nodeType":"VariableDeclaration","scope":11868,"src":"370:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11862,"name":"address","nodeType":"ElementaryTypeName","src":"370:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"355:31:45"},"returnParameters":{"id":11867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11868,"src":"410:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11865,"name":"bool","nodeType":"ElementaryTypeName","src":"410:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"409:6:45"},"scope":11869,"src":"339:77:45","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":11998,"src":"122:297:45","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"EmissionDiversionFromPangoChefToPangolinStakingPositions","contractDependencies":[],"contractKind":"contract","documentation":{"id":11870,"nodeType":"StructuredDocumentation","src":"423:33:45","text":"@author shung for Pangolin "},"fullyImplemented":true,"id":11997,"linearizedBaseContracts":[11997],"name":"EmissionDiversionFromPangoChefToPangolinStakingPositions","nameLocation":"467:56:45","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"1870510b","id":11873,"mutability":"immutable","name":"pangoChef","nameLocation":"559:9:45","nodeType":"VariableDeclaration","scope":11997,"src":"531:37:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"},"typeName":{"id":11872,"nodeType":"UserDefinedTypeName","pathNode":{"id":11871,"name":"IPangoChef","nodeType":"IdentifierPath","referencedDeclaration":11869,"src":"531:10:45"},"referencedDeclaration":11869,"src":"531:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"visibility":"public"},{"constant":false,"functionSelector":"af958ab3","id":11876,"mutability":"immutable","name":"pangolinStakingPositions","nameLocation":"603:24:45","nodeType":"VariableDeclaration","scope":11997,"src":"575:52:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"},"typeName":{"id":11875,"nodeType":"UserDefinedTypeName","pathNode":{"id":11874,"name":"IPangoChef","nodeType":"IdentifierPath","referencedDeclaration":11869,"src":"575:10:45"},"referencedDeclaration":11869,"src":"575:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"visibility":"public"},{"constant":false,"functionSelector":"d1af0c7d","id":11878,"mutability":"immutable","name":"rewardsToken","nameLocation":"659:12:45","nodeType":"VariableDeclaration","scope":11997,"src":"634:37:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11877,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"id":11883,"mutability":"constant","name":"FUNDER_ROLE","nameLocation":"703:11:45","nodeType":"VariableDeclaration","scope":11997,"src":"678:63:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"678:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"46554e4445525f524f4c45","id":11881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"727:13:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""},"value":"FUNDER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""}],"id":11880,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"717:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"717:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"body":{"id":11896,"nodeType":"Block","src":"772:113:45","statements":[{"expression":{"arguments":[{"arguments":[{"id":11888,"name":"FUNDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11883,"src":"824:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":11889,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"837:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"837:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11886,"name":"pangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"791:24:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":11868,"src":"791:32:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"791:57:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e617574686f72697a6564","id":11892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"850:14:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348","typeString":"literal_string \"unauthorized\""},"value":"unauthorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348","typeString":"literal_string \"unauthorized\""}],"id":11885,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"783:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"783:82:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11894,"nodeType":"ExpressionStatement","src":"783:82:45"},{"id":11895,"nodeType":"PlaceholderStatement","src":"876:1:45"}]},"id":11897,"name":"onlyFunder","nameLocation":"759:10:45","nodeType":"ModifierDefinition","parameters":{"id":11884,"nodeType":"ParameterList","parameters":[],"src":"769:2:45"},"src":"750:135:45","virtual":false,"visibility":"internal"},{"body":{"id":11960,"nodeType":"Block","src":"956:533:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":11905,"name":"newPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"975:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"975:17:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"975:24:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":11908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"975:29:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656d70747920636f6e7472616374","id":11910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1006:16:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5","typeString":"literal_string \"empty contract\""},"value":"empty contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5","typeString":"literal_string \"empty contract\""}],"id":11904,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"967:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"967:56:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11912,"nodeType":"ExpressionStatement","src":"967:56:45"},{"assignments":[11914],"declarations":[{"constant":false,"id":11914,"mutability":"mutable","name":"newRewardsToken","nameLocation":"1042:15:45","nodeType":"VariableDeclaration","scope":11960,"src":"1034:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11913,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11920,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":11916,"name":"newPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"1071:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11915,"name":"IPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"1060:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangoChef_$11869_$","typeString":"type(contract IPangoChef)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rewardsToken","nodeType":"MemberAccess","referencedDeclaration":11854,"src":"1060:37:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:39:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1034:65:45"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11922,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"1132:15:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":11924,"name":"newStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"1162:19:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11923,"name":"IPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"1151:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangoChef_$11869_$","typeString":"type(contract IPangoChef)"}},"id":11925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1151:31:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rewardsToken","nodeType":"MemberAccess","referencedDeclaration":11854,"src":"1151:44:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1151:46:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1132:65:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420616464726573736573","id":11929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1212:19:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_52eb8021f26f0b4451490d9507ae7a04cea9a9475edfdedbe0524e25cea77edd","typeString":"literal_string \"invalid addresses\""},"value":"invalid addresses"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_52eb8021f26f0b4451490d9507ae7a04cea9a9475edfdedbe0524e25cea77edd","typeString":"literal_string \"invalid addresses\""}],"id":11921,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1110:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1110:132:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11931,"nodeType":"ExpressionStatement","src":"1110:132:45"},{"expression":{"arguments":[{"id":11936,"name":"newStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"1285:19:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":11939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1311:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11938,"name":"uint256","nodeType":"ElementaryTypeName","src":"1311:7:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":11937,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1306:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1306:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":11941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1306:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":11933,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"1260:15:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11932,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1253:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":11934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1253:23:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":11935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"1253:31:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1253:71:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11943,"nodeType":"ExpressionStatement","src":"1253:71:45"},{"expression":{"id":11948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11944,"name":"pangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11873,"src":"1335:9:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11946,"name":"newPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"1358:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11945,"name":"IPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"1347:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangoChef_$11869_$","typeString":"type(contract IPangoChef)"}},"id":11947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1347:24:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"src":"1335:36:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11949,"nodeType":"ExpressionStatement","src":"1335:36:45"},{"expression":{"id":11954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11950,"name":"pangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"1382:24:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11952,"name":"newStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"1420:19:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11951,"name":"IPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"1409:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangoChef_$11869_$","typeString":"type(contract IPangoChef)"}},"id":11953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1409:31:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"src":"1382:58:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11955,"nodeType":"ExpressionStatement","src":"1382:58:45"},{"expression":{"id":11958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11956,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11878,"src":"1451:12:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11957,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11914,"src":"1466:15:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1451:30:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11959,"nodeType":"ExpressionStatement","src":"1451:30:45"}]},"id":11961,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11899,"mutability":"mutable","name":"newPangoChef","nameLocation":"913:12:45","nodeType":"VariableDeclaration","scope":11961,"src":"905:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11898,"name":"address","nodeType":"ElementaryTypeName","src":"905:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11901,"mutability":"mutable","name":"newStakingPositions","nameLocation":"935:19:45","nodeType":"VariableDeclaration","scope":11961,"src":"927:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11900,"name":"address","nodeType":"ElementaryTypeName","src":"927:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"904:51:45"},"returnParameters":{"id":11903,"nodeType":"ParameterList","parameters":[],"src":"956:0:45"},"scope":11997,"src":"893:596:45","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11981,"nodeType":"Block","src":"1560:112:45","statements":[{"assignments":[11969],"declarations":[{"constant":false,"id":11969,"mutability":"mutable","name":"amount","nameLocation":"1579:6:45","nodeType":"VariableDeclaration","scope":11981,"src":"1571:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11974,"initialValue":{"arguments":[{"id":11972,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"1604:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11970,"name":"pangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11873,"src":"1588:9:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":11849,"src":"1588:15:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) external returns (uint256)"}},"id":11973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1588:23:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1571:40:45"},{"expression":{"arguments":[{"id":11978,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"1657:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11975,"name":"pangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"1622:24:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addReward","nodeType":"MemberAccess","referencedDeclaration":11859,"src":"1622:34:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":11979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1622:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11980,"nodeType":"ExpressionStatement","src":"1622:42:45"}]},"functionSelector":"dab4ec95","id":11982,"implemented":true,"kind":"function","modifiers":[{"id":11966,"kind":"modifierInvocation","modifierName":{"id":11965,"name":"onlyFunder","nodeType":"IdentifierPath","referencedDeclaration":11897,"src":"1549:10:45"},"nodeType":"ModifierInvocation","src":"1549:10:45"}],"name":"claimAndAddReward","nameLocation":"1506:17:45","nodeType":"FunctionDefinition","parameters":{"id":11964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11963,"mutability":"mutable","name":"poolId","nameLocation":"1532:6:45","nodeType":"VariableDeclaration","scope":11982,"src":"1524:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"1524:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1523:16:45"},"returnParameters":{"id":11967,"nodeType":"ParameterList","parameters":[],"src":"1560:0:45"},"scope":11997,"src":"1497:175:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11995,"nodeType":"Block","src":"1744:61:45","statements":[{"expression":{"arguments":[{"id":11992,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11984,"src":"1790:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11989,"name":"pangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"1755:24:45","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$11869","typeString":"contract IPangoChef"}},"id":11991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addReward","nodeType":"MemberAccess","referencedDeclaration":11859,"src":"1755:34:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1755:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11994,"nodeType":"ExpressionStatement","src":"1755:42:45"}]},"functionSelector":"3c6b16ab","id":11996,"implemented":true,"kind":"function","modifiers":[{"id":11987,"kind":"modifierInvocation","modifierName":{"id":11986,"name":"onlyFunder","nodeType":"IdentifierPath","referencedDeclaration":11897,"src":"1733:10:45"},"nodeType":"ModifierInvocation","src":"1733:10:45"}],"name":"notifyRewardAmount","nameLocation":"1689:18:45","nodeType":"FunctionDefinition","parameters":{"id":11985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11984,"mutability":"mutable","name":"amount","nameLocation":"1716:6:45","nodeType":"VariableDeclaration","scope":11996,"src":"1708:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11983,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1707:16:45"},"returnParameters":{"id":11988,"nodeType":"ParameterList","parameters":[],"src":"1744:0:45"},"scope":11997,"src":"1680:125:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":11998,"src":"458:1350:45","usedErrors":[]}],"src":"35:1775:45"},"id":45},"contracts/staking-positions/GenericErrors.sol":{"ast":{"absolutePath":"contracts/staking-positions/GenericErrors.sol","exportedSymbols":{"GenericErrors":[12034]},"id":12035,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11999,"literals":["solidity","^","0.8",".7"],"nodeType":"PragmaDirective","src":"33:23:46"},{"abstract":false,"baseContracts":[],"canonicalName":"GenericErrors","contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"id":12034,"linearizedBaseContracts":[12034],"name":"GenericErrors","nameLocation":"70:13:46","nodeType":"ContractDefinition","nodes":[{"errorSelector":"0f2e5b6c","id":12001,"name":"Locked","nameLocation":"97:6:46","nodeType":"ErrorDefinition","parameters":{"id":12000,"nodeType":"ParameterList","parameters":[],"src":"103:2:46"},"src":"91:15:46"},{"errorSelector":"ecdd1c29","id":12003,"name":"TooLate","nameLocation":"118:7:46","nodeType":"ErrorDefinition","parameters":{"id":12002,"nodeType":"ParameterList","parameters":[],"src":"125:2:46"},"src":"112:16:46"},{"errorSelector":"085de625","id":12005,"name":"TooEarly","nameLocation":"140:8:46","nodeType":"ErrorDefinition","parameters":{"id":12004,"nodeType":"ParameterList","parameters":[],"src":"148:2:46"},"src":"134:17:46"},{"errorSelector":"35278d12","id":12007,"name":"Overflow","nameLocation":"163:8:46","nodeType":"ErrorDefinition","parameters":{"id":12006,"nodeType":"ParameterList","parameters":[],"src":"171:2:46"},"src":"157:17:46"},{"errorSelector":"49a0cb3a","id":12009,"name":"NoEffect","nameLocation":"186:8:46","nodeType":"ErrorDefinition","parameters":{"id":12008,"nodeType":"ParameterList","parameters":[],"src":"194:2:46"},"src":"180:17:46"},{"errorSelector":"4a0bd986","id":12011,"name":"NullInput","nameLocation":"209:9:46","nodeType":"ErrorDefinition","parameters":{"id":12010,"nodeType":"ParameterList","parameters":[],"src":"218:2:46"},"src":"203:18:46"},{"errorSelector":"caccb6d9","id":12013,"name":"Underflow","nameLocation":"233:9:46","nodeType":"ErrorDefinition","parameters":{"id":12012,"nodeType":"ParameterList","parameters":[],"src":"242:2:46"},"src":"227:18:46"},{"errorSelector":"b9688461","id":12015,"name":"InvalidType","nameLocation":"257:11:46","nodeType":"ErrorDefinition","parameters":{"id":12014,"nodeType":"ParameterList","parameters":[],"src":"268:2:46"},"src":"251:20:46"},{"errorSelector":"b4120f14","id":12017,"name":"OutOfBounds","nameLocation":"283:11:46","nodeType":"ErrorDefinition","parameters":{"id":12016,"nodeType":"ParameterList","parameters":[],"src":"294:2:46"},"src":"277:20:46"},{"errorSelector":"c1ab6dc1","id":12019,"name":"InvalidToken","nameLocation":"309:12:46","nodeType":"ErrorDefinition","parameters":{"id":12018,"nodeType":"ParameterList","parameters":[],"src":"321:2:46"},"src":"303:21:46"},{"errorSelector":"4c9b2c59","id":12021,"name":"HighSlippage","nameLocation":"336:12:46","nodeType":"ErrorDefinition","parameters":{"id":12020,"nodeType":"ParameterList","parameters":[],"src":"348:2:46"},"src":"330:21:46"},{"errorSelector":"2c5211c6","id":12023,"name":"InvalidAmount","nameLocation":"363:13:46","nodeType":"ErrorDefinition","parameters":{"id":12022,"nodeType":"ParameterList","parameters":[],"src":"376:2:46"},"src":"357:22:46"},{"errorSelector":"bfa871c5","id":12025,"name":"FailedTransfer","nameLocation":"391:14:46","nodeType":"ErrorDefinition","parameters":{"id":12024,"nodeType":"ParameterList","parameters":[],"src":"405:2:46"},"src":"385:23:46"},{"errorSelector":"9430a17e","id":12027,"name":"NonExistentToken","nameLocation":"420:16:46","nodeType":"ErrorDefinition","parameters":{"id":12026,"nodeType":"ParameterList","parameters":[],"src":"436:2:46"},"src":"414:25:46"},{"errorSelector":"38c58562","id":12029,"name":"UnprivilegedCaller","nameLocation":"451:18:46","nodeType":"ErrorDefinition","parameters":{"id":12028,"nodeType":"ParameterList","parameters":[],"src":"469:2:46"},"src":"445:27:46"},{"errorSelector":"f4d678b8","id":12031,"name":"InsufficientBalance","nameLocation":"484:19:46","nodeType":"ErrorDefinition","parameters":{"id":12030,"nodeType":"ParameterList","parameters":[],"src":"503:2:46"},"src":"478:28:46"},{"errorSelector":"568efce2","id":12033,"name":"MismatchedArrayLengths","nameLocation":"518:22:46","nodeType":"ErrorDefinition","parameters":{"id":12032,"nodeType":"ParameterList","parameters":[],"src":"540:2:46"},"src":"512:31:46"}],"scope":12035,"src":"60:486:46","usedErrors":[12001,12003,12005,12007,12009,12011,12013,12015,12017,12019,12021,12023,12025,12027,12029,12031,12033]}],"src":"33:515:46"},"id":46},"contracts/staking-positions/PangoChef.sol":{"ast":{"absolutePath":"contracts/staking-positions/PangoChef.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Context":[4686],"ERC165":[5976],"ERC20":[9395],"EnumerableSet":[9007],"GenericErrors":[12034],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"IPangolinFactory":[18099],"IPangolinPair":[18128],"IRewarder":[18144],"IWAVAX":[18150],"Math":[6853],"PangoChef":[14244],"PangoChefFunding":[15015],"ReentrancyGuard":[16730],"SafeExternalCalls":[12066],"SafeTransferLib":[9480],"Strings":[4935]},"id":14245,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":12036,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"35:23:47"},{"absolutePath":"contracts/staking-positions/PangoChefFunding.sol","file":"./PangoChefFunding.sol","id":12037,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14245,"sourceUnit":15016,"src":"62:32:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/ReentrancyGuard.sol","file":"./ReentrancyGuard.sol","id":12038,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14245,"sourceUnit":16731,"src":"96:31:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/interfaces/IWAVAX.sol","file":"./interfaces/IWAVAX.sol","id":12039,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14245,"sourceUnit":18151,"src":"131:33:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/interfaces/IPangolinFactory.sol","file":"./interfaces/IPangolinFactory.sol","id":12040,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14245,"sourceUnit":18100,"src":"166:43:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/interfaces/IPangolinPair.sol","file":"./interfaces/IPangolinPair.sol","id":12041,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14245,"sourceUnit":18129,"src":"211:40:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/interfaces/IRewarder.sol","file":"./interfaces/IRewarder.sol","id":12042,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14245,"sourceUnit":18145,"src":"253:36:47","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeExternalCalls","contractDependencies":[],"contractKind":"contract","documentation":{"id":12043,"nodeType":"StructuredDocumentation","src":"293:89:47","text":"@dev We call this contract with try/catch to figure out if pair is an actual pair. "},"fullyImplemented":true,"id":12066,"linearizedBaseContracts":[12066],"name":"SafeExternalCalls","nameLocation":"393:17:47","nodeType":"ContractDefinition","nodes":[{"body":{"id":12064,"nodeType":"Block","src":"507:86:47","statements":[{"expression":{"components":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12053,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12045,"src":"540:4:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12052,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"526:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$18128_$","typeString":"type(contract IPangolinPair)"}},"id":12054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"526:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$18128","typeString":"contract IPangolinPair"}},"id":12055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"token0","nodeType":"MemberAccess","referencedDeclaration":18106,"src":"526:26:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"526:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":12058,"name":"pair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12045,"src":"570:4:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12057,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"556:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$18128_$","typeString":"type(contract IPangolinPair)"}},"id":12059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"556:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$18128","typeString":"contract IPangolinPair"}},"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":18111,"src":"556:26:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"556:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12062,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"525:60:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"functionReturnParameters":12051,"id":12063,"nodeType":"Return","src":"518:67:47"}]},"functionSelector":"edcc0f90","id":12065,"implemented":true,"kind":"function","modifiers":[],"name":"getReserveTokenAddresses","nameLocation":"427:24:47","nodeType":"FunctionDefinition","parameters":{"id":12046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12045,"mutability":"mutable","name":"pair","nameLocation":"460:4:47","nodeType":"VariableDeclaration","scope":12065,"src":"452:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12044,"name":"address","nodeType":"ElementaryTypeName","src":"452:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"451:14:47"},"returnParameters":{"id":12051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12065,"src":"489:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"489:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12065,"src":"498:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12049,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"488:18:47"},"scope":12066,"src":"418:175:47","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":14245,"src":"384:212:47","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":12068,"name":"PangoChefFunding","nodeType":"IdentifierPath","referencedDeclaration":15015,"src":"842:16:47"},"id":12069,"nodeType":"InheritanceSpecifier","src":"842:16:47"},{"baseName":{"id":12070,"name":"ReentrancyGuard","nodeType":"IdentifierPath","referencedDeclaration":16730,"src":"860:15:47"},"id":12071,"nodeType":"InheritanceSpecifier","src":"860:15:47"}],"canonicalName":"PangoChef","contractDependencies":[12066],"contractKind":"contract","documentation":{"id":12067,"nodeType":"StructuredDocumentation","src":"600:218:47","text":" @title PangoChef\n @author Shung for Pangolin\n @notice PangoChef is a MiniChef alternative that utilizes the Sunshine and Rainbows algorithm\n         for distributing rewards from pools to stakers."},"fullyImplemented":true,"id":14244,"linearizedBaseContracts":[14244,16730,15015,12034,440,315,5976,5988,538,513,4686],"name":"PangoChef","nameLocation":"829:9:47","nodeType":"ContractDefinition","nodes":[{"global":false,"id":12075,"libraryName":{"id":12072,"name":"SafeTransferLib","nodeType":"IdentifierPath","referencedDeclaration":9480,"src":"889:15:47"},"nodeType":"UsingForDirective","src":"883:32:47","typeName":{"id":12074,"nodeType":"UserDefinedTypeName","pathNode":{"id":12073,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"909:5:47"},"referencedDeclaration":9395,"src":"909:5:47","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}},{"global":false,"id":12079,"libraryName":{"id":12076,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":9007,"src":"927:13:47"},"nodeType":"UsingForDirective","src":"921:46:47","typeName":{"id":12078,"nodeType":"UserDefinedTypeName","pathNode":{"id":12077,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"945:21:47"},"referencedDeclaration":8877,"src":"945:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"canonicalName":"PangoChef.PoolType","id":12083,"members":[{"id":12080,"name":"UNSET_POOL","nameLocation":"1066:10:47","nodeType":"EnumValue","src":"1066:10:47"},{"id":12081,"name":"ERC20_POOL","nameLocation":"1181:10:47","nodeType":"EnumValue","src":"1181:10:47"},{"id":12082,"name":"RELAYER_POOL","nameLocation":"1280:12:47","nodeType":"EnumValue","src":"1280:12:47"}],"name":"PoolType","nameLocation":"980:8:47","nodeType":"EnumDefinition","src":"975:324:47"},{"canonicalName":"PangoChef.StakeType","id":12087,"members":[{"id":12084,"name":"REGULAR","nameLocation":"1414:7:47","nodeType":"EnumValue","src":"1414:7:47"},{"id":12085,"name":"COMPOUND","nameLocation":"1657:8:47","nodeType":"EnumValue","src":"1657:8:47"},{"id":12086,"name":"COMPOUND_TO","nameLocation":"1809:11:47","nodeType":"EnumValue","src":"1809:11:47"}],"name":"StakeType","nameLocation":"1312:9:47","nodeType":"EnumDefinition","src":"1307:520:47"},{"canonicalName":"PangoChef.Slippage","id":12092,"members":[{"constant":false,"id":12089,"mutability":"mutable","name":"minPairAmount","nameLocation":"1954:13:47","nodeType":"VariableDeclaration","scope":12092,"src":"1946:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12088,"name":"uint256","nodeType":"ElementaryTypeName","src":"1946:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12091,"mutability":"mutable","name":"maxPairAmount","nameLocation":"2067:13:47","nodeType":"VariableDeclaration","scope":12092,"src":"2059:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12090,"name":"uint256","nodeType":"ElementaryTypeName","src":"2059:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Slippage","nameLocation":"1842:8:47","nodeType":"StructDefinition","scope":14244,"src":"1835:253:47","visibility":"public"},{"canonicalName":"PangoChef.ValueVariables","id":12097,"members":[{"constant":false,"id":12094,"mutability":"mutable","name":"balance","nameLocation":"2230:7:47","nodeType":"VariableDeclaration","scope":12097,"src":"2222:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":12093,"name":"uint104","nodeType":"ElementaryTypeName","src":"2222:7:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"},{"constant":false,"id":12096,"mutability":"mutable","name":"sumOfEntryTimes","nameLocation":"2328:15:47","nodeType":"VariableDeclaration","scope":12097,"src":"2320:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":12095,"name":"uint152","nodeType":"ElementaryTypeName","src":"2320:7:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"name":"ValueVariables","nameLocation":"2103:14:47","nodeType":"StructDefinition","scope":14244,"src":"2096:255:47","visibility":"public"},{"canonicalName":"PangoChef.RewardSummations","id":12102,"members":[{"constant":false,"id":12099,"mutability":"mutable","name":"idealPosition","nameLocation":"2945:13:47","nodeType":"VariableDeclaration","scope":12102,"src":"2937:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2937:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12101,"mutability":"mutable","name":"rewardPerValue","nameLocation":"3363:14:47","nodeType":"VariableDeclaration","scope":12102,"src":"3355:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12100,"name":"uint256","nodeType":"ElementaryTypeName","src":"3355:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardSummations","nameLocation":"2366:16:47","nodeType":"StructDefinition","scope":14244,"src":"2359:1026:47","visibility":"public"},{"canonicalName":"PangoChef.User","id":12117,"members":[{"constant":false,"id":12105,"mutability":"mutable","name":"valueVariables","nameLocation":"3526:14:47","nodeType":"VariableDeclaration","scope":12117,"src":"3511:29:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":12104,"nodeType":"UserDefinedTypeName","pathNode":{"id":12103,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"3511:14:47"},"referencedDeclaration":12097,"src":"3511:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"},{"constant":false,"id":12108,"mutability":"mutable","name":"rewardSummationsPaid","nameLocation":"3635:20:47","nodeType":"VariableDeclaration","scope":12117,"src":"3618:37:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":12107,"nodeType":"UserDefinedTypeName","pathNode":{"id":12106,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"3618:16:47"},"referencedDeclaration":12102,"src":"3618:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"},{"constant":false,"id":12110,"mutability":"mutable","name":"previousValues","nameLocation":"4232:14:47","nodeType":"VariableDeclaration","scope":12117,"src":"4224:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":12109,"name":"uint152","nodeType":"ElementaryTypeName","src":"4224:7:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"},{"constant":false,"id":12112,"mutability":"mutable","name":"lastUpdate","nameLocation":"4317:10:47","nodeType":"VariableDeclaration","scope":12117,"src":"4310:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":12111,"name":"uint48","nodeType":"ElementaryTypeName","src":"4310:6:47","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":12114,"mutability":"mutable","name":"lockCount","nameLocation":"4862:9:47","nodeType":"VariableDeclaration","scope":12117,"src":"4855:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":12113,"name":"uint56","nodeType":"ElementaryTypeName","src":"4855:6:47","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"},{"constant":false,"id":12116,"mutability":"mutable","name":"stashedRewards","nameLocation":"5063:14:47","nodeType":"VariableDeclaration","scope":12117,"src":"5056:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":12115,"name":"uint96","nodeType":"ElementaryTypeName","src":"5056:6:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"name":"User","nameLocation":"3400:4:47","nodeType":"StructDefinition","scope":14244,"src":"3393:1692:47","visibility":"public"},{"canonicalName":"PangoChef.Pool","id":12139,"members":[{"constant":false,"id":12119,"mutability":"mutable","name":"tokenOrRecipient","nameLocation":"5254:16:47","nodeType":"VariableDeclaration","scope":12139,"src":"5246:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12118,"name":"address","nodeType":"ElementaryTypeName","src":"5246:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12122,"mutability":"mutable","name":"poolType","nameLocation":"5379:8:47","nodeType":"VariableDeclaration","scope":12139,"src":"5370:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"},"typeName":{"id":12121,"nodeType":"UserDefinedTypeName","pathNode":{"id":12120,"name":"PoolType","nodeType":"IdentifierPath","referencedDeclaration":12083,"src":"5370:8:47"},"referencedDeclaration":12083,"src":"5370:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"visibility":"internal"},{"constant":false,"id":12125,"mutability":"mutable","name":"rewarder","nameLocation":"5478:8:47","nodeType":"VariableDeclaration","scope":12139,"src":"5468:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"},"typeName":{"id":12124,"nodeType":"UserDefinedTypeName","pathNode":{"id":12123,"name":"IRewarder","nodeType":"IdentifierPath","referencedDeclaration":18144,"src":"5468:9:47"},"referencedDeclaration":18144,"src":"5468:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"visibility":"internal"},{"constant":false,"id":12127,"mutability":"mutable","name":"rewardPair","nameLocation":"5699:10:47","nodeType":"VariableDeclaration","scope":12139,"src":"5691:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12126,"name":"address","nodeType":"ElementaryTypeName","src":"5691:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12130,"mutability":"mutable","name":"valueVariables","nameLocation":"5824:14:47","nodeType":"VariableDeclaration","scope":12139,"src":"5809:29:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":12129,"nodeType":"UserDefinedTypeName","pathNode":{"id":12128,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"5809:14:47"},"referencedDeclaration":12097,"src":"5809:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"},{"constant":false,"id":12133,"mutability":"mutable","name":"rewardSummationsStored","nameLocation":"5930:22:47","nodeType":"VariableDeclaration","scope":12139,"src":"5913:39:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":12132,"nodeType":"UserDefinedTypeName","pathNode":{"id":12131,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"5913:16:47"},"referencedDeclaration":12102,"src":"5913:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"},{"constant":false,"id":12138,"mutability":"mutable","name":"users","nameLocation":"6073:5:47","nodeType":"VariableDeclaration","scope":12139,"src":"6048:30:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User)"},"typeName":{"id":12137,"keyType":{"id":12134,"name":"address","nodeType":"ElementaryTypeName","src":"6056:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"6048:24:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User)"},"valueType":{"id":12136,"nodeType":"UserDefinedTypeName","pathNode":{"id":12135,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"6067:4:47"},"referencedDeclaration":12117,"src":"6067:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}}},"visibility":"internal"}],"name":"Pool","nameLocation":"5100:4:47","nodeType":"StructDefinition","scope":14244,"src":"5093:993:47","visibility":"public"},{"constant":false,"documentation":{"id":12140,"nodeType":"StructuredDocumentation","src":"6094:58:47","text":"@notice The mapping from poolIds to the pool infos. "},"functionSelector":"ac4afa38","id":12145,"mutability":"mutable","name":"pools","nameLocation":"6190:5:47","nodeType":"VariableDeclaration","scope":14244,"src":"6158:37:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool)"},"typeName":{"id":12144,"keyType":{"id":12141,"name":"uint256","nodeType":"ElementaryTypeName","src":"6166:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"6158:24:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool)"},"valueType":{"id":12143,"nodeType":"UserDefinedTypeName","pathNode":{"id":12142,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"6177:4:47"},"referencedDeclaration":12139,"src":"6177:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":12146,"nodeType":"StructuredDocumentation","src":"6204:55:47","text":"The set of ids of the pools locked by this pool. "},"id":12153,"mutability":"mutable","name":"lockedPools","nameLocation":"6335:11:47","nodeType":"VariableDeclaration","scope":14244,"src":"6265:81:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet))"},"typeName":{"id":12152,"keyType":{"id":12147,"name":"uint256","nodeType":"ElementaryTypeName","src":"6273:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"6265:61:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet))"},"valueType":{"id":12151,"keyType":{"id":12148,"name":"address","nodeType":"ElementaryTypeName","src":"6292:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"6284:41:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$","typeString":"mapping(address => struct EnumerableSet.UintSet)"},"valueType":{"id":12150,"nodeType":"UserDefinedTypeName","pathNode":{"id":12149,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":8877,"src":"6303:21:47"},"referencedDeclaration":8877,"src":"6303:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}}},"visibility":"private"},{"constant":false,"documentation":{"id":12154,"nodeType":"StructuredDocumentation","src":"6355:59:47","text":"@notice The UNI-V2 factory that creates pair tokens. "},"functionSelector":"c45a0155","id":12157,"mutability":"immutable","name":"factory","nameLocation":"6454:7:47","nodeType":"VariableDeclaration","scope":14244,"src":"6420:41:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"},"typeName":{"id":12156,"nodeType":"UserDefinedTypeName","pathNode":{"id":12155,"name":"IPangolinFactory","nodeType":"IdentifierPath","referencedDeclaration":18099,"src":"6420:16:47"},"referencedDeclaration":18099,"src":"6420:16:47","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"}},"visibility":"public"},{"constant":false,"documentation":{"id":12158,"nodeType":"StructuredDocumentation","src":"6470:90:47","text":"@notice The contract for wrapping and unwrapping the native gas token (e.g.: WETH). "},"functionSelector":"17fcb39b","id":12160,"mutability":"immutable","name":"wrappedNativeToken","nameLocation":"6591:18:47","nodeType":"VariableDeclaration","scope":14244,"src":"6566:43:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12159,"name":"address","nodeType":"ElementaryTypeName","src":"6566:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":12161,"nodeType":"StructuredDocumentation","src":"6618:51:47","text":"@notice The number of pools in the contract. "},"id":12164,"mutability":"mutable","name":"_poolsLength","nameLocation":"6691:12:47","nodeType":"VariableDeclaration","scope":14244,"src":"6675:32:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12162,"name":"uint256","nodeType":"ElementaryTypeName","src":"6675:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":12163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6706:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"documentation":{"id":12165,"nodeType":"StructuredDocumentation","src":"6716:73:47","text":"@notice The maximum amount of tokens that can be staked in a pool. "},"id":12172,"mutability":"constant","name":"MAX_STAKED_AMOUNT_IN_POOL","nameLocation":"6820:25:47","nodeType":"VariableDeclaration","scope":14244,"src":"6795:70:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12166,"name":"uint256","nodeType":"ElementaryTypeName","src":"6795:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":12169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6853:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":12168,"name":"uint104","nodeType":"ElementaryTypeName","src":"6853:7:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":12167,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6848:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6848:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":12171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"6848:17:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"private"},{"constant":true,"documentation":{"id":12173,"nodeType":"StructuredDocumentation","src":"6874:65:47","text":"@notice The fixed denominator used for storing summations. "},"id":12178,"mutability":"constant","name":"PRECISION","nameLocation":"6970:9:47","nodeType":"VariableDeclaration","scope":14244,"src":"6945:43:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12174,"name":"uint256","nodeType":"ElementaryTypeName","src":"6945:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":12177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":12175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6982:1:47","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313238","id":12176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6985:3:47","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"6982:6:47","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"private"},{"constant":true,"documentation":{"id":12179,"nodeType":"StructuredDocumentation","src":"6997:92:47","text":"@notice The maximum amount of pools that can be locked. This prevents unbounded loop. "},"id":12182,"mutability":"constant","name":"MAX_LOCK_COUNT","nameLocation":"7120:14:47","nodeType":"VariableDeclaration","scope":14244,"src":"7095:44:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12180,"name":"uint256","nodeType":"ElementaryTypeName","src":"7095:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":12181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7137:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"private"},{"constant":false,"id":12185,"mutability":"mutable","name":"safeExternalCalls","nameLocation":"7174:17:47","nodeType":"VariableDeclaration","scope":14244,"src":"7148:43:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"},"typeName":{"id":12184,"nodeType":"UserDefinedTypeName","pathNode":{"id":12183,"name":"SafeExternalCalls","nodeType":"IdentifierPath","referencedDeclaration":12066,"src":"7148:17:47"},"referencedDeclaration":12066,"src":"7148:17:47","typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":12186,"nodeType":"StructuredDocumentation","src":"7200:80:47","text":"@notice The event emitted when withdrawing or harvesting from a position. "},"eventSelector":"1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace","id":12196,"name":"Withdrawn","nameLocation":"7292:9:47","nodeType":"EventDefinition","parameters":{"id":12195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12188,"indexed":true,"mutability":"mutable","name":"positionId","nameLocation":"7328:10:47","nodeType":"VariableDeclaration","scope":12196,"src":"7312:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12187,"name":"uint256","nodeType":"ElementaryTypeName","src":"7312:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12190,"indexed":true,"mutability":"mutable","name":"userId","nameLocation":"7365:6:47","nodeType":"VariableDeclaration","scope":12196,"src":"7349:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12189,"name":"address","nodeType":"ElementaryTypeName","src":"7349:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12192,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"7398:6:47","nodeType":"VariableDeclaration","scope":12196,"src":"7382:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12191,"name":"uint256","nodeType":"ElementaryTypeName","src":"7382:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12194,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"7423:6:47","nodeType":"VariableDeclaration","scope":12196,"src":"7415:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12193,"name":"uint256","nodeType":"ElementaryTypeName","src":"7415:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7301:135:47"},"src":"7286:151:47"},{"anonymous":false,"documentation":{"id":12197,"nodeType":"StructuredDocumentation","src":"7445:85:47","text":"@notice The event emitted when staking to, minting, or compounding a position. "},"eventSelector":"17700ceb1658b18206f427c1578048e87504106b14ec69e9b4586d9a95174a32","id":12207,"name":"Staked","nameLocation":"7542:6:47","nodeType":"EventDefinition","parameters":{"id":12206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12199,"indexed":true,"mutability":"mutable","name":"positionId","nameLocation":"7575:10:47","nodeType":"VariableDeclaration","scope":12207,"src":"7559:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12198,"name":"uint256","nodeType":"ElementaryTypeName","src":"7559:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12201,"indexed":true,"mutability":"mutable","name":"userId","nameLocation":"7612:6:47","nodeType":"VariableDeclaration","scope":12207,"src":"7596:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12200,"name":"address","nodeType":"ElementaryTypeName","src":"7596:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12203,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"7645:6:47","nodeType":"VariableDeclaration","scope":12207,"src":"7629:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12202,"name":"uint256","nodeType":"ElementaryTypeName","src":"7629:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12205,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"7670:6:47","nodeType":"VariableDeclaration","scope":12207,"src":"7662:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12204,"name":"uint256","nodeType":"ElementaryTypeName","src":"7662:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7548:135:47"},"src":"7536:148:47"},{"anonymous":false,"documentation":{"id":12208,"nodeType":"StructuredDocumentation","src":"7692:56:47","text":"@notice The event emitted when a pool is created. "},"eventSelector":"3d82013e0d368d05bfb8b953d35bffd6eec15520773228de41146f306a241aec","id":12214,"name":"PoolInitialized","nameLocation":"7760:15:47","nodeType":"EventDefinition","parameters":{"id":12213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12210,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"7792:6:47","nodeType":"VariableDeclaration","scope":12214,"src":"7776:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12209,"name":"uint256","nodeType":"ElementaryTypeName","src":"7776:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12212,"indexed":true,"mutability":"mutable","name":"tokenOrRecipient","nameLocation":"7816:16:47","nodeType":"VariableDeclaration","scope":12214,"src":"7800:32:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12211,"name":"address","nodeType":"ElementaryTypeName","src":"7800:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7775:58:47"},"src":"7754:80:47"},{"anonymous":false,"documentation":{"id":12215,"nodeType":"StructuredDocumentation","src":"7842:72:47","text":"@notice The event emitted when the rewarder of a pool is changed. "},"eventSelector":"865fdcfd963a9e21f0dbb101fecee79dda3ecc602d0fe55e29268c843f2a3b7c","id":12221,"name":"RewarderSet","nameLocation":"7926:11:47","nodeType":"EventDefinition","parameters":{"id":12220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12217,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"7954:6:47","nodeType":"VariableDeclaration","scope":12221,"src":"7938:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12216,"name":"uint256","nodeType":"ElementaryTypeName","src":"7938:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12219,"indexed":true,"mutability":"mutable","name":"rewarder","nameLocation":"7978:8:47","nodeType":"VariableDeclaration","scope":12221,"src":"7962:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12218,"name":"address","nodeType":"ElementaryTypeName","src":"7962:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7937:50:47"},"src":"7920:68:47"},{"body":{"id":12279,"nodeType":"Block","src":"8607:668:47","statements":[{"assignments":[12239],"declarations":[{"constant":false,"id":12239,"mutability":"mutable","name":"poolZeroPair","nameLocation":"8689:12:47","nodeType":"VariableDeclaration","scope":12279,"src":"8681:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12238,"name":"address","nodeType":"ElementaryTypeName","src":"8681:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12245,"initialValue":{"arguments":[{"id":12242,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12224,"src":"8723:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12243,"name":"newWrappedNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12231,"src":"8740:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12240,"name":"newFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12229,"src":"8704:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"}},"id":12241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPair","nodeType":"MemberAccess","referencedDeclaration":18098,"src":"8704:18:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) view external returns (address)"}},"id":12244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8704:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8681:81:47"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12246,"name":"poolZeroPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12239,"src":"8878:12:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8902:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8894:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12247,"name":"address","nodeType":"ElementaryTypeName","src":"8894:7:47","typeDescriptions":{}}},"id":12250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8894:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8878:26:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12255,"nodeType":"IfStatement","src":"8874:50:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12252,"name":"NullInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"8913:9:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8913:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12254,"nodeType":"RevertStatement","src":"8906:18:47"}},{"expression":{"id":12258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12256,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"8991:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12257,"name":"newFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12229,"src":"9001:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"}},"src":"8991:20:47","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"}},"id":12259,"nodeType":"ExpressionStatement","src":"8991:20:47"},{"expression":{"id":12262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12260,"name":"wrappedNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12160,"src":"9022:18:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12261,"name":"newWrappedNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12231,"src":"9043:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9022:42:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12263,"nodeType":"ExpressionStatement","src":"9022:42:47"},{"expression":{"id":12271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12264,"name":"safeExternalCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12185,"src":"9077:17:47","typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":12268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9115:21:47","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SafeExternalCalls_$12066_$","typeString":"function () returns (contract SafeExternalCalls)"},"typeName":{"id":12267,"nodeType":"UserDefinedTypeName","pathNode":{"id":12266,"name":"SafeExternalCalls","nodeType":"IdentifierPath","referencedDeclaration":12066,"src":"9119:17:47"},"referencedDeclaration":12066,"src":"9119:17:47","typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}}},"id":12269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9115:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}],"id":12265,"name":"SafeExternalCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12066,"src":"9097:17:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeExternalCalls_$12066_$","typeString":"type(contract SafeExternalCalls)"}},"id":12270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9097:42:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}},"src":"9077:62:47","typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}},"id":12272,"nodeType":"ExpressionStatement","src":"9077:62:47"},{"expression":{"arguments":[{"id":12274,"name":"poolZeroPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12239,"src":"9233:12:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12275,"name":"PoolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"9247:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PoolType_$12083_$","typeString":"type(enum PangoChef.PoolType)"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC20_POOL","nodeType":"MemberAccess","referencedDeclaration":12081,"src":"9247:19:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}],"id":12273,"name":"_initializePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13895,"src":"9217:15:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_PoolType_$12083_$returns$__$","typeString":"function (address,enum PangoChef.PoolType)"}},"id":12277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9217:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12278,"nodeType":"ExpressionStatement","src":"9217:50:47"}]},"documentation":{"id":12222,"nodeType":"StructuredDocumentation","src":"7996:403:47","text":" @notice Constructor to create and initialize PangoChef contract.\n @param newRewardsToken The token distributed as reward (i.e.: PNG).\n @param newAdmin The initial owner of the contract.\n @param newFactory The Pangolin factory that creates and records AMM pairs.\n @param newWrappedNativeToken The contract for wrapping and unwrapping the native gas token."},"id":12280,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":12234,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12224,"src":"8580:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12235,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12226,"src":"8597:8:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12236,"kind":"baseConstructorSpecifier","modifierName":{"id":12233,"name":"PangoChefFunding","nodeType":"IdentifierPath","referencedDeclaration":15015,"src":"8563:16:47"},"nodeType":"ModifierInvocation","src":"8563:43:47"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12224,"mutability":"mutable","name":"newRewardsToken","nameLocation":"8435:15:47","nodeType":"VariableDeclaration","scope":12280,"src":"8427:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12223,"name":"address","nodeType":"ElementaryTypeName","src":"8427:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12226,"mutability":"mutable","name":"newAdmin","nameLocation":"8469:8:47","nodeType":"VariableDeclaration","scope":12280,"src":"8461:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12225,"name":"address","nodeType":"ElementaryTypeName","src":"8461:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12229,"mutability":"mutable","name":"newFactory","nameLocation":"8505:10:47","nodeType":"VariableDeclaration","scope":12280,"src":"8488:27:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"},"typeName":{"id":12228,"nodeType":"UserDefinedTypeName","pathNode":{"id":12227,"name":"IPangolinFactory","nodeType":"IdentifierPath","referencedDeclaration":18099,"src":"8488:16:47"},"referencedDeclaration":18099,"src":"8488:16:47","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"}},"visibility":"internal"},{"constant":false,"id":12231,"mutability":"mutable","name":"newWrappedNativeToken","nameLocation":"8534:21:47","nodeType":"VariableDeclaration","scope":12280,"src":"8526:29:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12230,"name":"address","nodeType":"ElementaryTypeName","src":"8526:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8416:146:47"},"returnParameters":{"id":12237,"nodeType":"ParameterList","parameters":[],"src":"8607:0:47"},"scope":14244,"src":"8405:870:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":12315,"nodeType":"Block","src":"9605:174:47","statements":[{"assignments":[12293],"declarations":[{"constant":false,"id":12293,"mutability":"mutable","name":"pool","nameLocation":"9629:4:47","nodeType":"VariableDeclaration","scope":12315,"src":"9616:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":12292,"nodeType":"UserDefinedTypeName","pathNode":{"id":12291,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"9616:4:47"},"referencedDeclaration":12139,"src":"9616:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":12297,"initialValue":{"baseExpression":{"id":12294,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"9636:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":12296,"indexExpression":{"id":12295,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12283,"src":"9642:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9636:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9616:33:47"},{"expression":{"arguments":[{"id":12299,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12293,"src":"9675:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":12298,"name":"_onlyERC20Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"9660:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer) view"}},"id":12300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9660:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12301,"nodeType":"ExpressionStatement","src":"9660:20:47"},{"expression":{"id":12308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12302,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12293,"src":"9691:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewarder","nodeType":"MemberAccess","referencedDeclaration":12125,"src":"9691:13:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12306,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12285,"src":"9717:8:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12305,"name":"IRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18144,"src":"9707:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRewarder_$18144_$","typeString":"type(contract IRewarder)"}},"id":12307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9707:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"src":"9691:35:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"id":12309,"nodeType":"ExpressionStatement","src":"9691:35:47"},{"eventCall":{"arguments":[{"id":12311,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12283,"src":"9754:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12312,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12285,"src":"9762:8:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12310,"name":"RewarderSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"9742:11:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":12313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9742:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12314,"nodeType":"EmitStatement","src":"9737:34:47"}]},"documentation":{"id":12281,"nodeType":"StructuredDocumentation","src":"9283:224:47","text":" @notice External restricted function to change the rewarder of a pool.\n @param poolId The identifier of the pool to change the rewarder of.\n @param rewarder The address of the new rewarder."},"functionSelector":"43de3207","id":12316,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12288,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"9586:17:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12289,"kind":"modifierInvocation","modifierName":{"id":12287,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"9577:8:47"},"nodeType":"ModifierInvocation","src":"9577:27:47"}],"name":"setRewarder","nameLocation":"9522:11:47","nodeType":"FunctionDefinition","parameters":{"id":12286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12283,"mutability":"mutable","name":"poolId","nameLocation":"9542:6:47","nodeType":"VariableDeclaration","scope":12316,"src":"9534:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12282,"name":"uint256","nodeType":"ElementaryTypeName","src":"9534:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12285,"mutability":"mutable","name":"rewarder","nameLocation":"9558:8:47","nodeType":"VariableDeclaration","scope":12316,"src":"9550:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12284,"name":"address","nodeType":"ElementaryTypeName","src":"9550:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9533:34:47"},"returnParameters":{"id":12290,"nodeType":"ParameterList","parameters":[],"src":"9605:0:47"},"scope":14244,"src":"9513:266:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12333,"nodeType":"Block","src":"10475:62:47","statements":[{"expression":{"arguments":[{"id":12329,"name":"tokenOrRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12319,"src":"10502:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12330,"name":"poolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12322,"src":"10520:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}],"id":12328,"name":"_initializePool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13895,"src":"10486:15:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_PoolType_$12083_$returns$__$","typeString":"function (address,enum PangoChef.PoolType)"}},"id":12331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10486:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12332,"nodeType":"ExpressionStatement","src":"10486:43:47"}]},"documentation":{"id":12317,"nodeType":"StructuredDocumentation","src":"9787:553:47","text":" @notice External restricted function to initialize/create a pool.\n @param tokenOrRecipient The token used in staking, or the sole recipient of the rewards.\n @param poolType The pool type, which should either be ERC20_POOL, or RELAYER_POOL.\n                 ERC20_POOL is a regular staking pool, in which anyone can stake the token\n                 to receive rewards. In RELAYER_POOL, there is only one recipient of the\n                 rewards. RELAYER_POOL is used for diverting token emissions."},"functionSelector":"d61f0680","id":12334,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12325,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"10451:17:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12326,"kind":"modifierInvocation","modifierName":{"id":12324,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"10442:8:47"},"nodeType":"ModifierInvocation","src":"10442:27:47"}],"name":"initializePool","nameLocation":"10355:14:47","nodeType":"FunctionDefinition","parameters":{"id":12323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12319,"mutability":"mutable","name":"tokenOrRecipient","nameLocation":"10378:16:47","nodeType":"VariableDeclaration","scope":12334,"src":"10370:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12318,"name":"address","nodeType":"ElementaryTypeName","src":"10370:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12322,"mutability":"mutable","name":"poolType","nameLocation":"10405:8:47","nodeType":"VariableDeclaration","scope":12334,"src":"10396:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"},"typeName":{"id":12321,"nodeType":"UserDefinedTypeName","pathNode":{"id":12320,"name":"PoolType","nodeType":"IdentifierPath","referencedDeclaration":12083,"src":"10396:8:47"},"referencedDeclaration":12083,"src":"10396:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"visibility":"internal"}],"src":"10369:45:47"},"returnParameters":{"id":12327,"nodeType":"ParameterList","parameters":[],"src":"10475:0:47"},"scope":14244,"src":"10346:191:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12357,"nodeType":"Block","src":"10804:88:47","statements":[{"expression":{"arguments":[{"id":12345,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"10822:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12346,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10830:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10830:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12348,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12339,"src":"10842:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12349,"name":"StakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"10850:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakeType_$12087_$","typeString":"type(enum PangoChef.StakeType)"}},"id":12350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGULAR","nodeType":"MemberAccess","referencedDeclaration":12084,"src":"10850:17:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},{"arguments":[{"hexValue":"30","id":12352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10878:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":12353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10881:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12351,"name":"Slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12092,"src":"10869:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Slippage_$12092_storage_ptr_$","typeString":"type(struct PangoChef.Slippage storage pointer)"}},"id":12354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10869:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}],"id":12344,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13008,"src":"10815:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_enum$_StakeType_$12087_$_t_struct$_Slippage_$12092_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint256,enum PangoChef.StakeType,struct PangoChef.Slippage memory)"}},"id":12355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10815:69:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12356,"nodeType":"ExpressionStatement","src":"10815:69:47"}]},"documentation":{"id":12335,"nodeType":"StructuredDocumentation","src":"10545:186:47","text":" @notice External function to stake to a pool.\n @param poolId The identifier of the pool to stake to.\n @param amount The amount of pool tokens to stake."},"functionSelector":"7b0472f0","id":12358,"implemented":true,"kind":"function","modifiers":[{"id":12342,"kind":"modifierInvocation","modifierName":{"id":12341,"name":"notEntered","nodeType":"IdentifierPath","referencedDeclaration":16729,"src":"10793:10:47"},"nodeType":"ModifierInvocation","src":"10793:10:47"}],"name":"stake","nameLocation":"10746:5:47","nodeType":"FunctionDefinition","parameters":{"id":12340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12337,"mutability":"mutable","name":"poolId","nameLocation":"10760:6:47","nodeType":"VariableDeclaration","scope":12358,"src":"10752:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12336,"name":"uint256","nodeType":"ElementaryTypeName","src":"10752:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12339,"mutability":"mutable","name":"amount","nameLocation":"10776:6:47","nodeType":"VariableDeclaration","scope":12358,"src":"10768:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12338,"name":"uint256","nodeType":"ElementaryTypeName","src":"10768:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10751:32:47"},"returnParameters":{"id":12343,"nodeType":"ParameterList","parameters":[],"src":"10804:0:47"},"scope":14244,"src":"10737:155:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12382,"nodeType":"Block","src":"11297:84:47","statements":[{"expression":{"arguments":[{"id":12371,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12361,"src":"11315:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12372,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12363,"src":"11323:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12373,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12365,"src":"11331:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12374,"name":"StakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"11339:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakeType_$12087_$","typeString":"type(enum PangoChef.StakeType)"}},"id":12375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGULAR","nodeType":"MemberAccess","referencedDeclaration":12084,"src":"11339:17:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},{"arguments":[{"hexValue":"30","id":12377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11367:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":12378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11370:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12376,"name":"Slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12092,"src":"11358:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Slippage_$12092_storage_ptr_$","typeString":"type(struct PangoChef.Slippage storage pointer)"}},"id":12379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11358:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}],"id":12370,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13008,"src":"11308:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_enum$_StakeType_$12087_$_t_struct$_Slippage_$12092_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint256,enum PangoChef.StakeType,struct PangoChef.Slippage memory)"}},"id":12380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11308:65:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12381,"nodeType":"ExpressionStatement","src":"11308:65:47"}]},"documentation":{"id":12359,"nodeType":"StructuredDocumentation","src":"10900:272:47","text":" @notice External function to stake to a pool on behalf of another user.\n @param poolId The identifier of the pool to stake to.\n @param userId The address of the pool to stake for.\n @param amount The amount of pool tokens to stake."},"functionSelector":"43d5599e","id":12383,"implemented":true,"kind":"function","modifiers":[{"id":12368,"kind":"modifierInvocation","modifierName":{"id":12367,"name":"notEntered","nodeType":"IdentifierPath","referencedDeclaration":16729,"src":"11286:10:47"},"nodeType":"ModifierInvocation","src":"11286:10:47"}],"name":"stakeTo","nameLocation":"11187:7:47","nodeType":"FunctionDefinition","parameters":{"id":12366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12361,"mutability":"mutable","name":"poolId","nameLocation":"11213:6:47","nodeType":"VariableDeclaration","scope":12383,"src":"11205:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12360,"name":"uint256","nodeType":"ElementaryTypeName","src":"11205:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12363,"mutability":"mutable","name":"userId","nameLocation":"11238:6:47","nodeType":"VariableDeclaration","scope":12383,"src":"11230:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12362,"name":"address","nodeType":"ElementaryTypeName","src":"11230:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12365,"mutability":"mutable","name":"amount","nameLocation":"11263:6:47","nodeType":"VariableDeclaration","scope":12383,"src":"11255:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12364,"name":"uint256","nodeType":"ElementaryTypeName","src":"11255:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11194:82:47"},"returnParameters":{"id":12369,"nodeType":"ParameterList","parameters":[],"src":"11297:0:47"},"scope":14244,"src":"11178:203:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12404,"nodeType":"Block","src":"12216:78:47","statements":[{"expression":{"arguments":[{"id":12395,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12386,"src":"12234:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12396,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12242:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"12242:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":12398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12254:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":12399,"name":"StakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"12257:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakeType_$12087_$","typeString":"type(enum PangoChef.StakeType)"}},"id":12400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"COMPOUND","nodeType":"MemberAccess","referencedDeclaration":12085,"src":"12257:18:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},{"id":12401,"name":"slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"12277:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_calldata_ptr","typeString":"struct PangoChef.Slippage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},{"typeIdentifier":"t_struct$_Slippage_$12092_calldata_ptr","typeString":"struct PangoChef.Slippage calldata"}],"id":12394,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13008,"src":"12227:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_enum$_StakeType_$12087_$_t_struct$_Slippage_$12092_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint256,enum PangoChef.StakeType,struct PangoChef.Slippage memory)"}},"id":12402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12227:59:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12403,"nodeType":"ExpressionStatement","src":"12227:59:47"}]},"documentation":{"id":12384,"nodeType":"StructuredDocumentation","src":"11389:729:47","text":" @notice External function to stake to a pool using the rewards of the pool.\n @dev This function only works if the staking token is a Pangolin liquidity token (PGL), and\n      one of its reserves is the rewardsToken (PNG). The user must supply sufficient amount\n      of the other reserve to be combined with PNG. The rewards and the user supplied pair\n      token is then used to mint a liquidity pool token, which must be the same token as the\n      staking token.\n @param poolId The identifier of the pool to compound.\n @param slippage A struct defining the minimum and maximum amounts of tokens that can be\n                 paired with reward token."},"functionSelector":"d97f8ed6","id":12405,"implemented":true,"kind":"function","modifiers":[{"id":12392,"kind":"modifierInvocation","modifierName":{"id":12391,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":16722,"src":"12203:12:47"},"nodeType":"ModifierInvocation","src":"12203:12:47"}],"name":"compound","nameLocation":"12133:8:47","nodeType":"FunctionDefinition","parameters":{"id":12390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12386,"mutability":"mutable","name":"poolId","nameLocation":"12150:6:47","nodeType":"VariableDeclaration","scope":12405,"src":"12142:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12385,"name":"uint256","nodeType":"ElementaryTypeName","src":"12142:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12389,"mutability":"mutable","name":"slippage","nameLocation":"12176:8:47","nodeType":"VariableDeclaration","scope":12405,"src":"12158:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_calldata_ptr","typeString":"struct PangoChef.Slippage"},"typeName":{"id":12388,"nodeType":"UserDefinedTypeName","pathNode":{"id":12387,"name":"Slippage","nodeType":"IdentifierPath","referencedDeclaration":12092,"src":"12158:8:47"},"referencedDeclaration":12092,"src":"12158:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_storage_ptr","typeString":"struct PangoChef.Slippage"}},"visibility":"internal"}],"src":"12141:44:47"},"returnParameters":{"id":12393,"nodeType":"ParameterList","parameters":[],"src":"12216:0:47"},"scope":14244,"src":"12124:170:47","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":12420,"nodeType":"Block","src":"12601:44:47","statements":[{"expression":{"arguments":[{"id":12416,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12408,"src":"12622:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12417,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"12630:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12415,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13228,"src":"12612:9:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":12418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12612:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12419,"nodeType":"ExpressionStatement","src":"12612:25:47"}]},"documentation":{"id":12406,"nodeType":"StructuredDocumentation","src":"12302:223:47","text":" @notice External function to withdraw and harvest from a pool.\n @param poolId The identifier of the pool to withdraw and harvest from.\n @param amount The amount of pool tokens to withdraw."},"functionSelector":"441a3e70","id":12421,"implemented":true,"kind":"function","modifiers":[{"id":12413,"kind":"modifierInvocation","modifierName":{"id":12412,"name":"notEntered","nodeType":"IdentifierPath","referencedDeclaration":16729,"src":"12590:10:47"},"nodeType":"ModifierInvocation","src":"12590:10:47"}],"name":"withdraw","nameLocation":"12540:8:47","nodeType":"FunctionDefinition","parameters":{"id":12411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12408,"mutability":"mutable","name":"poolId","nameLocation":"12557:6:47","nodeType":"VariableDeclaration","scope":12421,"src":"12549:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12407,"name":"uint256","nodeType":"ElementaryTypeName","src":"12549:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12410,"mutability":"mutable","name":"amount","nameLocation":"12573:6:47","nodeType":"VariableDeclaration","scope":12421,"src":"12565:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12409,"name":"uint256","nodeType":"ElementaryTypeName","src":"12565:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12548:32:47"},"returnParameters":{"id":12414,"nodeType":"ParameterList","parameters":[],"src":"12601:0:47"},"scope":14244,"src":"12531:114:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12434,"nodeType":"Block","src":"12856:39:47","statements":[{"expression":{"arguments":[{"id":12430,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"12877:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":12431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12885:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12429,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13228,"src":"12867:9:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":12432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12867:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12433,"nodeType":"ExpressionStatement","src":"12867:20:47"}]},"documentation":{"id":12422,"nodeType":"StructuredDocumentation","src":"12653:144:47","text":" @notice External function to harvest rewards from a pool.\n @param poolId The identifier of the pool to harvest from."},"functionSelector":"ddc63262","id":12435,"implemented":true,"kind":"function","modifiers":[{"id":12427,"kind":"modifierInvocation","modifierName":{"id":12426,"name":"notEntered","nodeType":"IdentifierPath","referencedDeclaration":16729,"src":"12845:10:47"},"nodeType":"ModifierInvocation","src":"12845:10:47"}],"name":"harvest","nameLocation":"12812:7:47","nodeType":"FunctionDefinition","parameters":{"id":12425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12424,"mutability":"mutable","name":"poolId","nameLocation":"12828:6:47","nodeType":"VariableDeclaration","scope":12435,"src":"12820:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12423,"name":"uint256","nodeType":"ElementaryTypeName","src":"12820:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12819:16:47"},"returnParameters":{"id":12428,"nodeType":"ParameterList","parameters":[],"src":"12856:0:47"},"scope":14244,"src":"12803:92:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12465,"nodeType":"Block","src":"13690:655:47","statements":[{"assignments":[12449],"declarations":[{"constant":false,"id":12449,"mutability":"mutable","name":"reward","nameLocation":"14031:6:47","nodeType":"VariableDeclaration","scope":12465,"src":"14023:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12448,"name":"uint256","nodeType":"ElementaryTypeName","src":"14023:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12454,"initialValue":{"arguments":[{"id":12451,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12438,"src":"14061:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12452,"name":"compoundPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12440,"src":"14076:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12450,"name":"_harvestWithoutReset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13364,"src":"14040:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) returns (uint256)"}},"id":12453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14040:51:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14023:68:47"},{"expression":{"arguments":[{"id":12456,"name":"compoundPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12440,"src":"14269:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12457,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14285:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"14285:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12459,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"14297:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12460,"name":"StakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"14305:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakeType_$12087_$","typeString":"type(enum PangoChef.StakeType)"}},"id":12461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"COMPOUND_TO","nodeType":"MemberAccess","referencedDeclaration":12086,"src":"14305:21:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},{"id":12462,"name":"slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12443,"src":"14328:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_calldata_ptr","typeString":"struct PangoChef.Slippage calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},{"typeIdentifier":"t_struct$_Slippage_$12092_calldata_ptr","typeString":"struct PangoChef.Slippage calldata"}],"id":12455,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13008,"src":"14262:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_enum$_StakeType_$12087_$_t_struct$_Slippage_$12092_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint256,enum PangoChef.StakeType,struct PangoChef.Slippage memory)"}},"id":12463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14262:75:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12464,"nodeType":"ExpressionStatement","src":"14262:75:47"}]},"documentation":{"id":12436,"nodeType":"StructuredDocumentation","src":"12903:622:47","text":" @notice External function to stake to a compoundable pool (e.g.: PNG-WAVAX PGL) using the\n         rewards of any other ERC20_POOL.\n @dev The user must supply sufficient amount of the gas token (e.g.: AVAX/WAVAX) to be\n      paired with the rewardsToken (e.g.:PNG).\n @param harvestPoolId The identifier of the pool to harvest the rewards from.\n @param compoundPoolId The identifier of the pool to stake the rewards into.\n @param slippage A struct defining the minimum and maximum amounts of tokens that can be\n                 paired with reward token."},"functionSelector":"80754b28","id":12466,"implemented":true,"kind":"function","modifiers":[{"id":12446,"kind":"modifierInvocation","modifierName":{"id":12445,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":16722,"src":"13677:12:47"},"nodeType":"ModifierInvocation","src":"13677:12:47"}],"name":"compoundTo","nameLocation":"13540:10:47","nodeType":"FunctionDefinition","parameters":{"id":12444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12438,"mutability":"mutable","name":"harvestPoolId","nameLocation":"13569:13:47","nodeType":"VariableDeclaration","scope":12466,"src":"13561:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12437,"name":"uint256","nodeType":"ElementaryTypeName","src":"13561:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12440,"mutability":"mutable","name":"compoundPoolId","nameLocation":"13601:14:47","nodeType":"VariableDeclaration","scope":12466,"src":"13593:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12439,"name":"uint256","nodeType":"ElementaryTypeName","src":"13593:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12443,"mutability":"mutable","name":"slippage","nameLocation":"13644:8:47","nodeType":"VariableDeclaration","scope":12466,"src":"13626:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_calldata_ptr","typeString":"struct PangoChef.Slippage"},"typeName":{"id":12442,"nodeType":"UserDefinedTypeName","pathNode":{"id":12441,"name":"Slippage","nodeType":"IdentifierPath","referencedDeclaration":12092,"src":"13626:8:47"},"referencedDeclaration":12092,"src":"13626:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_storage_ptr","typeString":"struct PangoChef.Slippage"}},"visibility":"internal"}],"src":"13550:109:47"},"returnParameters":{"id":12447,"nodeType":"ParameterList","parameters":[],"src":"13690:0:47"},"scope":14244,"src":"13531:814:47","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":12479,"nodeType":"Block","src":"14576:47:47","statements":[{"expression":{"arguments":[{"id":12475,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12469,"src":"14602:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":12476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14610:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12474,"name":"_emergencyExit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13661,"src":"14587:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":12477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14587:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12478,"nodeType":"ExpressionStatement","src":"14587:28:47"}]},"documentation":{"id":12467,"nodeType":"StructuredDocumentation","src":"14353:150:47","text":" @notice External function to exit from a pool by forgoing rewards.\n @param poolId The identifier of the pool to exit from."},"functionSelector":"f851844b","id":12480,"implemented":true,"kind":"function","modifiers":[{"id":12472,"kind":"modifierInvocation","modifierName":{"id":12471,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":16722,"src":"14563:12:47"},"nodeType":"ModifierInvocation","src":"14563:12:47"}],"name":"emergencyExitLevel1","nameLocation":"14518:19:47","nodeType":"FunctionDefinition","parameters":{"id":12470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12469,"mutability":"mutable","name":"poolId","nameLocation":"14546:6:47","nodeType":"VariableDeclaration","scope":12480,"src":"14538:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12468,"name":"uint256","nodeType":"ElementaryTypeName","src":"14538:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14537:16:47"},"returnParameters":{"id":12473,"nodeType":"ParameterList","parameters":[],"src":"14576:0:47"},"scope":14244,"src":"14509:114:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12509,"nodeType":"Block","src":"15153:308:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12490,"name":"confirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12485,"src":"15168:12:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4920616d20726561647920746f206c6f73652065766572797468696e6720696e207468697320706f6f6c2e204c6574206d6520676f2e","id":12494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15251:56:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_20f25d32b0cb64e41972e299b60a4330dcafaec2c5ff591af09ef6310fd84c85","typeString":"literal_string \"I am ready to lose everything in this pool. Let me go.\""},"value":"I am ready to lose everything in this pool. Let me go."},{"expression":{"id":12495,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15330:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"15330:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20f25d32b0cb64e41972e299b60a4330dcafaec2c5ff591af09ef6310fd84c85","typeString":"literal_string \"I am ready to lose everything in this pool. Let me go.\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12492,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15212:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"15212:16:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15212:147:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12491,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15184:9:47","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15184:190:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15168:206:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12503,"nodeType":"IfStatement","src":"15164:249:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12500,"name":"UnprivilegedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"15393:18:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15393:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12502,"nodeType":"RevertStatement","src":"15386:27:47"}},{"expression":{"arguments":[{"id":12505,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12483,"src":"15439:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":12506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15447:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12504,"name":"_emergencyExit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13661,"src":"15424:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":12507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15424:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12508,"nodeType":"ExpressionStatement","src":"15424:29:47"}]},"documentation":{"id":12481,"nodeType":"StructuredDocumentation","src":"14631:427:47","text":" @notice External function to exit from a pool by forgoing the stake and rewards.\n @dev This is an extreme emergency function, used only to save compoundable pool from\n      perpetually remaining locked if there is a DOS on the staking token.\n @param poolId The identifier of the pool to exit from.\n @param confirmation Prevents naive users from calling this function by mistake."},"functionSelector":"562d12d7","id":12510,"implemented":true,"kind":"function","modifiers":[{"id":12488,"kind":"modifierInvocation","modifierName":{"id":12487,"name":"nonReentrant","nodeType":"IdentifierPath","referencedDeclaration":16722,"src":"15140:12:47"},"nodeType":"ModifierInvocation","src":"15140:12:47"}],"name":"emergencyExitLevel2","nameLocation":"15073:19:47","nodeType":"FunctionDefinition","parameters":{"id":12486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12483,"mutability":"mutable","name":"poolId","nameLocation":"15101:6:47","nodeType":"VariableDeclaration","scope":12510,"src":"15093:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12482,"name":"uint256","nodeType":"ElementaryTypeName","src":"15093:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12485,"mutability":"mutable","name":"confirmation","nameLocation":"15117:12:47","nodeType":"VariableDeclaration","scope":12510,"src":"15109:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15109:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15092:38:47"},"returnParameters":{"id":12489,"nodeType":"ParameterList","parameters":[],"src":"15153:0:47"},"scope":14244,"src":"15064:397:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12566,"nodeType":"Block","src":"15786:618:47","statements":[{"assignments":[12522],"declarations":[{"constant":false,"id":12522,"mutability":"mutable","name":"pool","nameLocation":"15861:4:47","nodeType":"VariableDeclaration","scope":12566,"src":"15848:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":12521,"nodeType":"UserDefinedTypeName","pathNode":{"id":12520,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"15848:4:47"},"referencedDeclaration":12139,"src":"15848:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":12526,"initialValue":{"baseExpression":{"id":12523,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"15868:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":12525,"indexExpression":{"id":12524,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12513,"src":"15874:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15868:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15848:33:47"},{"expression":{"arguments":[{"id":12528,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12522,"src":"15952:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":12527,"name":"_onlyRelayerPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"15935:16:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer) view"}},"id":12529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15935:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12530,"nodeType":"ExpressionStatement","src":"15935:22:47"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12531,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16036:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16036:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12533,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12522,"src":"16050:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenOrRecipient","nodeType":"MemberAccess","referencedDeclaration":12119,"src":"16050:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16036:35:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12539,"nodeType":"IfStatement","src":"16032:68:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12536,"name":"UnprivilegedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"16080:18:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16080:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12538,"nodeType":"RevertStatement","src":"16073:27:47"}},{"expression":{"id":12544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12540,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"16151:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12542,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12513,"src":"16167:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12541,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14859,"src":"16160:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":12543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16160:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16151:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12545,"nodeType":"ExpressionStatement","src":"16151:23:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12546,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"16282:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16292:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16282:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12557,"nodeType":"IfStatement","src":"16278:62:47","trueBody":{"expression":{"arguments":[{"expression":{"id":12552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16321:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16321:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12554,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"16333:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12549,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"16295:12:47","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":12551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"16295:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":12555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16295:45:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12556,"nodeType":"ExpressionStatement","src":"16295:45:47"}},{"eventCall":{"arguments":[{"id":12559,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12513,"src":"16366:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12560,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16374:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"16374:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":12562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16386:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":12563,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"16389:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12558,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12196,"src":"16356:9:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":12564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16356:40:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12565,"nodeType":"EmitStatement","src":"16351:45:47"}]},"documentation":{"id":12511,"nodeType":"StructuredDocumentation","src":"15469:235:47","text":" @notice External function to claim/harvest the rewards from a RELAYER_POOL.\n @param poolId The identifier of the pool to claim the rewards of.\n @return reward The amount of rewards that was harvested."},"functionSelector":"379607f5","id":12567,"implemented":true,"kind":"function","modifiers":[{"id":12516,"kind":"modifierInvocation","modifierName":{"id":12515,"name":"notEntered","nodeType":"IdentifierPath","referencedDeclaration":16729,"src":"15750:10:47"},"nodeType":"ModifierInvocation","src":"15750:10:47"}],"name":"claim","nameLocation":"15719:5:47","nodeType":"FunctionDefinition","parameters":{"id":12514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12513,"mutability":"mutable","name":"poolId","nameLocation":"15733:6:47","nodeType":"VariableDeclaration","scope":12567,"src":"15725:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12512,"name":"uint256","nodeType":"ElementaryTypeName","src":"15725:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15724:16:47"},"returnParameters":{"id":12519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12518,"mutability":"mutable","name":"reward","nameLocation":"15778:6:47","nodeType":"VariableDeclaration","scope":12567,"src":"15770:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12517,"name":"uint256","nodeType":"ElementaryTypeName","src":"15770:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15769:16:47"},"scope":14244,"src":"15710:694:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12585,"nodeType":"Block","src":"16797:53:47","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":12578,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"16815:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":12580,"indexExpression":{"id":12579,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"16821:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16815:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"id":12581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"16815:19:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":12583,"indexExpression":{"id":12582,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12572,"src":"16835:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16815:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"functionReturnParameters":12577,"id":12584,"nodeType":"Return","src":"16808:34:47"}]},"documentation":{"id":12568,"nodeType":"StructuredDocumentation","src":"16412:294:47","text":" @notice External view function to get the info about a user of a pool.\n @param poolId The identifier of the pool the user is in.\n @param userId The address of the user in the pool.\n @return The user struct that contains all the information of the user."},"functionSelector":"257664a4","id":12586,"implemented":true,"kind":"function","modifiers":[],"name":"getUser","nameLocation":"16721:7:47","nodeType":"FunctionDefinition","parameters":{"id":12573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12570,"mutability":"mutable","name":"poolId","nameLocation":"16737:6:47","nodeType":"VariableDeclaration","scope":12586,"src":"16729:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12569,"name":"uint256","nodeType":"ElementaryTypeName","src":"16729:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12572,"mutability":"mutable","name":"userId","nameLocation":"16753:6:47","nodeType":"VariableDeclaration","scope":12586,"src":"16745:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12571,"name":"address","nodeType":"ElementaryTypeName","src":"16745:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16728:32:47"},"returnParameters":{"id":12577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12586,"src":"16784:11:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_memory_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":12575,"nodeType":"UserDefinedTypeName","pathNode":{"id":12574,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"16784:4:47"},"referencedDeclaration":12117,"src":"16784:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"src":"16783:13:47"},"scope":14244,"src":"16712:138:47","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12605,"nodeType":"Block","src":"17288:62:47","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"baseExpression":{"id":12597,"name":"lockedPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"17306:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet storage ref))"}},"id":12599,"indexExpression":{"id":12598,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"17318:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17306:19:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$","typeString":"mapping(address => struct EnumerableSet.UintSet storage ref)"}},"id":12601,"indexExpression":{"id":12600,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12591,"src":"17326:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17306:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":12602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":9006,"src":"17306:34:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$8877_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$bound_to$_t_struct$_UintSet_$8877_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":12603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17306:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":12596,"id":12604,"nodeType":"Return","src":"17299:43:47"}]},"documentation":{"id":12587,"nodeType":"StructuredDocumentation","src":"16858:302:47","text":" @notice External view function to get the pools locked by user in a specific pool.\n @param poolId The identifier of the pool the user is in.\n @param userId The address of the user in the pool.\n @return The pool identifier array of the pools locked by the user."},"functionSelector":"47df36c0","id":12606,"implemented":true,"kind":"function","modifiers":[],"name":"getLockedPools","nameLocation":"17175:14:47","nodeType":"FunctionDefinition","parameters":{"id":12592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12589,"mutability":"mutable","name":"poolId","nameLocation":"17208:6:47","nodeType":"VariableDeclaration","scope":12606,"src":"17200:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12588,"name":"uint256","nodeType":"ElementaryTypeName","src":"17200:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12591,"mutability":"mutable","name":"userId","nameLocation":"17233:6:47","nodeType":"VariableDeclaration","scope":12606,"src":"17225:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12590,"name":"address","nodeType":"ElementaryTypeName","src":"17225:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17189:57:47"},"returnParameters":{"id":12596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12606,"src":"17270:16:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12593,"name":"uint256","nodeType":"ElementaryTypeName","src":"17270:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12594,"nodeType":"ArrayTypeName","src":"17270:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"17269:18:47"},"scope":14244,"src":"17166:184:47","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12654,"nodeType":"Block","src":"18071:406:47","statements":[{"assignments":[12618],"declarations":[{"constant":false,"id":12618,"mutability":"mutable","name":"pool","nameLocation":"18141:4:47","nodeType":"VariableDeclaration","scope":12654,"src":"18128:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":12617,"nodeType":"UserDefinedTypeName","pathNode":{"id":12616,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"18128:4:47"},"referencedDeclaration":12139,"src":"18128:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":12622,"initialValue":{"baseExpression":{"id":12619,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"18148:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":12621,"indexExpression":{"id":12620,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12609,"src":"18154:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18148:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18128:33:47"},{"assignments":[12624],"declarations":[{"constant":false,"id":12624,"mutability":"mutable","name":"poolValue","nameLocation":"18180:9:47","nodeType":"VariableDeclaration","scope":12654,"src":"18172:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12623,"name":"uint256","nodeType":"ElementaryTypeName","src":"18172:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12629,"initialValue":{"arguments":[{"expression":{"id":12626,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12618,"src":"18202:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12130,"src":"18202:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}],"id":12625,"name":"_getValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14191,"src":"18192:9:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValueVariables_$12097_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChef.ValueVariables storage pointer) view returns (uint256)"}},"id":12628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18192:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18172:50:47"},{"assignments":[12631],"declarations":[{"constant":false,"id":12631,"mutability":"mutable","name":"userValue","nameLocation":"18241:9:47","nodeType":"VariableDeclaration","scope":12654,"src":"18233:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12630,"name":"uint256","nodeType":"ElementaryTypeName","src":"18233:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12639,"initialValue":{"arguments":[{"expression":{"baseExpression":{"expression":{"id":12633,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12618,"src":"18263:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"18263:10:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":12636,"indexExpression":{"id":12635,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12611,"src":"18274:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18263:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"id":12637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12105,"src":"18263:33:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}],"id":12632,"name":"_getValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14191,"src":"18253:9:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValueVariables_$12097_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChef.ValueVariables storage pointer) view returns (uint256)"}},"id":12638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18253:44:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18233:64:47"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12640,"name":"userValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12631,"src":"18400:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18413:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18400:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12645,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12609,"src":"18437:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12644,"name":"poolRewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14804,"src":"18422:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":12646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18422:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12647,"name":"userValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12631,"src":"18447:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18422:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18421:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12650,"name":"poolValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12624,"src":"18460:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18421:48:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"18400:69:47","trueExpression":{"hexValue":"30","id":12643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18417:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12615,"id":12653,"nodeType":"Return","src":"18393:76:47"}]},"documentation":{"id":12607,"nodeType":"StructuredDocumentation","src":"17358:619:47","text":" @notice External view function to get the reward rate of a user of a pool.\n @dev In SAR, users have different APRs, unlike other staking algorithms. This external\n      function clearly demonstrates how the SAR algorithm is supposed to distribute the\n      rewards based on “value”, which is balance times staking duration. This external\n      function can be considered as a specification.\n @param poolId The identifier of the pool the user is in.\n @param userId The address of the user in the pool.\n @return The rewards per second of the user."},"functionSelector":"82f084d3","id":12655,"implemented":true,"kind":"function","modifiers":[],"name":"userRewardRate","nameLocation":"17992:14:47","nodeType":"FunctionDefinition","parameters":{"id":12612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12609,"mutability":"mutable","name":"poolId","nameLocation":"18015:6:47","nodeType":"VariableDeclaration","scope":12655,"src":"18007:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12608,"name":"uint256","nodeType":"ElementaryTypeName","src":"18007:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12611,"mutability":"mutable","name":"userId","nameLocation":"18031:6:47","nodeType":"VariableDeclaration","scope":12655,"src":"18023:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12610,"name":"address","nodeType":"ElementaryTypeName","src":"18023:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18006:32:47"},"returnParameters":{"id":12615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12655,"src":"18062:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12613,"name":"uint256","nodeType":"ElementaryTypeName","src":"18062:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18061:9:47"},"scope":14244,"src":"17983:494:47","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12695,"nodeType":"Block","src":"18981:617:47","statements":[{"assignments":[12667],"declarations":[{"constant":false,"id":12667,"mutability":"mutable","name":"pool","nameLocation":"19060:4:47","nodeType":"VariableDeclaration","scope":12695,"src":"19047:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":12666,"nodeType":"UserDefinedTypeName","pathNode":{"id":12665,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"19047:4:47"},"referencedDeclaration":12139,"src":"19047:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":12671,"initialValue":{"baseExpression":{"id":12668,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"19067:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":12670,"indexExpression":{"id":12669,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"19073:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19067:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19047:33:47"},{"assignments":[12674],"declarations":[{"constant":false,"id":12674,"mutability":"mutable","name":"user","nameLocation":"19104:4:47","nodeType":"VariableDeclaration","scope":12695,"src":"19091:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":12673,"nodeType":"UserDefinedTypeName","pathNode":{"id":12672,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"19091:4:47"},"referencedDeclaration":12117,"src":"19091:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"id":12679,"initialValue":{"baseExpression":{"expression":{"id":12675,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12667,"src":"19111:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"19111:10:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":12678,"indexExpression":{"id":12677,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"19122:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19111:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19091:38:47"},{"assignments":[12682],"declarations":[{"constant":false,"id":12682,"mutability":"mutable","name":"deltaRewardSummations","nameLocation":"19300:21:47","nodeType":"VariableDeclaration","scope":12695,"src":"19276:45:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":12681,"nodeType":"UserDefinedTypeName","pathNode":{"id":12680,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"19276:16:47"},"referencedDeclaration":12102,"src":"19276:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"}],"id":12689,"initialValue":{"arguments":[{"id":12684,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"19364:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12685,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12667,"src":"19385:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":12686,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"19404:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},{"hexValue":"74727565","id":12687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19423:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12683,"name":"_getDeltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"19324:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$_t_bool_$returns$_t_struct$_RewardSummations_$12102_memory_ptr_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer,bool) view returns (struct PangoChef.RewardSummations memory)"}},"id":12688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19324:114:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"nodeType":"VariableDeclarationStatement","src":"19276:162:47"},{"expression":{"arguments":[{"id":12691,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12682,"src":"19562:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},{"id":12692,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"19585:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":12690,"name":"_earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"19554:7:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_RewardSummations_$12102_memory_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChef.RewardSummations memory,struct PangoChef.User storage pointer) view returns (uint256)"}},"id":12693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19554:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12664,"id":12694,"nodeType":"Return","src":"19547:43:47"}]},"documentation":{"id":12656,"nodeType":"StructuredDocumentation","src":"18485:398:47","text":" @notice External view function to get the accrued rewards of a user. It calculates all the\n         pending rewards from user’s last update until the block timestamp.\n @param poolId The identifier of the pool the user is in.\n @param userId The address of the user in the pool.\n @return The amount of rewards that have been accrued in the position."},"functionSelector":"59b02eb3","id":12696,"implemented":true,"kind":"function","modifiers":[],"name":"userPendingRewards","nameLocation":"18898:18:47","nodeType":"FunctionDefinition","parameters":{"id":12661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12658,"mutability":"mutable","name":"poolId","nameLocation":"18925:6:47","nodeType":"VariableDeclaration","scope":12696,"src":"18917:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12657,"name":"uint256","nodeType":"ElementaryTypeName","src":"18917:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12660,"mutability":"mutable","name":"userId","nameLocation":"18941:6:47","nodeType":"VariableDeclaration","scope":12696,"src":"18933:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12659,"name":"address","nodeType":"ElementaryTypeName","src":"18933:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18916:32:47"},"returnParameters":{"id":12664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12696,"src":"18972:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12662,"name":"uint256","nodeType":"ElementaryTypeName","src":"18972:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18971:9:47"},"scope":14244,"src":"18889:709:47","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[14828],"body":{"id":12705,"nodeType":"Block","src":"19708:38:47","statements":[{"expression":{"id":12703,"name":"_poolsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"19726:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12702,"id":12704,"nodeType":"Return","src":"19719:19:47"}]},"documentation":{"id":12697,"nodeType":"StructuredDocumentation","src":"19606:34:47","text":"@inheritdoc PangoChefFunding"},"functionSelector":"2716ae66","id":12706,"implemented":true,"kind":"function","modifiers":[],"name":"poolsLength","nameLocation":"19655:11:47","nodeType":"FunctionDefinition","overrides":{"id":12699,"nodeType":"OverrideSpecifier","overrides":[],"src":"19681:8:47"},"parameters":{"id":12698,"nodeType":"ParameterList","parameters":[],"src":"19666:2:47"},"returnParameters":{"id":12702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12706,"src":"19699:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12700,"name":"uint256","nodeType":"ElementaryTypeName","src":"19699:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19698:9:47"},"scope":14244,"src":"19646:100:47","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":13007,"nodeType":"Block","src":"20606:4318:47","statements":[{"assignments":[12724],"declarations":[{"constant":false,"id":12724,"mutability":"mutable","name":"pool","nameLocation":"20695:4:47","nodeType":"VariableDeclaration","scope":13007,"src":"20682:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":12723,"nodeType":"UserDefinedTypeName","pathNode":{"id":12722,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"20682:4:47"},"referencedDeclaration":12139,"src":"20682:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":12728,"initialValue":{"baseExpression":{"id":12725,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"20702:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":12727,"indexExpression":{"id":12726,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12709,"src":"20708:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20702:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20682:33:47"},{"assignments":[12731],"declarations":[{"constant":false,"id":12731,"mutability":"mutable","name":"user","nameLocation":"20739:4:47","nodeType":"VariableDeclaration","scope":13007,"src":"20726:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":12730,"nodeType":"UserDefinedTypeName","pathNode":{"id":12729,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"20726:4:47"},"referencedDeclaration":12117,"src":"20726:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"id":12736,"initialValue":{"baseExpression":{"expression":{"id":12732,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"20746:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"20746:10:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":12735,"indexExpression":{"id":12734,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12711,"src":"20757:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20746:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20726:38:47"},{"expression":{"arguments":[{"id":12738,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"20831:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":12737,"name":"_onlyERC20Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"20816:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer) view"}},"id":12739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20816:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12740,"nodeType":"ExpressionStatement","src":"20816:20:47"},{"assignments":[12743],"declarations":[{"constant":false,"id":12743,"mutability":"mutable","name":"poolValueVariables","nameLocation":"20963:18:47","nodeType":"VariableDeclaration","scope":13007,"src":"20940:41:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":12742,"nodeType":"UserDefinedTypeName","pathNode":{"id":12741,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"20940:14:47"},"referencedDeclaration":12097,"src":"20940:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":12746,"initialValue":{"expression":{"id":12744,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"20984:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12130,"src":"20984:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20940:63:47"},{"assignments":[12748],"declarations":[{"constant":false,"id":12748,"mutability":"mutable","name":"poolBalance","nameLocation":"21022:11:47","nodeType":"VariableDeclaration","scope":13007,"src":"21014:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12747,"name":"uint256","nodeType":"ElementaryTypeName","src":"21014:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12751,"initialValue":{"expression":{"id":12749,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12743,"src":"21036:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":12750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"21036:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"VariableDeclarationStatement","src":"21014:48:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12752,"name":"poolBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12748,"src":"21077:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21092:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21077:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12760,"nodeType":"IfStatement","src":"21073:59:47","trueBody":{"expression":{"arguments":[{"id":12756,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12709,"src":"21119:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12757,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"21127:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":12755,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13976,"src":"21095:23:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$returns$_t_uint256_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer) returns (uint256)"}},"id":12758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21095:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12759,"nodeType":"ExpressionStatement","src":"21095:37:47"}},{"assignments":[12762],"declarations":[{"constant":false,"id":12762,"mutability":"mutable","name":"reward","nameLocation":"21352:6:47","nodeType":"VariableDeclaration","scope":13007,"src":"21344:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12761,"name":"uint256","nodeType":"ElementaryTypeName","src":"21344:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12768,"initialValue":{"arguments":[{"id":12764,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12709,"src":"21381:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12765,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"21389:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":12766,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"21395:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":12763,"name":"_userPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14034,"src":"21361:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$_t_uint256_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer) view returns (uint256)"}},"id":12767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21361:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21344:56:47"},{"assignments":[12770],"declarations":[{"constant":false,"id":12770,"mutability":"mutable","name":"transferAmount","nameLocation":"21421:14:47","nodeType":"VariableDeclaration","scope":13007,"src":"21413:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12769,"name":"uint256","nodeType":"ElementaryTypeName","src":"21413:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12772,"initialValue":{"hexValue":"30","id":12771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21438:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21413:26:47"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},"id":12776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12773,"name":"stakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12716,"src":"21483:9:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12774,"name":"StakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"21496:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakeType_$12087_$","typeString":"type(enum PangoChef.StakeType)"}},"id":12775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"REGULAR","nodeType":"MemberAccess","referencedDeclaration":12084,"src":"21496:17:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},"src":"21483:30:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},"id":12798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12795,"name":"stakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12716,"src":"21908:9:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12796,"name":"StakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"21921:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakeType_$12087_$","typeString":"type(enum PangoChef.StakeType)"}},"id":12797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"COMPOUND_TO","nodeType":"MemberAccess","referencedDeclaration":12086,"src":"21921:21:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},"src":"21908:34:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12848,"nodeType":"Block","src":"22373:357:47","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},"id":12825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12822,"name":"stakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12716,"src":"22395:9:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12823,"name":"StakeType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"22408:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakeType_$12087_$","typeString":"type(enum PangoChef.StakeType)"}},"id":12824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"COMPOUND","nodeType":"MemberAccess","referencedDeclaration":12085,"src":"22408:18:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},"src":"22395:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12821,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"22388:6:47","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22388:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12827,"nodeType":"ExpressionStatement","src":"22388:39:47"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12829,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"22449:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22459:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22449:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12828,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"22442:6:47","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22442:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12833,"nodeType":"ExpressionStatement","src":"22442:19:47"},{"expression":{"id":12840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12834,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"22540:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12836,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"22563:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":12837,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"22569:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12838,"name":"slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"22577:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}],"id":12835,"name":"_addLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13535,"src":"22549:13:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Pool_$12139_storage_ptr_$_t_uint256_$_t_struct$_Slippage_$12092_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChef.Pool storage pointer,uint256,struct PangoChef.Slippage memory) returns (uint256)"}},"id":12839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22549:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22540:46:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12841,"nodeType":"ExpressionStatement","src":"22540:46:47"},{"expression":{"id":12846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12842,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"22695:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":12844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":12116,"src":"22695:19:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22717:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22695:23:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":12847,"nodeType":"ExpressionStatement","src":"22695:23:47"}]},"id":12849,"nodeType":"IfStatement","src":"21904:826:47","trueBody":{"id":12820,"nodeType":"Block","src":"21944:423:47","statements":[{"expression":{"id":12805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"22024:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12801,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"22047:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":12802,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"22053:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12803,"name":"slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"22061:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}],"id":12800,"name":"_addLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13535,"src":"22033:13:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Pool_$12139_storage_ptr_$_t_uint256_$_t_struct$_Slippage_$12092_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChef.Pool storage pointer,uint256,struct PangoChef.Slippage memory) returns (uint256)"}},"id":12804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22033:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22024:46:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12806,"nodeType":"ExpressionStatement","src":"22024:46:47"},{"expression":{"id":12814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12807,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"22265:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":12809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":12116,"src":"22265:19:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12812,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"22294:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22287:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":12810,"name":"uint96","nodeType":"ElementaryTypeName","src":"22287:6:47","typeDescriptions":{}}},"id":12813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22287:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"22265:36:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":12815,"nodeType":"ExpressionStatement","src":"22265:36:47"},{"expression":{"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12816,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"22316:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22325:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22316:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12819,"nodeType":"ExpressionStatement","src":"22316:10:47"}]}},"id":12850,"nodeType":"IfStatement","src":"21479:1251:47","trueBody":{"id":12794,"nodeType":"Block","src":"21515:383:47","statements":[{"expression":{"id":12779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12777,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12770,"src":"21619:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12778,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"21636:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21619:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12780,"nodeType":"ExpressionStatement","src":"21619:23:47"},{"expression":{"id":12788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12781,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"21731:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":12783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":12116,"src":"21731:19:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12786,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"21760:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21753:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":12784,"name":"uint96","nodeType":"ElementaryTypeName","src":"21753:6:47","typeDescriptions":{}}},"id":12787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21753:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"21731:36:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":12789,"nodeType":"ExpressionStatement","src":"21731:36:47"},{"expression":{"id":12792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12790,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"21782:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":12791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21791:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21782:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12793,"nodeType":"ExpressionStatement","src":"21782:10:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12851,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"22815:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22825:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22815:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12857,"nodeType":"IfStatement","src":"22811:34:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12854,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"22835:8:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22835:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12856,"nodeType":"RevertStatement","src":"22828:17:47"}},{"assignments":[12859],"declarations":[{"constant":false,"id":12859,"mutability":"mutable","name":"newBalance","nameLocation":"22917:10:47","nodeType":"VariableDeclaration","scope":13007,"src":"22909:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12858,"name":"uint256","nodeType":"ElementaryTypeName","src":"22909:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12860,"nodeType":"VariableDeclarationStatement","src":"22909:18:47"},{"id":12948,"nodeType":"Block","src":"22938:1274:47","statements":[{"assignments":[12862],"declarations":[{"constant":false,"id":12862,"mutability":"mutable","name":"newTotalStaked","nameLocation":"23055:14:47","nodeType":"VariableDeclaration","scope":12948,"src":"23047:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12861,"name":"uint256","nodeType":"ElementaryTypeName","src":"23047:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12866,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12863,"name":"poolBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12748,"src":"23072:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12864,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"23086:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23072:20:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23047:45:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12867,"name":"newTotalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12862,"src":"23111:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":12868,"name":"MAX_STAKED_AMOUNT_IN_POOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12172,"src":"23128:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23111:42:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12873,"nodeType":"IfStatement","src":"23107:65:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12870,"name":"Overflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"23162:8:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":12871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23162:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12872,"nodeType":"RevertStatement","src":"23155:17:47"}},{"id":12947,"nodeType":"UncheckedBlock","src":"23187:1014:47","statements":[{"assignments":[12875],"declarations":[{"constant":false,"id":12875,"mutability":"mutable","name":"addedEntryTimes","nameLocation":"23316:15:47","nodeType":"VariableDeclaration","scope":12947,"src":"23308:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":12874,"name":"uint152","nodeType":"ElementaryTypeName","src":"23308:7:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"id":12883,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12878,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23342:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"23342:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12880,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"23360:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23342:24:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23334:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":12876,"name":"uint152","nodeType":"ElementaryTypeName","src":"23334:7:47","typeDescriptions":{}}},"id":12882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23334:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"VariableDeclarationStatement","src":"23308:59:47"},{"expression":{"id":12888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12884,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12743,"src":"23386:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"23386:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12887,"name":"addedEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"23424:15:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"23386:53:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":12889,"nodeType":"ExpressionStatement","src":"23386:53:47"},{"expression":{"id":12897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12890,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12743,"src":"23458:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":12892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"23458:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12895,"name":"newTotalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12862,"src":"23495:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23487:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":12893,"name":"uint104","nodeType":"ElementaryTypeName","src":"23487:7:47","typeDescriptions":{}}},"id":12896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23487:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"23458:52:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"id":12898,"nodeType":"ExpressionStatement","src":"23458:52:47"},{"assignments":[12901],"declarations":[{"constant":false,"id":12901,"mutability":"mutable","name":"userValueVariables","nameLocation":"23636:18:47","nodeType":"VariableDeclaration","scope":12947,"src":"23613:41:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":12900,"nodeType":"UserDefinedTypeName","pathNode":{"id":12899,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"23613:14:47"},"referencedDeclaration":12097,"src":"23613:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":12904,"initialValue":{"expression":{"id":12902,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"23657:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":12903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12105,"src":"23657:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23613:63:47"},{"assignments":[12906],"declarations":[{"constant":false,"id":12906,"mutability":"mutable","name":"oldBalance","nameLocation":"23703:10:47","nodeType":"VariableDeclaration","scope":12947,"src":"23695:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12905,"name":"uint256","nodeType":"ElementaryTypeName","src":"23695:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12909,"initialValue":{"expression":{"id":12907,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12901,"src":"23716:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":12908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"23716:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"VariableDeclarationStatement","src":"23695:47:47"},{"expression":{"id":12914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12910,"name":"newBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12859,"src":"23761:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12911,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12906,"src":"23774:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"23787:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23774:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23761:32:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12915,"nodeType":"ExpressionStatement","src":"23761:32:47"},{"expression":{"id":12923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12916,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12901,"src":"23812:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":12918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"23812:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12921,"name":"newBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12859,"src":"23849:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23841:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":12919,"name":"uint104","nodeType":"ElementaryTypeName","src":"23841:7:47","typeDescriptions":{}}},"id":12922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23841:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"23812:48:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"id":12924,"nodeType":"ExpressionStatement","src":"23812:48:47"},{"expression":{"id":12929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12925,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12901,"src":"23879:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":12927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"23879:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":12928,"name":"addedEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"23917:15:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"23879:53:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":12930,"nodeType":"ExpressionStatement","src":"23879:53:47"},{"expression":{"id":12945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12931,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"24105:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":12933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"previousValues","nodeType":"MemberAccess","referencedDeclaration":12110,"src":"24105:19:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12936,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12906,"src":"24136:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12937,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24150:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"24150:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":12939,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"24168:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":12940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":12112,"src":"24168:15:47","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"24150:33:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12942,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24149:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24136:48:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24128:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":12934,"name":"uint152","nodeType":"ElementaryTypeName","src":"24128:7:47","typeDescriptions":{}}},"id":12944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24128:57:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"24105:80:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":12946,"nodeType":"ExpressionStatement","src":"24105:80:47"}]}]},{"expression":{"arguments":[{"id":12950,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"24302:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":12951,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"24308:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":12949,"name":"_snapshotRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14004,"src":"24276:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer)"}},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24276:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12953,"nodeType":"ExpressionStatement","src":"24276:37:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12954,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12770,"src":"24422:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24440:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24422:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12972,"nodeType":"IfStatement","src":"24418:206:47","trueBody":{"id":12971,"nodeType":"Block","src":"24443:181:47","statements":[{"expression":{"arguments":[{"expression":{"id":12962,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24522:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"24522:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":12966,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24559:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_PangoChef_$14244","typeString":"contract PangoChef"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangoChef_$14244","typeString":"contract PangoChef"}],"id":12965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24551:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12964,"name":"address","nodeType":"ElementaryTypeName","src":"24551:7:47","typeDescriptions":{}}},"id":12967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24551:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12968,"name":"transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12770,"src":"24583:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":12958,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"24464:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenOrRecipient","nodeType":"MemberAccess","referencedDeclaration":12119,"src":"24464:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12957,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"24458:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$9395_$","typeString":"type(contract ERC20)"}},"id":12960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24458:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":12961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":9439,"src":"24458:45:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,address,uint256)"}},"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24458:154:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12970,"nodeType":"ExpressionStatement","src":"24458:154:47"}]}},{"eventCall":{"arguments":[{"id":12974,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12709,"src":"24646:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12975,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12711,"src":"24654:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12976,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12713,"src":"24662:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12977,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"24670:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12973,"name":"Staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12207,"src":"24639:6:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":12978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24639:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12979,"nodeType":"EmitStatement","src":"24634:43:47"},{"assignments":[12982],"declarations":[{"constant":false,"id":12982,"mutability":"mutable","name":"rewarder","nameLocation":"24758:8:47","nodeType":"VariableDeclaration","scope":13007,"src":"24748:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"},"typeName":{"id":12981,"nodeType":"UserDefinedTypeName","pathNode":{"id":12980,"name":"IRewarder","nodeType":"IdentifierPath","referencedDeclaration":18144,"src":"24748:9:47"},"referencedDeclaration":18144,"src":"24748:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"visibility":"internal"}],"id":12985,"initialValue":{"expression":{"id":12983,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"24769:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":12984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewarder","nodeType":"MemberAccess","referencedDeclaration":12125,"src":"24769:13:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"nodeType":"VariableDeclarationStatement","src":"24748:34:47"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12988,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"24805:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}],"id":12987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24797:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12986,"name":"address","nodeType":"ElementaryTypeName","src":"24797:7:47","typeDescriptions":{}}},"id":12989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24797:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24826:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24818:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12990,"name":"address","nodeType":"ElementaryTypeName","src":"24818:7:47","typeDescriptions":{}}},"id":12993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24818:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24797:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13006,"nodeType":"IfStatement","src":"24793:124:47","trueBody":{"id":13005,"nodeType":"Block","src":"24830:87:47","statements":[{"expression":{"arguments":[{"id":12998,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12709,"src":"24863:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12999,"name":"userId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12711,"src":"24871:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":13000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24879:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":13001,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12762,"src":"24886:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13002,"name":"newBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12859,"src":"24894:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12995,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"24845:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"id":12997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onReward","nodeType":"MemberAccess","referencedDeclaration":18143,"src":"24845:17:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,bool,uint256,uint256) external"}},"id":13003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24845:60:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13004,"nodeType":"ExpressionStatement","src":"24845:60:47"}]}}]},"documentation":{"id":12707,"nodeType":"StructuredDocumentation","src":"19754:675:47","text":" @notice Private function to deposit tokens to a pool.\n @param poolId The identifier of the pool to deposit to.\n @param userId The address of the user to deposit for.\n @param amount The amount of staking tokens to deposit when stakeType is REGULAR.\n               It should be zero when the stakeType is COMPOUND.\n               The reward token to pair when stakeType is COMPOUND_TO.\n @param stakeType The staking method (i.e.: staking, compounding, compounding to).\n @param slippage A struct defining the minimum and maximum amounts of tokens that can be\n                 paired with reward token."},"id":13008,"implemented":true,"kind":"function","modifiers":[],"name":"_stake","nameLocation":"20444:6:47","nodeType":"FunctionDefinition","parameters":{"id":12720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12709,"mutability":"mutable","name":"poolId","nameLocation":"20469:6:47","nodeType":"VariableDeclaration","scope":13008,"src":"20461:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12708,"name":"uint256","nodeType":"ElementaryTypeName","src":"20461:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12711,"mutability":"mutable","name":"userId","nameLocation":"20494:6:47","nodeType":"VariableDeclaration","scope":13008,"src":"20486:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12710,"name":"address","nodeType":"ElementaryTypeName","src":"20486:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12713,"mutability":"mutable","name":"amount","nameLocation":"20519:6:47","nodeType":"VariableDeclaration","scope":13008,"src":"20511:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12712,"name":"uint256","nodeType":"ElementaryTypeName","src":"20511:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12716,"mutability":"mutable","name":"stakeType","nameLocation":"20546:9:47","nodeType":"VariableDeclaration","scope":13008,"src":"20536:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"},"typeName":{"id":12715,"nodeType":"UserDefinedTypeName","pathNode":{"id":12714,"name":"StakeType","nodeType":"IdentifierPath","referencedDeclaration":12087,"src":"20536:9:47"},"referencedDeclaration":12087,"src":"20536:9:47","typeDescriptions":{"typeIdentifier":"t_enum$_StakeType_$12087","typeString":"enum PangoChef.StakeType"}},"visibility":"internal"},{"constant":false,"id":12719,"mutability":"mutable","name":"slippage","nameLocation":"20582:8:47","nodeType":"VariableDeclaration","scope":13008,"src":"20566:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage"},"typeName":{"id":12718,"nodeType":"UserDefinedTypeName","pathNode":{"id":12717,"name":"Slippage","nodeType":"IdentifierPath","referencedDeclaration":12092,"src":"20566:8:47"},"referencedDeclaration":12092,"src":"20566:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_storage_ptr","typeString":"struct PangoChef.Slippage"}},"visibility":"internal"}],"src":"20450:147:47"},"returnParameters":{"id":12721,"nodeType":"ParameterList","parameters":[],"src":"20606:0:47"},"scope":14244,"src":"20435:4489:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13227,"nodeType":"Block","src":"25237:2851:47","statements":[{"assignments":[13018],"declarations":[{"constant":false,"id":13018,"mutability":"mutable","name":"pool","nameLocation":"25325:4:47","nodeType":"VariableDeclaration","scope":13227,"src":"25312:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13017,"nodeType":"UserDefinedTypeName","pathNode":{"id":13016,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"25312:4:47"},"referencedDeclaration":12139,"src":"25312:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":13022,"initialValue":{"baseExpression":{"id":13019,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"25332:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":13021,"indexExpression":{"id":13020,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13011,"src":"25338:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25332:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25312:33:47"},{"assignments":[13025],"declarations":[{"constant":false,"id":13025,"mutability":"mutable","name":"user","nameLocation":"25369:4:47","nodeType":"VariableDeclaration","scope":13227,"src":"25356:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":13024,"nodeType":"UserDefinedTypeName","pathNode":{"id":13023,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"25356:4:47"},"referencedDeclaration":12117,"src":"25356:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"id":13031,"initialValue":{"baseExpression":{"expression":{"id":13026,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"25376:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"25376:10:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":13030,"indexExpression":{"expression":{"id":13028,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25387:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"25387:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25376:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25356:42:47"},{"expression":{"arguments":[{"id":13033,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"25465:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":13032,"name":"_onlyERC20Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"25450:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer) view"}},"id":13034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25450:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13035,"nodeType":"ExpressionStatement","src":"25450:20:47"},{"expression":{"arguments":[{"id":13037,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13011,"src":"25598:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13038,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"25606:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":13036,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13976,"src":"25574:23:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$returns$_t_uint256_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer) returns (uint256)"}},"id":13039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25574:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13040,"nodeType":"ExpressionStatement","src":"25574:37:47"},{"expression":{"arguments":[{"id":13042,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"25774:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},{"id":13043,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13011,"src":"25780:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13041,"name":"_decrementLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13775,"src":"25759:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_User_$12117_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct PangoChef.User storage pointer,uint256)"}},"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25759:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13045,"nodeType":"ExpressionStatement","src":"25759:28:47"},{"assignments":[13048],"declarations":[{"constant":false,"id":13048,"mutability":"mutable","name":"userValueVariables","nameLocation":"25894:18:47","nodeType":"VariableDeclaration","scope":13227,"src":"25871:41:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":13047,"nodeType":"UserDefinedTypeName","pathNode":{"id":13046,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"25871:14:47"},"referencedDeclaration":12097,"src":"25871:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":13051,"initialValue":{"expression":{"id":13049,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"25915:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12105,"src":"25915:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25871:63:47"},{"assignments":[13053],"declarations":[{"constant":false,"id":13053,"mutability":"mutable","name":"oldBalance","nameLocation":"25953:10:47","nodeType":"VariableDeclaration","scope":13227,"src":"25945:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13052,"name":"uint256","nodeType":"ElementaryTypeName","src":"25945:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13056,"initialValue":{"expression":{"id":13054,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13048,"src":"25966:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"25966:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"VariableDeclarationStatement","src":"25945:47:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13057,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"26007:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13058,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"26016:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26007:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13063,"nodeType":"IfStatement","src":"26003:53:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13060,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12031,"src":"26035:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26035:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13062,"nodeType":"RevertStatement","src":"26028:28:47"}},{"assignments":[13065],"declarations":[{"constant":false,"id":13065,"mutability":"mutable","name":"reward","nameLocation":"26178:6:47","nodeType":"VariableDeclaration","scope":13227,"src":"26170:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13064,"name":"uint256","nodeType":"ElementaryTypeName","src":"26170:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13071,"initialValue":{"arguments":[{"id":13067,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13011,"src":"26207:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13068,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"26215:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":13069,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"26221:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":13066,"name":"_userPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14034,"src":"26187:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$_t_uint256_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer) view returns (uint256)"}},"id":13070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26187:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26170:56:47"},{"expression":{"id":13076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13072,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"26237:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":12116,"src":"26237:19:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26259:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26237:23:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":13077,"nodeType":"ExpressionStatement","src":"26237:23:47"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13078,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"26353:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26363:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26353:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13081,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"26368:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26378:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26368:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26353:26:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13088,"nodeType":"IfStatement","src":"26349:49:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13085,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"26388:8:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26388:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13087,"nodeType":"RevertStatement","src":"26381:17:47"}},{"assignments":[13090],"declarations":[{"constant":false,"id":13090,"mutability":"mutable","name":"remaining","nameLocation":"26419:9:47","nodeType":"VariableDeclaration","scope":13227,"src":"26411:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13089,"name":"uint256","nodeType":"ElementaryTypeName","src":"26411:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13091,"nodeType":"VariableDeclarationStatement","src":"26411:17:47"},{"id":13153,"nodeType":"UncheckedBlock","src":"26439:899:47","statements":[{"expression":{"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13092,"name":"remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13090,"src":"26523:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13093,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"26535:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13094,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"26548:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26535:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26523:31:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13097,"nodeType":"ExpressionStatement","src":"26523:31:47"},{"assignments":[13100],"declarations":[{"constant":false,"id":13100,"mutability":"mutable","name":"poolValueVariables","nameLocation":"26659:18:47","nodeType":"VariableDeclaration","scope":13153,"src":"26636:41:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":13099,"nodeType":"UserDefinedTypeName","pathNode":{"id":13098,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"26636:14:47"},"referencedDeclaration":12097,"src":"26636:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":13103,"initialValue":{"expression":{"id":13101,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"26680:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12130,"src":"26680:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26636:63:47"},{"expression":{"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13104,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13100,"src":"26714:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"26714:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":13109,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"26752:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26744:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":13107,"name":"uint104","nodeType":"ElementaryTypeName","src":"26744:7:47","typeDescriptions":{}}},"id":13110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26744:15:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"26714:45:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"id":13112,"nodeType":"ExpressionStatement","src":"26714:45:47"},{"assignments":[13114],"declarations":[{"constant":false,"id":13114,"mutability":"mutable","name":"newEntryTimes","nameLocation":"26824:13:47","nodeType":"VariableDeclaration","scope":13153,"src":"26816:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13113,"name":"uint256","nodeType":"ElementaryTypeName","src":"26816:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13119,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13115,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26840:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"26840:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13117,"name":"remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13090,"src":"26858:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26840:27:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26816:51:47"},{"expression":{"id":13133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13120,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13100,"src":"26882:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"26882:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13125,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13100,"src":"26945:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"26945:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":13127,"name":"newEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"27003:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26945:71:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":13129,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13048,"src":"27040:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"27040:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"26945:129:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26919:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":13123,"name":"uint152","nodeType":"ElementaryTypeName","src":"26919:7:47","typeDescriptions":{}}},"id":13132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26919:170:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"26882:207:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":13134,"nodeType":"ExpressionStatement","src":"26882:207:47"},{"expression":{"id":13142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13135,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13048,"src":"27205:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"27205:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13140,"name":"remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13090,"src":"27242:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27234:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":13138,"name":"uint104","nodeType":"ElementaryTypeName","src":"27234:7:47","typeDescriptions":{}}},"id":13141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27234:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"27205:47:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"id":13143,"nodeType":"ExpressionStatement","src":"27205:47:47"},{"expression":{"id":13151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13144,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13048,"src":"27267:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"27267:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13149,"name":"newEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"27312:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27304:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":13147,"name":"uint152","nodeType":"ElementaryTypeName","src":"27304:7:47","typeDescriptions":{}}},"id":13150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27304:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"27267:59:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":13152,"nodeType":"ExpressionStatement","src":"27267:59:47"}]},{"expression":{"id":13158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13154,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"27432:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"previousValues","nodeType":"MemberAccess","referencedDeclaration":12110,"src":"27432:19:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27454:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27432:23:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":13159,"nodeType":"ExpressionStatement","src":"27432:23:47"},{"expression":{"arguments":[{"id":13161,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"27546:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":13162,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"27552:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":13160,"name":"_snapshotRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14004,"src":"27520:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer)"}},"id":13163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27520:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13164,"nodeType":"ExpressionStatement","src":"27520:37:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13165,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"27613:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27623:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27613:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13176,"nodeType":"IfStatement","src":"27609:62:47","trueBody":{"expression":{"arguments":[{"expression":{"id":13171,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27652:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"27652:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13173,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"27664:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13168,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"27626:12:47","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":13170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"27626:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":13174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27626:45:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13175,"nodeType":"ExpressionStatement","src":"27626:45:47"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"27686:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27696:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27686:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13190,"nodeType":"IfStatement","src":"27682:78:47","trueBody":{"expression":{"arguments":[{"expression":{"id":13185,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27741:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"27741:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13187,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"27753:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13181,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"27705:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenOrRecipient","nodeType":"MemberAccess","referencedDeclaration":12119,"src":"27705:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13180,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"27699:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$9395_$","typeString":"type(contract ERC20)"}},"id":13183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27699:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":13184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"27699:41:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":13188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27699:61:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13189,"nodeType":"ExpressionStatement","src":"27699:61:47"}},{"eventCall":{"arguments":[{"id":13192,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13011,"src":"27786:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13193,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27794:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"27794:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13195,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13013,"src":"27806:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13196,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"27814:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13191,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12196,"src":"27776:9:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":13197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27776:45:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13198,"nodeType":"EmitStatement","src":"27771:50:47"},{"assignments":[13201],"declarations":[{"constant":false,"id":13201,"mutability":"mutable","name":"rewarder","nameLocation":"27920:8:47","nodeType":"VariableDeclaration","scope":13227,"src":"27910:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"},"typeName":{"id":13200,"nodeType":"UserDefinedTypeName","pathNode":{"id":13199,"name":"IRewarder","nodeType":"IdentifierPath","referencedDeclaration":18144,"src":"27910:9:47"},"referencedDeclaration":18144,"src":"27910:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"visibility":"internal"}],"id":13204,"initialValue":{"expression":{"id":13202,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13018,"src":"27931:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewarder","nodeType":"MemberAccess","referencedDeclaration":12125,"src":"27931:13:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"nodeType":"VariableDeclarationStatement","src":"27910:34:47"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13207,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13201,"src":"27967:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}],"id":13206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27959:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13205,"name":"address","nodeType":"ElementaryTypeName","src":"27959:7:47","typeDescriptions":{}}},"id":13208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27959:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27988:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27980:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13209,"name":"address","nodeType":"ElementaryTypeName","src":"27980:7:47","typeDescriptions":{}}},"id":13212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27980:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27959:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13226,"nodeType":"IfStatement","src":"27955:126:47","trueBody":{"id":13225,"nodeType":"Block","src":"27992:89:47","statements":[{"expression":{"arguments":[{"id":13217,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13011,"src":"28025:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13218,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28033:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"28033:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":13220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28045:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":13221,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13065,"src":"28051:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13222,"name":"remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13090,"src":"28059:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13214,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13201,"src":"28007:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"id":13216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onReward","nodeType":"MemberAccess","referencedDeclaration":18143,"src":"28007:17:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,bool,uint256,uint256) external"}},"id":13223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28007:62:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13224,"nodeType":"ExpressionStatement","src":"28007:62:47"}]}}]},"documentation":{"id":13009,"nodeType":"StructuredDocumentation","src":"24932:240:47","text":" @notice Private function to withdraw and harvest from a pool.\n @param poolId The identifier of the pool to withdraw from.\n @param amount The amount of tokens to withdraw. Zero amount only harvests rewards."},"id":13228,"implemented":true,"kind":"function","modifiers":[],"name":"_withdraw","nameLocation":"25187:9:47","nodeType":"FunctionDefinition","parameters":{"id":13014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13011,"mutability":"mutable","name":"poolId","nameLocation":"25205:6:47","nodeType":"VariableDeclaration","scope":13228,"src":"25197:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13010,"name":"uint256","nodeType":"ElementaryTypeName","src":"25197:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13013,"mutability":"mutable","name":"amount","nameLocation":"25221:6:47","nodeType":"VariableDeclaration","scope":13228,"src":"25213:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13012,"name":"uint256","nodeType":"ElementaryTypeName","src":"25213:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25196:32:47"},"returnParameters":{"id":13015,"nodeType":"ParameterList","parameters":[],"src":"25237:0:47"},"scope":14244,"src":"25178:2910:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13363,"nodeType":"Block","src":"28667:2172:47","statements":[{"assignments":[13240],"declarations":[{"constant":false,"id":13240,"mutability":"mutable","name":"pool","nameLocation":"28755:4:47","nodeType":"VariableDeclaration","scope":13363,"src":"28742:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13239,"nodeType":"UserDefinedTypeName","pathNode":{"id":13238,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"28742:4:47"},"referencedDeclaration":12139,"src":"28742:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":13244,"initialValue":{"baseExpression":{"id":13241,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"28762:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":13243,"indexExpression":{"id":13242,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"28768:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28762:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"28742:40:47"},{"assignments":[13247],"declarations":[{"constant":false,"id":13247,"mutability":"mutable","name":"user","nameLocation":"28806:4:47","nodeType":"VariableDeclaration","scope":13363,"src":"28793:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":13246,"nodeType":"UserDefinedTypeName","pathNode":{"id":13245,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"28793:4:47"},"referencedDeclaration":12117,"src":"28793:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"id":13253,"initialValue":{"baseExpression":{"expression":{"id":13248,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"28813:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"28813:10:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":13252,"indexExpression":{"expression":{"id":13250,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28824:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"28824:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28813:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"nodeType":"VariableDeclarationStatement","src":"28793:42:47"},{"expression":{"arguments":[{"id":13255,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"28902:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":13254,"name":"_onlyERC20Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"28887:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer) view"}},"id":13256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28887:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13257,"nodeType":"ExpressionStatement","src":"28887:20:47"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13258,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"29165:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPair","nodeType":"MemberAccess","referencedDeclaration":12127,"src":"29165:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29192:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29184:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13260,"name":"address","nodeType":"ElementaryTypeName","src":"29184:7:47","typeDescriptions":{}}},"id":13263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29184:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29165:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13268,"nodeType":"IfStatement","src":"29161:56:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13265,"name":"InvalidToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12019,"src":"29203:12:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29203:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13267,"nodeType":"RevertStatement","src":"29196:21:47"}},{"expression":{"arguments":[{"id":13270,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"29345:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13271,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"29360:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":13269,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13976,"src":"29321:23:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$returns$_t_uint256_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer) returns (uint256)"}},"id":13272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29321:44:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13273,"nodeType":"ExpressionStatement","src":"29321:44:47"},{"expression":{"arguments":[{"id":13275,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"29488:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13276,"name":"compoundPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13233,"src":"29503:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13274,"name":"_incrementLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13704,"src":"29473:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29473:45:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13278,"nodeType":"ExpressionStatement","src":"29473:45:47"},{"expression":{"id":13285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13279,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13236,"src":"29608:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13281,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"29637:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13282,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"29652:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":13283,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13247,"src":"29658:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":13280,"name":"_userPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14034,"src":"29617:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$_t_uint256_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer) view returns (uint256)"}},"id":13284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29617:46:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29608:55:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13286,"nodeType":"ExpressionStatement","src":"29608:55:47"},{"expression":{"id":13291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13287,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13247,"src":"29674:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":12116,"src":"29674:19:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":13290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29696:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29674:23:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":13292,"nodeType":"ExpressionStatement","src":"29674:23:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13293,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13236,"src":"29785:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29795:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29785:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13299,"nodeType":"IfStatement","src":"29781:34:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13296,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"29805:8:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29805:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13298,"nodeType":"RevertStatement","src":"29798:17:47"}},{"assignments":[13301],"declarations":[{"constant":false,"id":13301,"mutability":"mutable","name":"userBalance","nameLocation":"30205:11:47","nodeType":"VariableDeclaration","scope":13363,"src":"30197:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13300,"name":"uint256","nodeType":"ElementaryTypeName","src":"30197:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13305,"initialValue":{"expression":{"expression":{"id":13302,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13247,"src":"30219:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12105,"src":"30219:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"id":13304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"30219:27:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"VariableDeclarationStatement","src":"30197:49:47"},{"expression":{"id":13320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13306,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13247,"src":"30257:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"previousValues","nodeType":"MemberAccess","referencedDeclaration":12110,"src":"30257:19:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13311,"name":"userBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13301,"src":"30288:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13312,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30303:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"30303:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":13314,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13247,"src":"30321:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":12112,"src":"30321:15:47","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"30303:33:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13317,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30302:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30288:49:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30280:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":13309,"name":"uint152","nodeType":"ElementaryTypeName","src":"30280:7:47","typeDescriptions":{}}},"id":13319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30280:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"30257:81:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":13321,"nodeType":"ExpressionStatement","src":"30257:81:47"},{"expression":{"arguments":[{"id":13323,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"30429:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":13324,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13247,"src":"30435:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":13322,"name":"_snapshotRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14004,"src":"30403:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer)"}},"id":13325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30403:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13326,"nodeType":"ExpressionStatement","src":"30403:37:47"},{"eventCall":{"arguments":[{"id":13328,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"30556:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13329,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"30571:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"30571:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":13331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30583:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":13332,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13236,"src":"30586:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13327,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12196,"src":"30546:9:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":13333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30546:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13334,"nodeType":"EmitStatement","src":"30541:52:47"},{"assignments":[13337],"declarations":[{"constant":false,"id":13337,"mutability":"mutable","name":"rewarder","nameLocation":"30661:8:47","nodeType":"VariableDeclaration","scope":13363,"src":"30651:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"},"typeName":{"id":13336,"nodeType":"UserDefinedTypeName","pathNode":{"id":13335,"name":"IRewarder","nodeType":"IdentifierPath","referencedDeclaration":18144,"src":"30651:9:47"},"referencedDeclaration":18144,"src":"30651:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"visibility":"internal"}],"id":13340,"initialValue":{"expression":{"id":13338,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13240,"src":"30672:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewarder","nodeType":"MemberAccess","referencedDeclaration":12125,"src":"30672:13:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"nodeType":"VariableDeclarationStatement","src":"30651:34:47"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13343,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13337,"src":"30708:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}],"id":13342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30700:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13341,"name":"address","nodeType":"ElementaryTypeName","src":"30700:7:47","typeDescriptions":{}}},"id":13344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30700:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30729:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30721:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13345,"name":"address","nodeType":"ElementaryTypeName","src":"30721:7:47","typeDescriptions":{}}},"id":13348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30721:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30700:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13362,"nodeType":"IfStatement","src":"30696:136:47","trueBody":{"id":13361,"nodeType":"Block","src":"30733:99:47","statements":[{"expression":{"arguments":[{"id":13353,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"30766:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13354,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"30781:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"30781:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":13356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30793:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":13357,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13236,"src":"30800:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13358,"name":"userBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13301,"src":"30808:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13350,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13337,"src":"30748:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}},"id":13352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onReward","nodeType":"MemberAccess","referencedDeclaration":18143,"src":"30748:17:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,bool,uint256,uint256) external"}},"id":13359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30748:72:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13360,"nodeType":"ExpressionStatement","src":"30748:72:47"}]}}]},"documentation":{"id":13229,"nodeType":"StructuredDocumentation","src":"28096:430:47","text":" @notice Private function to harvest from a pool without resetting its staking duration.\n @dev Harvested rewards must not leave the contract, so that they can be used in compounding.\n @param harvestPoolId The identifier of the pool to harvest from.\n @param compoundPoolId The identifier of the pool the rewards will be compounded to.\n @return reward The amount of harvested rewards."},"id":13364,"implemented":true,"kind":"function","modifiers":[],"name":"_harvestWithoutReset","nameLocation":"28541:20:47","nodeType":"FunctionDefinition","parameters":{"id":13234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13231,"mutability":"mutable","name":"harvestPoolId","nameLocation":"28580:13:47","nodeType":"VariableDeclaration","scope":13364,"src":"28572:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13230,"name":"uint256","nodeType":"ElementaryTypeName","src":"28572:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13233,"mutability":"mutable","name":"compoundPoolId","nameLocation":"28612:14:47","nodeType":"VariableDeclaration","scope":13364,"src":"28604:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13232,"name":"uint256","nodeType":"ElementaryTypeName","src":"28604:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28561:72:47"},"returnParameters":{"id":13237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13236,"mutability":"mutable","name":"reward","nameLocation":"28659:6:47","nodeType":"VariableDeclaration","scope":13364,"src":"28651:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13235,"name":"uint256","nodeType":"ElementaryTypeName","src":"28651:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28650:16:47"},"scope":14244,"src":"28532:2307:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13534,"nodeType":"Block","src":"31774:2193:47","statements":[{"assignments":[13379],"declarations":[{"constant":false,"id":13379,"mutability":"mutable","name":"poolToken","nameLocation":"31793:9:47","nodeType":"VariableDeclaration","scope":13534,"src":"31785:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13378,"name":"address","nodeType":"ElementaryTypeName","src":"31785:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13382,"initialValue":{"expression":{"id":13380,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"31805:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenOrRecipient","nodeType":"MemberAccess","referencedDeclaration":12119,"src":"31805:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"31785:41:47"},{"assignments":[13384],"declarations":[{"constant":false,"id":13384,"mutability":"mutable","name":"rewardPair","nameLocation":"31845:10:47","nodeType":"VariableDeclaration","scope":13534,"src":"31837:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13383,"name":"address","nodeType":"ElementaryTypeName","src":"31837:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13387,"initialValue":{"expression":{"id":13385,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"31858:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPair","nodeType":"MemberAccess","referencedDeclaration":12127,"src":"31858:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"31837:36:47"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13388,"name":"rewardPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13384,"src":"31985:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32007:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31999:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13389,"name":"address","nodeType":"ElementaryTypeName","src":"31999:7:47","typeDescriptions":{}}},"id":13392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31999:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31985:24:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13397,"nodeType":"IfStatement","src":"31981:50:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13394,"name":"InvalidType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12015,"src":"32018:11:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32018:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13396,"nodeType":"RevertStatement","src":"32011:20:47"}},{"assignments":[13399,13401,null],"declarations":[{"constant":false,"id":13399,"mutability":"mutable","name":"reserve0","nameLocation":"32098:8:47","nodeType":"VariableDeclaration","scope":13534,"src":"32090:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13398,"name":"uint256","nodeType":"ElementaryTypeName","src":"32090:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13401,"mutability":"mutable","name":"reserve1","nameLocation":"32116:8:47","nodeType":"VariableDeclaration","scope":13534,"src":"32108:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13400,"name":"uint256","nodeType":"ElementaryTypeName","src":"32108:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":13407,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":13403,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13379,"src":"32144:9:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13402,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"32130:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$18128_$","typeString":"type(contract IPangolinPair)"}},"id":13404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32130:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$18128","typeString":"contract IPangolinPair"}},"id":13405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserves","nodeType":"MemberAccess","referencedDeclaration":18120,"src":"32130:36:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"function () view external returns (uint112,uint112,uint32)"}},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32130:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$","typeString":"tuple(uint112,uint112,uint32)"}},"nodeType":"VariableDeclarationStatement","src":"32089:79:47"},{"assignments":[13409],"declarations":[{"constant":false,"id":13409,"mutability":"mutable","name":"pairAmount","nameLocation":"32261:10:47","nodeType":"VariableDeclaration","scope":13534,"src":"32253:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13408,"name":"uint256","nodeType":"ElementaryTypeName","src":"32253:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13429,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13412,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"32282:12:47","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}],"id":13411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32274:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13410,"name":"address","nodeType":"ElementaryTypeName","src":"32274:7:47","typeDescriptions":{}}},"id":13413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32274:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13414,"name":"rewardPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13384,"src":"32298:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"32274:34:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13422,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"32377:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13423,"name":"rewardAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"32388:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32377:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32376:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13426,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"32404:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32376:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32274:138:47","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13416,"name":"reserve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"32325:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13417,"name":"rewardAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"32336:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32325:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13419,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32324:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13420,"name":"reserve0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"32352:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32324:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32253:159:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13430,"name":"pairAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"32481:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":13431,"name":"slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13373,"src":"32494:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}},"id":13432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxPairAmount","nodeType":"MemberAccess","referencedDeclaration":12091,"src":"32494:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32481:35:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13437,"nodeType":"IfStatement","src":"32477:62:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13434,"name":"HighSlippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12021,"src":"32525:12:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32525:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13436,"nodeType":"RevertStatement","src":"32518:21:47"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13438,"name":"pairAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"32554:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13439,"name":"slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13373,"src":"32567:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}},"id":13440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minPairAmount","nodeType":"MemberAccess","referencedDeclaration":12089,"src":"32567:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32554:35:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13445,"nodeType":"IfStatement","src":"32550:62:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13442,"name":"HighSlippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12021,"src":"32598:12:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32598:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13444,"nodeType":"RevertStatement","src":"32591:21:47"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13446,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"32705:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"32705:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32717:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32705:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13513,"nodeType":"Block","src":"33490:176:47","statements":[{"expression":{"arguments":[{"expression":{"id":13507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33620:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"33620:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13509,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13379,"src":"33632:9:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13510,"name":"pairAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"33643:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13504,"name":"rewardPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13384,"src":"33591:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13503,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"33585:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$9395_$","typeString":"type(contract ERC20)"}},"id":13505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33585:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":13506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":9439,"src":"33585:34:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,address,uint256)"}},"id":13511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33585:69:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13512,"nodeType":"ExpressionStatement","src":"33585:69:47"}]},"id":13514,"nodeType":"IfStatement","src":"32701:965:47","trueBody":{"id":13502,"nodeType":"Block","src":"32720:764:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13450,"name":"rewardPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13384,"src":"32791:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":13451,"name":"wrappedNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12160,"src":"32805:18:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"32791:32:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13456,"nodeType":"IfStatement","src":"32787:59:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13453,"name":"InvalidToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12019,"src":"32832:12:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32832:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13455,"nodeType":"RevertStatement","src":"32825:21:47"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13457,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"32919:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"32919:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13459,"name":"slippage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13373,"src":"32932:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage memory"}},"id":13460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxPairAmount","nodeType":"MemberAccess","referencedDeclaration":12091,"src":"32932:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32919:35:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13465,"nodeType":"IfStatement","src":"32915:63:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13462,"name":"InvalidAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12023,"src":"32963:13:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32963:15:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13464,"nodeType":"RevertStatement","src":"32956:22:47"}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":13467,"name":"rewardPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13384,"src":"33041:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13466,"name":"IWAVAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18150,"src":"33034:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWAVAX_$18150_$","typeString":"type(contract IWAVAX)"}},"id":13468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33034:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWAVAX_$18150","typeString":"contract IWAVAX"}},"id":13469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":18149,"src":"33034:26:47","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":13470,"name":"pairAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"33069:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"33034:47:47","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":13472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33034:49:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13473,"nodeType":"ExpressionStatement","src":"33034:49:47"},{"expression":{"arguments":[{"id":13478,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13379,"src":"33216:9:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13479,"name":"pairAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"33227:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":13475,"name":"rewardPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13384,"src":"33191:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13474,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"33185:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$9395_$","typeString":"type(contract ERC20)"}},"id":13476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33185:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":13477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"33185:30:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":13480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33185:53:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13481,"nodeType":"ExpressionStatement","src":"33185:53:47"},{"id":13501,"nodeType":"UncheckedBlock","src":"33284:189:47","statements":[{"assignments":[13483],"declarations":[{"constant":false,"id":13483,"mutability":"mutable","name":"refundAmount","nameLocation":"33321:12:47","nodeType":"VariableDeclaration","scope":13501,"src":"33313:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13482,"name":"uint256","nodeType":"ElementaryTypeName","src":"33313:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13488,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13484,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33336:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"33336:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13486,"name":"pairAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"33348:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33336:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33313:45:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13489,"name":"refundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"33381:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33397:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"33381:17:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13500,"nodeType":"IfStatement","src":"33377:80:47","trueBody":{"expression":{"arguments":[{"expression":{"id":13495,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33432:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"33432:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13497,"name":"refundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"33444:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13492,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"33400:15:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$9480_$","typeString":"type(library SafeTransferLib)"}},"id":13494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":9417,"src":"33400:31:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33400:57:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13499,"nodeType":"ExpressionStatement","src":"33400:57:47"}}]}]}},{"expression":{"arguments":[{"id":13518,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13379,"src":"33779:9:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13519,"name":"rewardAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"33790:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13515,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"33753:12:47","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"33753:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":13520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33753:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13521,"nodeType":"ExpressionStatement","src":"33753:50:47"},{"expression":{"id":13532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13522,"name":"poolTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13376,"src":"33897:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":13529,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"33953:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_PangoChef_$14244","typeString":"contract PangoChef"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangoChef_$14244","typeString":"contract PangoChef"}],"id":13528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33945:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13527,"name":"address","nodeType":"ElementaryTypeName","src":"33945:7:47","typeDescriptions":{}}},"id":13530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33945:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":13524,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13379,"src":"33929:9:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13523,"name":"IPangolinPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"33915:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangolinPair_$18128_$","typeString":"type(contract IPangolinPair)"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33915:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinPair_$18128","typeString":"contract IPangolinPair"}},"id":13526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":18127,"src":"33915:29:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) external returns (uint256)"}},"id":13531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33915:44:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33897:62:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13533,"nodeType":"ExpressionStatement","src":"33897:62:47"}]},"documentation":{"id":13365,"nodeType":"StructuredDocumentation","src":"30847:755:47","text":" @notice Private function to add liquidity to a Pangolin pair when compounding.\n @param pool The properties of the pool that has the liquidity token to add liquidity to.\n @param rewardAmount The amount of reward tokens that will be paired up. Requires that the\n                     reward amount is already set aside for adding liquidity. That means,\n                     user does not need to send the rewards, and it was set aside through\n                     harvesting.\n @param slippage A struct defining the minimum and maximum amounts of tokens that can be\n                 paired with reward token.\n @return poolTokenAmount The amount of liquidity tokens that gets minted."},"id":13535,"implemented":true,"kind":"function","modifiers":[],"name":"_addLiquidity","nameLocation":"31617:13:47","nodeType":"FunctionDefinition","parameters":{"id":13374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13368,"mutability":"mutable","name":"pool","nameLocation":"31654:4:47","nodeType":"VariableDeclaration","scope":13535,"src":"31641:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13367,"nodeType":"UserDefinedTypeName","pathNode":{"id":13366,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"31641:4:47"},"referencedDeclaration":12139,"src":"31641:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"},{"constant":false,"id":13370,"mutability":"mutable","name":"rewardAmount","nameLocation":"31677:12:47","nodeType":"VariableDeclaration","scope":13535,"src":"31669:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13369,"name":"uint256","nodeType":"ElementaryTypeName","src":"31669:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13373,"mutability":"mutable","name":"slippage","nameLocation":"31716:8:47","nodeType":"VariableDeclaration","scope":13535,"src":"31700:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_memory_ptr","typeString":"struct PangoChef.Slippage"},"typeName":{"id":13372,"nodeType":"UserDefinedTypeName","pathNode":{"id":13371,"name":"Slippage","nodeType":"IdentifierPath","referencedDeclaration":12092,"src":"31700:8:47"},"referencedDeclaration":12092,"src":"31700:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_Slippage_$12092_storage_ptr","typeString":"struct PangoChef.Slippage"}},"visibility":"internal"}],"src":"31630:101:47"},"returnParameters":{"id":13377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13376,"mutability":"mutable","name":"poolTokenAmount","nameLocation":"31757:15:47","nodeType":"VariableDeclaration","scope":13535,"src":"31749:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13375,"name":"uint256","nodeType":"ElementaryTypeName","src":"31749:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31748:25:47"},"scope":14244,"src":"31608:2359:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13660,"nodeType":"Block","src":"34280:2055:47","statements":[{"assignments":[13545],"declarations":[{"constant":false,"id":13545,"mutability":"mutable","name":"pool","nameLocation":"34367:4:47","nodeType":"VariableDeclaration","scope":13660,"src":"34354:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13544,"nodeType":"UserDefinedTypeName","pathNode":{"id":13543,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"34354:4:47"},"referencedDeclaration":12139,"src":"34354:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":13549,"initialValue":{"baseExpression":{"id":13546,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"34374:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":13548,"indexExpression":{"id":13547,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"34380:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34374:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"34354:33:47"},{"assignments":[13552],"declarations":[{"constant":false,"id":13552,"mutability":"mutable","name":"user","nameLocation":"34411:4:47","nodeType":"VariableDeclaration","scope":13660,"src":"34398:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":13551,"nodeType":"UserDefinedTypeName","pathNode":{"id":13550,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"34398:4:47"},"referencedDeclaration":12117,"src":"34398:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"id":13558,"initialValue":{"baseExpression":{"expression":{"id":13553,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"34418:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"34418:10:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":13557,"indexExpression":{"expression":{"id":13555,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"34429:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"34429:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34418:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"nodeType":"VariableDeclarationStatement","src":"34398:42:47"},{"expression":{"arguments":[{"id":13560,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"34507:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}],"id":13559,"name":"_onlyERC20Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13912,"src":"34492:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$returns$__$","typeString":"function (struct PangoChef.Pool storage pointer) view"}},"id":13561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34492:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13562,"nodeType":"ExpressionStatement","src":"34492:20:47"},{"expression":{"arguments":[{"id":13564,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"34623:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},{"id":13565,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"34629:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13563,"name":"_decrementLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13775,"src":"34608:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_User_$12117_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct PangoChef.User storage pointer,uint256)"}},"id":13566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34608:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13567,"nodeType":"ExpressionStatement","src":"34608:28:47"},{"assignments":[13570],"declarations":[{"constant":false,"id":13570,"mutability":"mutable","name":"poolValueVariables","nameLocation":"34733:18:47","nodeType":"VariableDeclaration","scope":13660,"src":"34710:41:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":13569,"nodeType":"UserDefinedTypeName","pathNode":{"id":13568,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"34710:14:47"},"referencedDeclaration":12097,"src":"34710:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":13573,"initialValue":{"expression":{"id":13571,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"34754:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12130,"src":"34754:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"34710:63:47"},{"assignments":[13576],"declarations":[{"constant":false,"id":13576,"mutability":"mutable","name":"userValueVariables","nameLocation":"34807:18:47","nodeType":"VariableDeclaration","scope":13660,"src":"34784:41:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":13575,"nodeType":"UserDefinedTypeName","pathNode":{"id":13574,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"34784:14:47"},"referencedDeclaration":12097,"src":"34784:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":13579,"initialValue":{"expression":{"id":13577,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"34828:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12105,"src":"34828:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"34784:63:47"},{"assignments":[13581],"declarations":[{"constant":false,"id":13581,"mutability":"mutable","name":"balance","nameLocation":"34949:7:47","nodeType":"VariableDeclaration","scope":13660,"src":"34941:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":13580,"name":"uint104","nodeType":"ElementaryTypeName","src":"34941:7:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"id":13584,"initialValue":{"expression":{"id":13582,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13576,"src":"34959:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"34959:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"VariableDeclarationStatement","src":"34941:44:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint104","typeString":"uint104"},"id":13587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13585,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13581,"src":"35000:7:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35011:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"35000:12:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13591,"nodeType":"IfStatement","src":"34996:35:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13588,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"35021:8:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35021:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13590,"nodeType":"RevertStatement","src":"35014:17:47"}},{"id":13605,"nodeType":"UncheckedBlock","src":"35042:161:47","statements":[{"expression":{"id":13596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13592,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13570,"src":"35067:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"35067:26:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":13595,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13581,"src":"35097:7:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"35067:37:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"id":13597,"nodeType":"ExpressionStatement","src":"35067:37:47"},{"expression":{"id":13603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13598,"name":"poolValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13570,"src":"35119:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"35119:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":13601,"name":"userValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13576,"src":"35157:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":13602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"35157:34:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"35119:72:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"id":13604,"nodeType":"ExpressionStatement","src":"35119:72:47"}]},{"expression":{"id":13613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"35263:38:47","subExpression":{"baseExpression":{"expression":{"baseExpression":{"id":13606,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"35270:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":13608,"indexExpression":{"id":13607,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"35276:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35270:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"id":13609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"35270:19:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":13612,"indexExpression":{"expression":{"id":13610,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35290:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"35290:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"35270:31:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13614,"nodeType":"ExpressionStatement","src":"35263:38:47"},{"condition":{"id":13615,"name":"withdrawStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13540,"src":"35398:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13635,"nodeType":"IfStatement","src":"35394:169:47","trueBody":{"id":13634,"nodeType":"Block","src":"35413:150:47","statements":[{"expression":{"arguments":[{"expression":{"id":13621,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35470:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"35470:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13623,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13581,"src":"35482:7:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint104","typeString":"uint104"}],"expression":{"arguments":[{"expression":{"id":13617,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"35434:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenOrRecipient","nodeType":"MemberAccess","referencedDeclaration":12119,"src":"35434:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13616,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"35428:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$9395_$","typeString":"type(contract ERC20)"}},"id":13619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35428:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":13620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"35428:41:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":13624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35428:62:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13625,"nodeType":"ExpressionStatement","src":"35428:62:47"},{"eventCall":{"arguments":[{"id":13627,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"35520:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13628,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35528:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"35528:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13630,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13581,"src":"35540:7:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},{"hexValue":"30","id":13631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint104","typeString":"uint104"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13626,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12196,"src":"35510:9:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":13632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35510:41:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13633,"nodeType":"EmitStatement","src":"35505:46:47"}]}},{"assignments":[13637],"declarations":[{"constant":false,"id":13637,"mutability":"mutable","name":"rewarder","nameLocation":"35865:8:47","nodeType":"VariableDeclaration","scope":13660,"src":"35857:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13636,"name":"address","nodeType":"ElementaryTypeName","src":"35857:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13643,"initialValue":{"arguments":[{"expression":{"id":13640,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"35884:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewarder","nodeType":"MemberAccess","referencedDeclaration":12125,"src":"35884:13:47","typeDescriptions":{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRewarder_$18144","typeString":"contract IRewarder"}],"id":13639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35876:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13638,"name":"address","nodeType":"ElementaryTypeName","src":"35876:7:47","typeDescriptions":{}}},"id":13642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35876:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"35857:41:47"},{"assignments":[13645],"declarations":[{"constant":false,"id":13645,"mutability":"mutable","name":"rewarderData","nameLocation":"35922:12:47","nodeType":"VariableDeclaration","scope":13660,"src":"35909:25:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13644,"name":"bytes","nodeType":"ElementaryTypeName","src":"35909:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":13658,"initialValue":{"arguments":[{"expression":{"expression":{"id":13648,"name":"IRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18144,"src":"35974:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRewarder_$18144_$","typeString":"type(contract IRewarder)"}},"id":13649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onReward","nodeType":"MemberAccess","referencedDeclaration":18143,"src":"35974:18:47","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_uint256_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function IRewarder.onReward(uint256,address,bool,uint256,uint256)"}},"id":13650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"35974:27:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13651,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13538,"src":"36016:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13652,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36037:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"36037:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":13654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36062:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":13655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36081:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":13656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36097:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":13646,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35937:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"35937:22:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":13657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35937:172:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"35909:200:47"},{"AST":{"nodeType":"YulBlock","src":"36221:107:47","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"36245:3:47"},"nodeType":"YulFunctionCall","src":"36245:5:47"},{"name":"rewarder","nodeType":"YulIdentifier","src":"36252:8:47"},{"kind":"number","nodeType":"YulLiteral","src":"36262:1:47","type":"","value":"0"},{"arguments":[{"name":"rewarderData","nodeType":"YulIdentifier","src":"36269:12:47"},{"kind":"number","nodeType":"YulLiteral","src":"36283:4:47","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36265:3:47"},"nodeType":"YulFunctionCall","src":"36265:23:47"},{"arguments":[{"name":"rewarderData","nodeType":"YulIdentifier","src":"36296:12:47"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"36290:5:47"},"nodeType":"YulFunctionCall","src":"36290:19:47"},{"kind":"number","nodeType":"YulLiteral","src":"36311:1:47","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"36314:1:47","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"36240:4:47"},"nodeType":"YulFunctionCall","src":"36240:76:47"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"36236:3:47"},"nodeType":"YulFunctionCall","src":"36236:81:47"},"nodeType":"YulExpressionStatement","src":"36236:81:47"}]},"evmVersion":"london","externalReferences":[{"declaration":13637,"isOffset":false,"isSlot":false,"src":"36252:8:47","valueSize":1},{"declaration":13645,"isOffset":false,"isSlot":false,"src":"36269:12:47","valueSize":1},{"declaration":13645,"isOffset":false,"isSlot":false,"src":"36296:12:47","valueSize":1}],"id":13659,"nodeType":"InlineAssembly","src":"36212:116:47"}]},"documentation":{"id":13536,"nodeType":"StructuredDocumentation","src":"33975:231:47","text":" @notice Private function to exit from a pool by forgoing all rewards.\n @param poolId The identifier of the pool to exit from.\n @param withdrawStake An option to forgo stake along with the rewards."},"id":13661,"implemented":true,"kind":"function","modifiers":[],"name":"_emergencyExit","nameLocation":"34221:14:47","nodeType":"FunctionDefinition","parameters":{"id":13541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13538,"mutability":"mutable","name":"poolId","nameLocation":"34244:6:47","nodeType":"VariableDeclaration","scope":13661,"src":"34236:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13537,"name":"uint256","nodeType":"ElementaryTypeName","src":"34236:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13540,"mutability":"mutable","name":"withdrawStake","nameLocation":"34257:13:47","nodeType":"VariableDeclaration","scope":13661,"src":"34252:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13539,"name":"bool","nodeType":"ElementaryTypeName","src":"34252:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34235:36:47"},"returnParameters":{"id":13542,"nodeType":"ParameterList","parameters":[],"src":"34280:0:47"},"scope":14244,"src":"34212:2123:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13703,"nodeType":"Block","src":"36714:327:47","statements":[{"condition":{"arguments":[{"id":13676,"name":"compoundPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13666,"src":"36849:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"baseExpression":{"id":13669,"name":"lockedPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"36806:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet storage ref))"}},"id":13671,"indexExpression":{"id":13670,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13664,"src":"36818:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36806:26:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$","typeString":"mapping(address => struct EnumerableSet.UintSet storage ref)"}},"id":13674,"indexExpression":{"expression":{"id":13672,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36833:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"36833:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36806:38:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":13675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"36806:42:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$8877_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$8877_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":13677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36806:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13688,"nodeType":"IfStatement","src":"36802:128:47","trueBody":{"expression":{"id":13686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"36879:51:47","subExpression":{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":13678,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"36881:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":13680,"indexExpression":{"id":13679,"name":"compoundPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13666,"src":"36887:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36881:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"id":13681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"36881:27:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":13684,"indexExpression":{"expression":{"id":13682,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36909:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"36909:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36881:39:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"id":13685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockCount","nodeType":"MemberAccess","referencedDeclaration":12114,"src":"36881:49:47","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"id":13687,"nodeType":"ExpressionStatement","src":"36879:51:47"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"baseExpression":{"id":13689,"name":"lockedPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"36947:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet storage ref))"}},"id":13691,"indexExpression":{"id":13690,"name":"harvestPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13664,"src":"36959:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36947:26:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$","typeString":"mapping(address => struct EnumerableSet.UintSet storage ref)"}},"id":13694,"indexExpression":{"expression":{"id":13692,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36974:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"36974:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36947:38:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":13695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":8955,"src":"36947:45:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$8877_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$8877_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":13696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"36947:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13697,"name":"MAX_LOCK_COUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12182,"src":"36997:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36947:64:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13702,"nodeType":"IfStatement","src":"36943:90:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13699,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"37020:11:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37020:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13701,"nodeType":"RevertStatement","src":"37013:20:47"}}]},"documentation":{"id":13662,"nodeType":"StructuredDocumentation","src":"36343:286:47","text":" @notice Private function increment the lock count on compoundable pool.\n @param harvestPoolId The identifier of the pool the user is harvesting the rewards from.\n @param compoundPoolId The identifier of the pool that the rewards will be compounded to."},"id":13704,"implemented":true,"kind":"function","modifiers":[],"name":"_incrementLock","nameLocation":"36644:14:47","nodeType":"FunctionDefinition","parameters":{"id":13667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13664,"mutability":"mutable","name":"harvestPoolId","nameLocation":"36667:13:47","nodeType":"VariableDeclaration","scope":13704,"src":"36659:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13663,"name":"uint256","nodeType":"ElementaryTypeName","src":"36659:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13666,"mutability":"mutable","name":"compoundPoolId","nameLocation":"36690:14:47","nodeType":"VariableDeclaration","scope":13704,"src":"36682:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13665,"name":"uint256","nodeType":"ElementaryTypeName","src":"36682:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36658:47:47"},"returnParameters":{"id":13668,"nodeType":"ParameterList","parameters":[],"src":"36714:0:47"},"scope":14244,"src":"36635:406:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13774,"nodeType":"Block","src":"37475:558:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint56","typeString":"uint56"},"id":13716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13713,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13708,"src":"37490:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockCount","nodeType":"MemberAccess","referencedDeclaration":12114,"src":"37490:14:47","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37508:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37490:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13720,"nodeType":"IfStatement","src":"37486:40:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13717,"name":"Locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12001,"src":"37518:6:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37518:8:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13719,"nodeType":"RevertStatement","src":"37511:15:47"}},{"body":{"id":13772,"nodeType":"Block","src":"37666:360:47","statements":[{"id":13738,"nodeType":"UncheckedBlock","src":"37681:56:47","statements":[{"expression":{"id":13736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"37710:11:47","subExpression":{"id":13735,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13722,"src":"37712:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13737,"nodeType":"ExpressionStatement","src":"37710:11:47"}]},{"assignments":[13740],"declarations":[{"constant":false,"id":13740,"mutability":"mutable","name":"lockedPoolId","nameLocation":"37759:12:47","nodeType":"VariableDeclaration","scope":13772,"src":"37751:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13739,"name":"uint256","nodeType":"ElementaryTypeName","src":"37751:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13750,"initialValue":{"arguments":[{"id":13748,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13722,"src":"37817:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"baseExpression":{"id":13741,"name":"lockedPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"37774:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet storage ref))"}},"id":13743,"indexExpression":{"id":13742,"name":"withdrawPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13710,"src":"37786:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37774:27:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$","typeString":"mapping(address => struct EnumerableSet.UintSet storage ref)"}},"id":13746,"indexExpression":{"expression":{"id":13744,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"37802:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"37802:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37774:39:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":13747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":8976,"src":"37774:42:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$8877_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$8877_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":13749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37774:53:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"37751:76:47"},{"condition":{"arguments":[{"id":13758,"name":"lockedPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13740,"src":"37893:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"baseExpression":{"id":13751,"name":"lockedPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"37846:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet storage ref))"}},"id":13753,"indexExpression":{"id":13752,"name":"withdrawPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13710,"src":"37858:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37846:27:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$","typeString":"mapping(address => struct EnumerableSet.UintSet storage ref)"}},"id":13756,"indexExpression":{"expression":{"id":13754,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"37874:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"37874:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37846:39:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":13757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":8919,"src":"37846:46:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$8877_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$8877_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":13759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37846:60:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13771,"nodeType":"IfStatement","src":"37842:173:47","trueBody":{"id":13770,"nodeType":"Block","src":"37908:107:47","statements":[{"expression":{"id":13768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"37927:49:47","subExpression":{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":13760,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"37929:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":13762,"indexExpression":{"id":13761,"name":"lockedPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13740,"src":"37935:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37929:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"id":13763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"users","nodeType":"MemberAccess","referencedDeclaration":12138,"src":"37929:25:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_User_$12117_storage_$","typeString":"mapping(address => struct PangoChef.User storage ref)"}},"id":13766,"indexExpression":{"expression":{"id":13764,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"37955:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"37955:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37929:37:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage","typeString":"struct PangoChef.User storage ref"}},"id":13767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockCount","nodeType":"MemberAccess","referencedDeclaration":12114,"src":"37929:47:47","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"id":13769,"nodeType":"ExpressionStatement","src":"37927:49:47"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13732,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13722,"src":"37639:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37652:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37639:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13773,"initializationExpression":{"assignments":[13722],"declarations":[{"constant":false,"id":13722,"mutability":"mutable","name":"lastIndex","nameLocation":"37564:9:47","nodeType":"VariableDeclaration","scope":13773,"src":"37556:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13721,"name":"uint256","nodeType":"ElementaryTypeName","src":"37556:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13731,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"baseExpression":{"id":13723,"name":"lockedPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"37576:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct EnumerableSet.UintSet storage ref))"}},"id":13725,"indexExpression":{"id":13724,"name":"withdrawPoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13710,"src":"37588:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37576:27:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_UintSet_$8877_storage_$","typeString":"mapping(address => struct EnumerableSet.UintSet storage ref)"}},"id":13728,"indexExpression":{"expression":{"id":13726,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"37604:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"37604:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37576:39:47","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$8877_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":13729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":8955,"src":"37576:46:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$8877_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$8877_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":13730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"37576:48:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"37556:68:47"},"nodeType":"ForStatement","src":"37537:489:47"}]},"documentation":{"id":13705,"nodeType":"StructuredDocumentation","src":"37049:345:47","text":" @notice Private function to ensure compound pool is not locked and decrement the lock count.\n @param user The properties of a pool’s user that is decrementing the lock. The user\n        properties of the pool must belong to the caller.\n @param withdrawPoolId The identifier of the aforementioned pool."},"id":13775,"implemented":true,"kind":"function","modifiers":[],"name":"_decrementLock","nameLocation":"37409:14:47","nodeType":"FunctionDefinition","parameters":{"id":13711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13708,"mutability":"mutable","name":"user","nameLocation":"37437:4:47","nodeType":"VariableDeclaration","scope":13775,"src":"37424:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":13707,"nodeType":"UserDefinedTypeName","pathNode":{"id":13706,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"37424:4:47"},"referencedDeclaration":12117,"src":"37424:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"},{"constant":false,"id":13710,"mutability":"mutable","name":"withdrawPoolId","nameLocation":"37451:14:47","nodeType":"VariableDeclaration","scope":13775,"src":"37443:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13709,"name":"uint256","nodeType":"ElementaryTypeName","src":"37443:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37423:43:47"},"returnParameters":{"id":13712,"nodeType":"ParameterList","parameters":[],"src":"37475:0:47"},"scope":14244,"src":"37400:633:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13894,"nodeType":"Block","src":"38463:1439:47","statements":[{"assignments":[13785],"declarations":[{"constant":false,"id":13785,"mutability":"mutable","name":"poolId","nameLocation":"38568:6:47","nodeType":"VariableDeclaration","scope":13894,"src":"38560:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13784,"name":"uint256","nodeType":"ElementaryTypeName","src":"38560:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13788,"initialValue":{"id":13787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"38577:14:47","subExpression":{"id":13786,"name":"_poolsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12164,"src":"38577:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"38560:31:47"},{"assignments":[13791],"declarations":[{"constant":false,"id":13791,"mutability":"mutable","name":"pool","nameLocation":"38615:4:47","nodeType":"VariableDeclaration","scope":13894,"src":"38602:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13790,"nodeType":"UserDefinedTypeName","pathNode":{"id":13789,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"38602:4:47"},"referencedDeclaration":12139,"src":"38602:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"id":13795,"initialValue":{"baseExpression":{"id":13792,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12145,"src":"38622:5:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$12139_storage_$","typeString":"mapping(uint256 => struct PangoChef.Pool storage ref)"}},"id":13794,"indexExpression":{"id":13793,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"38628:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38622:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage","typeString":"struct PangoChef.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38602:33:47"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13796,"name":"tokenOrRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"38708:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38736:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"38728:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13797,"name":"address","nodeType":"ElementaryTypeName","src":"38728:7:47","typeDescriptions":{}}},"id":13800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38728:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"38708:30:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"},"id":13805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13802,"name":"poolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13781,"src":"38742:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13803,"name":"PoolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"38754:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PoolType_$12083_$","typeString":"type(enum PangoChef.PoolType)"}},"id":13804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"UNSET_POOL","nodeType":"MemberAccess","referencedDeclaration":12080,"src":"38754:19:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"src":"38742:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38708:65:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13810,"nodeType":"IfStatement","src":"38704:89:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13807,"name":"NullInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"38782:9:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"38782:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13809,"nodeType":"RevertStatement","src":"38775:18:47"}},{"expression":{"id":13815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13811,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"38900:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenOrRecipient","nodeType":"MemberAccess","referencedDeclaration":12119,"src":"38900:21:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13814,"name":"tokenOrRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"38924:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"38900:40:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13816,"nodeType":"ExpressionStatement","src":"38900:40:47"},{"expression":{"id":13821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13817,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"38951:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"poolType","nodeType":"MemberAccess","referencedDeclaration":12122,"src":"38951:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13820,"name":"poolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13781,"src":"38967:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"src":"38951:24:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"id":13822,"nodeType":"ExpressionStatement","src":"38951:24:47"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"},"id":13826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13823,"name":"poolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13781,"src":"39094:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13824,"name":"PoolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"39106:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PoolType_$12083_$","typeString":"type(enum PangoChef.PoolType)"}},"id":13825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC20_POOL","nodeType":"MemberAccess","referencedDeclaration":12081,"src":"39106:19:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"src":"39094:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13888,"nodeType":"IfStatement","src":"39090:746:47","trueBody":{"id":13887,"nodeType":"Block","src":"39127:709:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":13827,"name":"tokenOrRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"39146:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"39146:21:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":13829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"39146:28:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39178:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"39146:33:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13835,"nodeType":"IfStatement","src":"39142:60:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13832,"name":"InvalidToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12019,"src":"39188:12:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39188:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13834,"nodeType":"RevertStatement","src":"39181:21:47"}},{"clauses":[{"block":{"id":13882,"nodeType":"Block","src":"39453:363:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":13847,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13841,"src":"39492:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13848,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"39500:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13845,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12157,"src":"39476:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinFactory_$18099","typeString":"contract IPangolinFactory"}},"id":13846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPair","nodeType":"MemberAccess","referencedDeclaration":18098,"src":"39476:15:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_address_$","typeString":"function (address,address) view external returns (address)"}},"id":13849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39476:31:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13850,"name":"tokenOrRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"39511:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39476:51:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13881,"nodeType":"IfStatement","src":"39472:329:47","trueBody":{"id":13880,"nodeType":"Block","src":"39529:272:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13852,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13841,"src":"39556:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13855,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"39574:12:47","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}],"id":13854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39566:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13853,"name":"address","nodeType":"ElementaryTypeName","src":"39566:7:47","typeDescriptions":{}}},"id":13856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39566:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39556:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13865,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"39674:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":13868,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"39692:12:47","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}],"id":13867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39684:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13866,"name":"address","nodeType":"ElementaryTypeName","src":"39684:7:47","typeDescriptions":{}}},"id":13869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39684:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39674:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13878,"nodeType":"IfStatement","src":"39670:112:47","trueBody":{"id":13877,"nodeType":"Block","src":"39707:75:47","statements":[{"expression":{"id":13875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13871,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"39734:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPair","nodeType":"MemberAccess","referencedDeclaration":12127,"src":"39734:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13874,"name":"token0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13841,"src":"39752:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39734:24:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13876,"nodeType":"ExpressionStatement","src":"39734:24:47"}]}},"id":13879,"nodeType":"IfStatement","src":"39552:230:47","trueBody":{"id":13864,"nodeType":"Block","src":"39589:75:47","statements":[{"expression":{"id":13862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13858,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13791,"src":"39616:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPair","nodeType":"MemberAccess","referencedDeclaration":12127,"src":"39616:15:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13861,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13843,"src":"39634:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"39616:24:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13863,"nodeType":"ExpressionStatement","src":"39616:24:47"}]}}]}}]},"errorName":"","id":13883,"nodeType":"TryCatchClause","parameters":{"id":13844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13841,"mutability":"mutable","name":"token0","nameLocation":"39429:6:47","nodeType":"VariableDeclaration","scope":13883,"src":"39421:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13840,"name":"address","nodeType":"ElementaryTypeName","src":"39421:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13843,"mutability":"mutable","name":"token1","nameLocation":"39445:6:47","nodeType":"VariableDeclaration","scope":13883,"src":"39437:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13842,"name":"address","nodeType":"ElementaryTypeName","src":"39437:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39420:32:47"},"src":"39412:404:47"},{"block":{"id":13884,"nodeType":"Block","src":"39823:2:47","statements":[]},"errorName":"","id":13885,"nodeType":"TryCatchClause","src":"39817:8:47"}],"externalCall":{"arguments":[{"id":13838,"name":"tokenOrRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"39380:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13836,"name":"safeExternalCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12185,"src":"39319:17:47","typeDescriptions":{"typeIdentifier":"t_contract$_SafeExternalCalls_$12066","typeString":"contract SafeExternalCalls"}},"id":13837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getReserveTokenAddresses","nodeType":"MemberAccess","referencedDeclaration":12065,"src":"39319:42:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_address_$_t_address_$","typeString":"function (address) view external returns (address,address)"}},"id":13839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39319:92:47","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"id":13886,"nodeType":"TryStatement","src":"39315:510:47"}]}},{"eventCall":{"arguments":[{"id":13890,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"39869:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13891,"name":"tokenOrRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"39877:16:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13889,"name":"PoolInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12214,"src":"39853:15:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":13892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"39853:41:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13893,"nodeType":"EmitStatement","src":"39848:46:47"}]},"documentation":{"id":13776,"nodeType":"StructuredDocumentation","src":"38041:338:47","text":" @notice Private function to initialize a pool.\n @param tokenOrRecipient The address of the token when poolType is ERC_20, or the recipient\n                         address when poolType is RELAYER_POOL.\n @param poolType The type of the pool, which determines which actions can be performed on it."},"id":13895,"implemented":true,"kind":"function","modifiers":[],"name":"_initializePool","nameLocation":"38394:15:47","nodeType":"FunctionDefinition","parameters":{"id":13782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13778,"mutability":"mutable","name":"tokenOrRecipient","nameLocation":"38418:16:47","nodeType":"VariableDeclaration","scope":13895,"src":"38410:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13777,"name":"address","nodeType":"ElementaryTypeName","src":"38410:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13781,"mutability":"mutable","name":"poolType","nameLocation":"38445:8:47","nodeType":"VariableDeclaration","scope":13895,"src":"38436:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"},"typeName":{"id":13780,"nodeType":"UserDefinedTypeName","pathNode":{"id":13779,"name":"PoolType","nodeType":"IdentifierPath","referencedDeclaration":12083,"src":"38436:8:47"},"referencedDeclaration":12083,"src":"38436:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"visibility":"internal"}],"src":"38409:45:47"},"returnParameters":{"id":13783,"nodeType":"ParameterList","parameters":[],"src":"38463:0:47"},"scope":14244,"src":"38385:1517:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13911,"nodeType":"Block","src":"40108:81:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"},"id":13906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13902,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13899,"src":"40123:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"poolType","nodeType":"MemberAccess","referencedDeclaration":12122,"src":"40123:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13904,"name":"PoolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"40140:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PoolType_$12083_$","typeString":"type(enum PangoChef.PoolType)"}},"id":13905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ERC20_POOL","nodeType":"MemberAccess","referencedDeclaration":12081,"src":"40140:19:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"src":"40123:36:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13910,"nodeType":"IfStatement","src":"40119:62:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13907,"name":"InvalidType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12015,"src":"40168:11:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40168:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13909,"nodeType":"RevertStatement","src":"40161:20:47"}}]},"documentation":{"id":13896,"nodeType":"StructuredDocumentation","src":"39910:136:47","text":" @notice Private view function to ensure pool is of ERC20_POOL type.\n @param pool The properties of the pool."},"id":13912,"implemented":true,"kind":"function","modifiers":[],"name":"_onlyERC20Pool","nameLocation":"40061:14:47","nodeType":"FunctionDefinition","parameters":{"id":13900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13899,"mutability":"mutable","name":"pool","nameLocation":"40089:4:47","nodeType":"VariableDeclaration","scope":13912,"src":"40076:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13898,"nodeType":"UserDefinedTypeName","pathNode":{"id":13897,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"40076:4:47"},"referencedDeclaration":12139,"src":"40076:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"src":"40075:19:47"},"returnParameters":{"id":13901,"nodeType":"ParameterList","parameters":[],"src":"40108:0:47"},"scope":14244,"src":"40052:137:47","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13928,"nodeType":"Block","src":"40399:83:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"},"id":13923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13919,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13916,"src":"40414:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"poolType","nodeType":"MemberAccess","referencedDeclaration":12122,"src":"40414:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13921,"name":"PoolType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"40431:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PoolType_$12083_$","typeString":"type(enum PangoChef.PoolType)"}},"id":13922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"RELAYER_POOL","nodeType":"MemberAccess","referencedDeclaration":12082,"src":"40431:21:47","typeDescriptions":{"typeIdentifier":"t_enum$_PoolType_$12083","typeString":"enum PangoChef.PoolType"}},"src":"40414:38:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13927,"nodeType":"IfStatement","src":"40410:64:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13924,"name":"InvalidType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12015,"src":"40461:11:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":13925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"40461:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13926,"nodeType":"RevertStatement","src":"40454:20:47"}}]},"documentation":{"id":13913,"nodeType":"StructuredDocumentation","src":"40197:138:47","text":" @notice Private view function to ensure pool is of RELAYER_POOL type.\n @param pool The properties of the pool."},"id":13929,"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRelayerPool","nameLocation":"40350:16:47","nodeType":"FunctionDefinition","parameters":{"id":13917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13916,"mutability":"mutable","name":"pool","nameLocation":"40380:4:47","nodeType":"VariableDeclaration","scope":13929,"src":"40367:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13915,"nodeType":"UserDefinedTypeName","pathNode":{"id":13914,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"40367:4:47"},"referencedDeclaration":12139,"src":"40367:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"src":"40366:19:47"},"returnParameters":{"id":13918,"nodeType":"ParameterList","parameters":[],"src":"40399:0:47"},"scope":14244,"src":"40341:141:47","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13975,"nodeType":"Block","src":"40991:733:47","statements":[{"assignments":[13941],"declarations":[{"constant":false,"id":13941,"mutability":"mutable","name":"rewards","nameLocation":"41081:7:47","nodeType":"VariableDeclaration","scope":13975,"src":"41073:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13940,"name":"uint256","nodeType":"ElementaryTypeName","src":"41073:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13945,"initialValue":{"arguments":[{"id":13943,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13932,"src":"41098:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13942,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14859,"src":"41091:6:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":13944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41091:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"41073:32:47"},{"assignments":[13947,13949],"declarations":[{"constant":false,"id":13947,"mutability":"mutable","name":"idealPositionIncrementation","nameLocation":"41201:27:47","nodeType":"VariableDeclaration","scope":13975,"src":"41193:35:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13946,"name":"uint256","nodeType":"ElementaryTypeName","src":"41193:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13949,"mutability":"mutable","name":"rewardPerValueIncrementation","nameLocation":"41251:28:47","nodeType":"VariableDeclaration","scope":13975,"src":"41243:36:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13948,"name":"uint256","nodeType":"ElementaryTypeName","src":"41243:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13954,"initialValue":{"arguments":[{"id":13951,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"41329:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":13952,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13941,"src":"41335:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13950,"name":"_getRewardSummationsIncrementations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14172,"src":"41293:35:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct PangoChef.Pool storage pointer,uint256) view returns (uint256,uint256)"}},"id":13953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"41293:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"41178:165:47"},{"assignments":[13957],"declarations":[{"constant":false,"id":13957,"mutability":"mutable","name":"rewardSummationsStored","nameLocation":"41419:22:47","nodeType":"VariableDeclaration","scope":13975,"src":"41394:47:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":13956,"nodeType":"UserDefinedTypeName","pathNode":{"id":13955,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"41394:16:47"},"referencedDeclaration":12102,"src":"41394:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"}],"id":13960,"initialValue":{"expression":{"id":13958,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"41444:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":13959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSummationsStored","nodeType":"MemberAccess","referencedDeclaration":12133,"src":"41444:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage","typeString":"struct PangoChef.RewardSummations storage ref"}},"nodeType":"VariableDeclarationStatement","src":"41394:77:47"},{"expression":{"id":13965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13961,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13957,"src":"41482:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":13963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":12099,"src":"41482:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":13964,"name":"idealPositionIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13947,"src":"41522:27:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41482:67:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13966,"nodeType":"ExpressionStatement","src":"41482:67:47"},{"expression":{"id":13971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13967,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13957,"src":"41560:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":13969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"41560:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":13970,"name":"rewardPerValueIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13949,"src":"41601:28:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41560:69:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13972,"nodeType":"ExpressionStatement","src":"41560:69:47"},{"expression":{"id":13973,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13941,"src":"41709:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13939,"id":13974,"nodeType":"Return","src":"41702:14:47"}]},"documentation":{"id":13930,"nodeType":"StructuredDocumentation","src":"40490:401:47","text":" @notice Private function to claim the pool’s pending rewards, and based on the claimed\n         amount update the two variables that govern the reward distribution.\n @param poolId The identifier of the pool to update the rewards of.\n @param pool The properties of the pool to update the rewards of.\n @return The amount of rewards claimed by the pool."},"id":13976,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardSummations","nameLocation":"40906:23:47","nodeType":"FunctionDefinition","parameters":{"id":13936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13932,"mutability":"mutable","name":"poolId","nameLocation":"40938:6:47","nodeType":"VariableDeclaration","scope":13976,"src":"40930:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13931,"name":"uint256","nodeType":"ElementaryTypeName","src":"40930:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13935,"mutability":"mutable","name":"pool","nameLocation":"40959:4:47","nodeType":"VariableDeclaration","scope":13976,"src":"40946:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13934,"nodeType":"UserDefinedTypeName","pathNode":{"id":13933,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"40946:4:47"},"referencedDeclaration":12139,"src":"40946:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"}],"src":"40929:35:47"},"returnParameters":{"id":13939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13976,"src":"40982:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13937,"name":"uint256","nodeType":"ElementaryTypeName","src":"40982:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40981:9:47"},"scope":14244,"src":"40897:827:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14003,"nodeType":"Block","src":"42084:126:47","statements":[{"expression":{"id":13994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13986,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13983,"src":"42095:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":12112,"src":"42095:15:47","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":13991,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"42120:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"42120:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42113:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":13989,"name":"uint48","nodeType":"ElementaryTypeName","src":"42113:6:47","typeDescriptions":{}}},"id":13993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"42113:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42095:41:47","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":13995,"nodeType":"ExpressionStatement","src":"42095:41:47"},{"expression":{"id":14001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13996,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13983,"src":"42147:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":13998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardSummationsPaid","nodeType":"MemberAccess","referencedDeclaration":12108,"src":"42147:25:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage","typeString":"struct PangoChef.RewardSummations storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13999,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13980,"src":"42175:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":14000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSummationsStored","nodeType":"MemberAccess","referencedDeclaration":12133,"src":"42175:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage","typeString":"struct PangoChef.RewardSummations storage ref"}},"src":"42147:55:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage","typeString":"struct PangoChef.RewardSummations storage ref"}},"id":14002,"nodeType":"ExpressionStatement","src":"42147:55:47"}]},"documentation":{"id":13977,"nodeType":"StructuredDocumentation","src":"41732:265:47","text":" @notice Private function to snapshot two rewards variables and record the timestamp.\n @param pool The storage pointer to the pool to record the snapshot from.\n @param user The storage pointer to the user to record the snapshot to."},"id":14004,"implemented":true,"kind":"function","modifiers":[],"name":"_snapshotRewardSummations","nameLocation":"42012:25:47","nodeType":"FunctionDefinition","parameters":{"id":13984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13980,"mutability":"mutable","name":"pool","nameLocation":"42051:4:47","nodeType":"VariableDeclaration","scope":14004,"src":"42038:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":13979,"nodeType":"UserDefinedTypeName","pathNode":{"id":13978,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"42038:4:47"},"referencedDeclaration":12139,"src":"42038:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"},{"constant":false,"id":13983,"mutability":"mutable","name":"user","nameLocation":"42070:4:47","nodeType":"VariableDeclaration","scope":14004,"src":"42057:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":13982,"nodeType":"UserDefinedTypeName","pathNode":{"id":13981,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"42057:4:47"},"referencedDeclaration":12117,"src":"42057:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"src":"42037:38:47"},"returnParameters":{"id":13985,"nodeType":"ParameterList","parameters":[],"src":"42084:0:47"},"scope":14244,"src":"42003:207:47","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14033,"nodeType":"Block","src":"42809:534:47","statements":[{"assignments":[14020],"declarations":[{"constant":false,"id":14020,"mutability":"mutable","name":"deltaRewardSummations","nameLocation":"43088:21:47","nodeType":"VariableDeclaration","scope":14033,"src":"43064:45:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":14019,"nodeType":"UserDefinedTypeName","pathNode":{"id":14018,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"43064:16:47"},"referencedDeclaration":12102,"src":"43064:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"}],"id":14027,"initialValue":{"arguments":[{"id":14022,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14007,"src":"43152:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14023,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14010,"src":"43173:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":14024,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14013,"src":"43192:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},{"hexValue":"66616c7365","id":14025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"43211:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14021,"name":"_getDeltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14125,"src":"43112:25:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_struct$_Pool_$12139_storage_ptr_$_t_struct$_User_$12117_storage_ptr_$_t_bool_$returns$_t_struct$_RewardSummations_$12102_memory_ptr_$","typeString":"function (uint256,struct PangoChef.Pool storage pointer,struct PangoChef.User storage pointer,bool) view returns (struct PangoChef.RewardSummations memory)"}},"id":14026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43112:115:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"nodeType":"VariableDeclarationStatement","src":"43064:163:47"},{"expression":{"arguments":[{"id":14029,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14020,"src":"43307:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},{"id":14030,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14013,"src":"43330:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"},{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}],"id":14028,"name":"_earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"43299:7:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_RewardSummations_$12102_memory_ptr_$_t_struct$_User_$12117_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChef.RewardSummations memory,struct PangoChef.User storage pointer) view returns (uint256)"}},"id":14031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"43299:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14017,"id":14032,"nodeType":"Return","src":"43292:43:47"}]},"documentation":{"id":14005,"nodeType":"StructuredDocumentation","src":"42218:437:47","text":" @notice Private view function to get the accrued rewards of a user in a pool.\n @dev The call to this function must only be made after the summations are updated\n      through `_updateRewardSummations()`.\n @param poolId The identifier of the pool.\n @param pool The properties of the pool.\n @param user The properties of the user.\n @return The accrued rewards of the position."},"id":14034,"implemented":true,"kind":"function","modifiers":[],"name":"_userPendingRewards","nameLocation":"42670:19:47","nodeType":"FunctionDefinition","parameters":{"id":14014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14007,"mutability":"mutable","name":"poolId","nameLocation":"42708:6:47","nodeType":"VariableDeclaration","scope":14034,"src":"42700:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14006,"name":"uint256","nodeType":"ElementaryTypeName","src":"42700:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14010,"mutability":"mutable","name":"pool","nameLocation":"42738:4:47","nodeType":"VariableDeclaration","scope":14034,"src":"42725:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":14009,"nodeType":"UserDefinedTypeName","pathNode":{"id":14008,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"42725:4:47"},"referencedDeclaration":12139,"src":"42725:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"},{"constant":false,"id":14013,"mutability":"mutable","name":"user","nameLocation":"42766:4:47","nodeType":"VariableDeclaration","scope":14034,"src":"42753:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":14012,"nodeType":"UserDefinedTypeName","pathNode":{"id":14011,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"42753:4:47"},"referencedDeclaration":12117,"src":"42753:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"src":"42689:88:47"},"returnParameters":{"id":14017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14034,"src":"42800:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14015,"name":"uint256","nodeType":"ElementaryTypeName","src":"42800:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42799:9:47"},"scope":14244,"src":"42661:682:47","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":14124,"nodeType":"Block","src":"44162:1791:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":14054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14051,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14043,"src":"44247:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":14052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":12112,"src":"44247:15:47","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44266:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44247:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14060,"nodeType":"IfStatement","src":"44243:55:47","trueBody":{"expression":{"arguments":[{"hexValue":"30","id":14056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44293:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":14057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44296:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14055,"name":"RewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"44276:16:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardSummations_$12102_storage_ptr_$","typeString":"type(struct PangoChef.RewardSummations storage pointer)"}},"id":14058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44276:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"functionReturnParameters":14050,"id":14059,"nodeType":"Return","src":"44269:29:47"}},{"assignments":[14063],"declarations":[{"constant":false,"id":14063,"mutability":"mutable","name":"rewardSummationsPaid","nameLocation":"44413:20:47","nodeType":"VariableDeclaration","scope":14124,"src":"44388:45:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":14062,"nodeType":"UserDefinedTypeName","pathNode":{"id":14061,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"44388:16:47"},"referencedDeclaration":12102,"src":"44388:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"}],"id":14066,"initialValue":{"expression":{"id":14064,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14043,"src":"44436:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":14065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSummationsPaid","nodeType":"MemberAccess","referencedDeclaration":12108,"src":"44436:25:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage","typeString":"struct PangoChef.RewardSummations storage ref"}},"nodeType":"VariableDeclarationStatement","src":"44388:73:47"},{"assignments":[14069],"declarations":[{"constant":false,"id":14069,"mutability":"mutable","name":"rewardSummationsStored","nameLocation":"44497:22:47","nodeType":"VariableDeclaration","scope":14124,"src":"44472:47:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":14068,"nodeType":"UserDefinedTypeName","pathNode":{"id":14067,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"44472:16:47"},"referencedDeclaration":12102,"src":"44472:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"}],"id":14072,"initialValue":{"expression":{"id":14070,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14040,"src":"44522:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":14071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSummationsStored","nodeType":"MemberAccess","referencedDeclaration":12133,"src":"44522:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage","typeString":"struct PangoChef.RewardSummations storage ref"}},"nodeType":"VariableDeclarationStatement","src":"44472:77:47"},{"condition":{"id":14073,"name":"increment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14045,"src":"44641:9:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14110,"nodeType":"IfStatement","src":"44637:960:47","trueBody":{"id":14109,"nodeType":"Block","src":"44652:945:47","statements":[{"assignments":[14075],"declarations":[{"constant":false,"id":14075,"mutability":"mutable","name":"rewards","nameLocation":"44762:7:47","nodeType":"VariableDeclaration","scope":14109,"src":"44754:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14074,"name":"uint256","nodeType":"ElementaryTypeName","src":"44754:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14082,"initialValue":{"arguments":[{"baseExpression":{"id":14077,"name":"poolRewardInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14271,"src":"44792:15:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PoolRewardInfo_$14265_storage_$","typeString":"mapping(uint256 => struct PangoChefFunding.PoolRewardInfo storage ref)"}},"id":14079,"indexExpression":{"id":14078,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14037,"src":"44808:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44792:23:47","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage","typeString":"struct PangoChefFunding.PoolRewardInfo storage ref"}},{"id":14080,"name":"increment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14045,"src":"44817:9:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage","typeString":"struct PangoChefFunding.PoolRewardInfo storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14076,"name":"_poolPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14913,"src":"44772:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PoolRewardInfo_$14265_storage_ptr_$_t_bool_$returns$_t_uint256_$","typeString":"function (struct PangoChefFunding.PoolRewardInfo storage pointer,bool) view returns (uint256)"}},"id":14081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"44772:55:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44754:73:47"},{"assignments":[14084,14086],"declarations":[{"constant":false,"id":14084,"mutability":"mutable","name":"idealPositionIncrementation","nameLocation":"44935:27:47","nodeType":"VariableDeclaration","scope":14109,"src":"44927:35:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14083,"name":"uint256","nodeType":"ElementaryTypeName","src":"44927:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14086,"mutability":"mutable","name":"rewardPerValueIncrementation","nameLocation":"44989:28:47","nodeType":"VariableDeclaration","scope":14109,"src":"44981:36:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14085,"name":"uint256","nodeType":"ElementaryTypeName","src":"44981:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14091,"initialValue":{"arguments":[{"id":14088,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14040,"src":"45071:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},{"id":14089,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14075,"src":"45077:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14087,"name":"_getRewardSummationsIncrementations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14172,"src":"45035:35:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Pool_$12139_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct PangoChef.Pool storage pointer,uint256) view returns (uint256,uint256)"}},"id":14090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45035:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"44908:177:47"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14093,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14069,"src":"45234:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":12099,"src":"45234:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14095,"name":"idealPositionIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14084,"src":"45298:27:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45234:91:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14097,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14063,"src":"45353:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":12099,"src":"45353:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45234:153:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14100,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14069,"src":"45410:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"45410:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14102,"name":"rewardPerValueIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14086,"src":"45475:28:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45410:93:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14104,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14063,"src":"45531:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"45531:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45410:156:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14092,"name":"RewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"45195:16:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardSummations_$12102_storage_ptr_$","typeString":"type(struct PangoChef.RewardSummations storage pointer)"}},"id":14107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45195:390:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"functionReturnParameters":14050,"id":14108,"nodeType":"Return","src":"45171:414:47"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14112,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14069,"src":"45763:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":12099,"src":"45763:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14114,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14063,"src":"45802:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":12099,"src":"45802:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45763:73:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14117,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14069,"src":"45855:22:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"45855:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14119,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14063,"src":"45895:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations storage pointer"}},"id":14120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"45895:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45855:75:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14111,"name":"RewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"45728:16:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardSummations_$12102_storage_ptr_$","typeString":"type(struct PangoChef.RewardSummations storage pointer)"}},"id":14122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"45728:217:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"functionReturnParameters":14050,"id":14123,"nodeType":"Return","src":"45708:237:47"}]},"documentation":{"id":14035,"nodeType":"StructuredDocumentation","src":"43351:610:47","text":" @notice Private view function to get the difference between a user’s summations\n         (‘paid’) and a pool’s summations (‘stored’).\n @param poolId The identifier of the pool.\n @param pool The pool to take the basis for stored summations.\n @param user The user for which to calculate the delta of summations.\n @param increment Whether to the incremented `rewardSummationsStored` based on the pending\n                  rewards of the pool.\n @return The difference between the `rewardSummationsStored` and `rewardSummationsPaid`."},"id":14125,"implemented":true,"kind":"function","modifiers":[],"name":"_getDeltaRewardSummations","nameLocation":"43976:25:47","nodeType":"FunctionDefinition","parameters":{"id":14046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14037,"mutability":"mutable","name":"poolId","nameLocation":"44020:6:47","nodeType":"VariableDeclaration","scope":14125,"src":"44012:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14036,"name":"uint256","nodeType":"ElementaryTypeName","src":"44012:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14040,"mutability":"mutable","name":"pool","nameLocation":"44050:4:47","nodeType":"VariableDeclaration","scope":14125,"src":"44037:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":14039,"nodeType":"UserDefinedTypeName","pathNode":{"id":14038,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"44037:4:47"},"referencedDeclaration":12139,"src":"44037:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"},{"constant":false,"id":14043,"mutability":"mutable","name":"user","nameLocation":"44078:4:47","nodeType":"VariableDeclaration","scope":14125,"src":"44065:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":14042,"nodeType":"UserDefinedTypeName","pathNode":{"id":14041,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"44065:4:47"},"referencedDeclaration":12117,"src":"44065:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"},{"constant":false,"id":14045,"mutability":"mutable","name":"increment","nameLocation":"44098:9:47","nodeType":"VariableDeclaration","scope":14125,"src":"44093:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14044,"name":"bool","nodeType":"ElementaryTypeName","src":"44093:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44001:113:47"},"returnParameters":{"id":14050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14125,"src":"44137:23:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":14048,"nodeType":"UserDefinedTypeName","pathNode":{"id":14047,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"44137:16:47"},"referencedDeclaration":12102,"src":"44137:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"}],"src":"44136:25:47"},"scope":14244,"src":"43967:1986:47","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":14171,"nodeType":"Block","src":"46672:384:47","statements":[{"assignments":[14139],"declarations":[{"constant":false,"id":14139,"mutability":"mutable","name":"totalValue","nameLocation":"46785:10:47","nodeType":"VariableDeclaration","scope":14171,"src":"46777:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14138,"name":"uint256","nodeType":"ElementaryTypeName","src":"46777:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14144,"initialValue":{"arguments":[{"expression":{"id":14141,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14129,"src":"46808:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool storage pointer"}},"id":14142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12130,"src":"46808:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}],"id":14140,"name":"_getValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14191,"src":"46798:9:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValueVariables_$12097_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChef.ValueVariables storage pointer) view returns (uint256)"}},"id":14143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"46798:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46777:51:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14145,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14139,"src":"46843:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":14146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46857:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46843:15:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14170,"nodeType":"IfStatement","src":"46839:210:47","trueBody":{"id":14169,"nodeType":"Block","src":"46860:189:47","statements":[{"expression":{"id":14158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14148,"name":"idealPositionIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"46875:27:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14149,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14131,"src":"46906:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":14150,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"46916:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"46916:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46906:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14153,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12178,"src":"46934:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46906:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"46905:39:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14156,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14139,"src":"46947:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46905:52:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46875:82:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14159,"nodeType":"ExpressionStatement","src":"46875:82:47"},{"expression":{"id":14167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14160,"name":"rewardPerValueIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14136,"src":"46972:28:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14161,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14131,"src":"47004:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14162,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12178,"src":"47014:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47004:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"47003:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14165,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14139,"src":"47027:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47003:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46972:65:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14168,"nodeType":"ExpressionStatement","src":"46972:65:47"}]}}]},"documentation":{"id":14126,"nodeType":"StructuredDocumentation","src":"45961:495:47","text":" @notice Private view function to calculate the `rewardSummationsStored` incrementations based\n         on the given reward amount.\n @param pool The pool to get the incrementations for.\n @param rewards The amount of rewards to use for calculating the incrementation.\n @return idealPositionIncrementation The incrementation to make to the idealPosition.\n @return rewardPerValueIncrementation The incrementation to make to the rewardPerValue."},"id":14172,"implemented":true,"kind":"function","modifiers":[],"name":"_getRewardSummationsIncrementations","nameLocation":"46471:35:47","nodeType":"FunctionDefinition","parameters":{"id":14132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14129,"mutability":"mutable","name":"pool","nameLocation":"46520:4:47","nodeType":"VariableDeclaration","scope":14172,"src":"46507:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"},"typeName":{"id":14128,"nodeType":"UserDefinedTypeName","pathNode":{"id":14127,"name":"Pool","nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"46507:4:47"},"referencedDeclaration":12139,"src":"46507:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$12139_storage_ptr","typeString":"struct PangoChef.Pool"}},"visibility":"internal"},{"constant":false,"id":14131,"mutability":"mutable","name":"rewards","nameLocation":"46534:7:47","nodeType":"VariableDeclaration","scope":14172,"src":"46526:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14130,"name":"uint256","nodeType":"ElementaryTypeName","src":"46526:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46506:36:47"},"returnParameters":{"id":14137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14134,"mutability":"mutable","name":"idealPositionIncrementation","nameLocation":"46600:27:47","nodeType":"VariableDeclaration","scope":14172,"src":"46592:35:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14133,"name":"uint256","nodeType":"ElementaryTypeName","src":"46592:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14136,"mutability":"mutable","name":"rewardPerValueIncrementation","nameLocation":"46637:28:47","nodeType":"VariableDeclaration","scope":14172,"src":"46629:36:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14135,"name":"uint256","nodeType":"ElementaryTypeName","src":"46629:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46591:75:47"},"scope":14244,"src":"46462:594:47","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":14190,"nodeType":"Block","src":"47783:99:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14181,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"47801:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"47801:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":14183,"name":"valueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14176,"src":"47819:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":14184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"47819:22:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"47801:40:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14186,"name":"valueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14176,"src":"47844:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables storage pointer"}},"id":14187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"47844:30:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"47801:73:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14180,"id":14189,"nodeType":"Return","src":"47794:80:47"}]},"documentation":{"id":14173,"nodeType":"StructuredDocumentation","src":"47064:624:47","text":" @notice Private view function to get the user or pool value.\n @dev Value refers to the sum of each `wei` of tokens’ staking durations. So if there are\n      10 tokens staked in the contract, and each one of them has been staked for 10 seconds,\n      then the value is 100 (`10 * 10`). To calculate value we use sumOfEntryTimes, which is\n      the sum of each `wei` of tokens’ staking-duration-starting timestamp. The formula\n      below is intuitive and simple to derive. We will leave proving it to the reader.\n @return The total value of a user or a pool."},"id":14191,"implemented":true,"kind":"function","modifiers":[],"name":"_getValue","nameLocation":"47703:9:47","nodeType":"FunctionDefinition","parameters":{"id":14177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14176,"mutability":"mutable","name":"valueVariables","nameLocation":"47736:14:47","nodeType":"VariableDeclaration","scope":14191,"src":"47713:37:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":14175,"nodeType":"UserDefinedTypeName","pathNode":{"id":14174,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"47713:14:47"},"referencedDeclaration":12097,"src":"47713:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"src":"47712:39:47"},"returnParameters":{"id":14180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14191,"src":"47774:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14178,"name":"uint256","nodeType":"ElementaryTypeName","src":"47774:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47773:9:47"},"scope":14244,"src":"47694:188:47","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":14242,"nodeType":"Block","src":"48369:574:47","statements":[{"assignments":[14204],"declarations":[{"constant":false,"id":14204,"mutability":"mutable","name":"userLastUpdate","nameLocation":"48488:14:47","nodeType":"VariableDeclaration","scope":14242,"src":"48480:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14203,"name":"uint256","nodeType":"ElementaryTypeName","src":"48480:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14207,"initialValue":{"expression":{"id":14205,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14198,"src":"48505:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":14206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":12112,"src":"48505:15:47","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"48480:40:47"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14208,"name":"userLastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"48551:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48569:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"48551:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14212,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14198,"src":"48611:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":14213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":12116,"src":"48611:19:47","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14214,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14195,"src":"48658:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"id":14215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":12099,"src":"48658:35:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14216,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14195,"src":"48722:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"id":14217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"48722:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14218,"name":"userLastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"48761:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48722:53:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14220,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48721:55:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48658:118:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14222,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48657:120:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":14223,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14198,"src":"48805:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":14224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12105,"src":"48805:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"id":14225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"48805:27:47","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"48657:175:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14227,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48656:177:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14228,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14195,"src":"48862:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations memory"}},"id":14229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":12101,"src":"48862:36:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":14230,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14198,"src":"48901:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User storage pointer"}},"id":14231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"previousValues","nodeType":"MemberAccess","referencedDeclaration":12110,"src":"48901:19:47","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"48862:58:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14233,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48861:60:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48656:265:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48655:267:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14236,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12178,"src":"48925:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48655:279:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14238,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"48654:281:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48611:324:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"48551:384:47","trueExpression":{"hexValue":"30","id":14211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48590:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14202,"id":14241,"nodeType":"Return","src":"48531:404:47"}]},"documentation":{"id":14192,"nodeType":"StructuredDocumentation","src":"47890:327:47","text":" @notice Low-level private view function to get the accrued rewards of a user.\n @param deltaRewardSummations The difference between the ‘stored’ and ‘paid’ summations.\n @param user The user of a pool to check the accrued rewards of.\n @return The accrued rewards of the position."},"id":14243,"implemented":true,"kind":"function","modifiers":[],"name":"_earned","nameLocation":"48232:7:47","nodeType":"FunctionDefinition","parameters":{"id":14199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14195,"mutability":"mutable","name":"deltaRewardSummations","nameLocation":"48264:21:47","nodeType":"VariableDeclaration","scope":14243,"src":"48240:45:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_memory_ptr","typeString":"struct PangoChef.RewardSummations"},"typeName":{"id":14194,"nodeType":"UserDefinedTypeName","pathNode":{"id":14193,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":12102,"src":"48240:16:47"},"referencedDeclaration":12102,"src":"48240:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$12102_storage_ptr","typeString":"struct PangoChef.RewardSummations"}},"visibility":"internal"},{"constant":false,"id":14198,"mutability":"mutable","name":"user","nameLocation":"48300:4:47","nodeType":"VariableDeclaration","scope":14243,"src":"48287:17:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"},"typeName":{"id":14197,"nodeType":"UserDefinedTypeName","pathNode":{"id":14196,"name":"User","nodeType":"IdentifierPath","referencedDeclaration":12117,"src":"48287:4:47"},"referencedDeclaration":12117,"src":"48287:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_storage_ptr","typeString":"struct PangoChef.User"}},"visibility":"internal"}],"src":"48239:66:47"},"returnParameters":{"id":14202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14201,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14243,"src":"48355:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14200,"name":"uint256","nodeType":"ElementaryTypeName","src":"48355:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48354:9:47"},"scope":14244,"src":"48223:720:47","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":14245,"src":"820:48126:47","usedErrors":[12001,12003,12005,12007,12009,12011,12013,12015,12017,12019,12021,12023,12025,12027,12029,12031,12033,16696]}],"src":"35:48913:47"},"id":47},"contracts/staking-positions/PangoChefFunding.sol":{"ast":{"absolutePath":"contracts/staking-positions/PangoChefFunding.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Context":[4686],"ERC165":[5976],"ERC20":[9395],"EnumerableSet":[9007],"GenericErrors":[12034],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"Math":[6853],"PangoChefFunding":[15015],"SafeTransferLib":[9480],"Strings":[4935]},"id":15016,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":14246,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"35:23:48"},{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","id":14247,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15016,"sourceUnit":441,"src":"62:68:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"@rari-capital/solmate/src/utils/SafeTransferLib.sol","file":"@rari-capital/solmate/src/utils/SafeTransferLib.sol","id":14248,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15016,"sourceUnit":9481,"src":"132:61:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/GenericErrors.sol","file":"./GenericErrors.sol","id":14249,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15016,"sourceUnit":12035,"src":"195:29:48","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":14251,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":440,"src":"867:23:48"},"id":14252,"nodeType":"InheritanceSpecifier","src":"867:23:48"},{"baseName":{"id":14253,"name":"GenericErrors","nodeType":"IdentifierPath","referencedDeclaration":12034,"src":"892:13:48"},"id":14254,"nodeType":"InheritanceSpecifier","src":"892:13:48"}],"canonicalName":"PangoChefFunding","contractDependencies":[],"contractKind":"contract","documentation":{"id":14250,"nodeType":"StructuredDocumentation","src":"228:599:48","text":" @title PangoChef Funding\n @author Shung for Pangolin\n @notice A contract that is only the reward funding part of `PangoChef`.\n @dev The pools of the inheriting contract must call `_claim()` to check their rewards since the\n      last time they made the same call. Then, based on the reward amount, the pool shall\n      determine the distribution to stakers. It uses the same algorithm as Synthetix’\n      StakingRewards, but instead of distributing rewards to stakers based on their staked\n      amount, it distributes rewards to pools based on arbitrary weights."},"fullyImplemented":true,"id":15015,"linearizedBaseContracts":[15015,12034,440,315,5976,5988,538,513,4686],"name":"PangoChefFunding","nameLocation":"847:16:48","nodeType":"ContractDefinition","nodes":[{"global":false,"id":14258,"libraryName":{"id":14255,"name":"SafeTransferLib","nodeType":"IdentifierPath","referencedDeclaration":9480,"src":"919:15:48"},"nodeType":"UsingForDirective","src":"913:32:48","typeName":{"id":14257,"nodeType":"UserDefinedTypeName","pathNode":{"id":14256,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"939:5:48"},"referencedDeclaration":9395,"src":"939:5:48","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}},{"canonicalName":"PangoChefFunding.PoolRewardInfo","id":14265,"members":[{"constant":false,"id":14260,"mutability":"mutable","name":"weight","nameLocation":"1086:6:48","nodeType":"VariableDeclaration","scope":14265,"src":"1079:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14259,"name":"uint32","nodeType":"ElementaryTypeName","src":"1079:6:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":14262,"mutability":"mutable","name":"stashedRewards","nameLocation":"1194:14:48","nodeType":"VariableDeclaration","scope":14265,"src":"1187:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14261,"name":"uint96","nodeType":"ElementaryTypeName","src":"1187:6:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":14264,"mutability":"mutable","name":"rewardPerWeightPaid","nameLocation":"1325:19:48","nodeType":"VariableDeclaration","scope":14265,"src":"1317:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14263,"name":"uint128","nodeType":"ElementaryTypeName","src":"1317:7:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"PoolRewardInfo","nameLocation":"960:14:48","nodeType":"StructDefinition","scope":15015,"src":"953:399:48","visibility":"public"},{"constant":false,"documentation":{"id":14266,"nodeType":"StructuredDocumentation","src":"1360:151:48","text":" @notice The mapping from poolId to the struct that stores variables for determining pools’\n shares of the global rewards."},"functionSelector":"6bc9f703","id":14271,"mutability":"mutable","name":"poolRewardInfos","nameLocation":"1559:15:48","nodeType":"VariableDeclaration","scope":15015,"src":"1517:57:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PoolRewardInfo_$14265_storage_$","typeString":"mapping(uint256 => struct PangoChefFunding.PoolRewardInfo)"},"typeName":{"id":14270,"keyType":{"id":14267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1525:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1517:34:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PoolRewardInfo_$14265_storage_$","typeString":"mapping(uint256 => struct PangoChefFunding.PoolRewardInfo)"},"valueType":{"id":14269,"nodeType":"UserDefinedTypeName","pathNode":{"id":14268,"name":"PoolRewardInfo","nodeType":"IdentifierPath","referencedDeclaration":14265,"src":"1536:14:48"},"referencedDeclaration":14265,"src":"1536:14:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"}}},"visibility":"public"},{"constant":false,"documentation":{"id":14272,"nodeType":"StructuredDocumentation","src":"1583:117:48","text":"@notice The variable representing how much rewards are distributed per weight. It stores in fixed denominator. "},"functionSelector":"3228dd59","id":14274,"mutability":"mutable","name":"rewardPerWeightStored","nameLocation":"1721:21:48","nodeType":"VariableDeclaration","scope":15015,"src":"1706:36:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14273,"name":"uint128","nodeType":"ElementaryTypeName","src":"1706:7:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"public"},{"constant":false,"documentation":{"id":14275,"nodeType":"StructuredDocumentation","src":"1751:83:48","text":"@notice The timestamp when the last time the rewards were claimed by a pool. "},"functionSelector":"c0463711","id":14277,"mutability":"mutable","name":"lastUpdate","nameLocation":"1854:10:48","nodeType":"VariableDeclaration","scope":15015,"src":"1840:24:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":14276,"name":"uint48","nodeType":"ElementaryTypeName","src":"1840:6:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"public"},{"constant":false,"documentation":{"id":14278,"nodeType":"StructuredDocumentation","src":"1873:74:48","text":"@notice The rewards given out per second during a rewarding period. "},"id":14280,"mutability":"mutable","name":"_rewardRate","nameLocation":"1968:11:48","nodeType":"VariableDeclaration","scope":15015,"src":"1953:26:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":14279,"name":"uint80","nodeType":"ElementaryTypeName","src":"1953:6:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"private"},{"constant":false,"documentation":{"id":14281,"nodeType":"StructuredDocumentation","src":"1988:93:48","text":"@notice The timestamp when the current period will end or the latest period has ended. "},"functionSelector":"ebe2b12b","id":14283,"mutability":"mutable","name":"periodFinish","nameLocation":"2101:12:48","nodeType":"VariableDeclaration","scope":15015,"src":"2087:26:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":14282,"name":"uint48","nodeType":"ElementaryTypeName","src":"2087:6:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"public"},{"constant":false,"documentation":{"id":14284,"nodeType":"StructuredDocumentation","src":"2122:49:48","text":"@notice The amount of total rewards added. "},"functionSelector":"098b8858","id":14286,"mutability":"mutable","name":"totalRewardAdded","nameLocation":"2191:16:48","nodeType":"VariableDeclaration","scope":15015,"src":"2177:30:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14285,"name":"uint96","nodeType":"ElementaryTypeName","src":"2177:6:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"public"},{"constant":false,"documentation":{"id":14287,"nodeType":"StructuredDocumentation","src":"2216:47:48","text":"@notice The sum of all pools’ weights. "},"functionSelector":"96c82e57","id":14289,"mutability":"mutable","name":"totalWeight","nameLocation":"2283:11:48","nodeType":"VariableDeclaration","scope":15015,"src":"2269:25:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14288,"name":"uint32","nodeType":"ElementaryTypeName","src":"2269:6:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"constant":false,"documentation":{"id":14290,"nodeType":"StructuredDocumentation","src":"2303:90:48","text":"@notice The duration of how long the rewards will last after `addReward` is called. "},"functionSelector":"b470aade","id":14293,"mutability":"mutable","name":"periodDuration","nameLocation":"2414:14:48","nodeType":"VariableDeclaration","scope":15015,"src":"2399:38:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14291,"name":"uint256","nodeType":"ElementaryTypeName","src":"2399:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":14292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2431:6:48","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"visibility":"public"},{"constant":true,"documentation":{"id":14294,"nodeType":"StructuredDocumentation","src":"2446:54:48","text":"@notice The minimum duration a period can last. "},"id":14301,"mutability":"constant","name":"MIN_PERIOD_DURATION","nameLocation":"2531:19:48","nodeType":"VariableDeclaration","scope":15015,"src":"2506:56:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14295,"name":"uint256","nodeType":"ElementaryTypeName","src":"2506:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_65537_by_1","typeString":"int_const 65537"},"id":14300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":14298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":14296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:1:48","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":14297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2556:2:48","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2553:5:48","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2561:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2553:9:48","typeDescriptions":{"typeIdentifier":"t_rational_65537_by_1","typeString":"int_const 65537"}},"visibility":"private"},{"constant":true,"documentation":{"id":14302,"nodeType":"StructuredDocumentation","src":"2571:54:48","text":"@notice The maximum duration a period can last. "},"id":14309,"mutability":"constant","name":"MAX_PERIOD_DURATION","nameLocation":"2656:19:48","nodeType":"VariableDeclaration","scope":15015,"src":"2631:63:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14303,"name":"uint256","nodeType":"ElementaryTypeName","src":"2631:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":14306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2683:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":14305,"name":"uint32","nodeType":"ElementaryTypeName","src":"2683:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":14304,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2678:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2678:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":14308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2678:16:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"private"},{"constant":true,"documentation":{"id":14310,"nodeType":"StructuredDocumentation","src":"2703:83:48","text":"@notice The fixed denominator used when storing `rewardPerWeight` variables. "},"id":14315,"mutability":"constant","name":"WEIGHT_PRECISION","nameLocation":"2817:16:48","nodeType":"VariableDeclaration","scope":15015,"src":"2792:49:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14311,"name":"uint256","nodeType":"ElementaryTypeName","src":"2792:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":14314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":14312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2836:1:48","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":14313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2839:2:48","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2836:5:48","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"visibility":"private"},{"constant":true,"documentation":{"id":14316,"nodeType":"StructuredDocumentation","src":"2850:70:48","text":"@notice The maximum amount for the sum of all pools’ weights. "},"id":14323,"mutability":"constant","name":"MAX_TOTAL_WEIGHT","nameLocation":"2951:16:48","nodeType":"VariableDeclaration","scope":15015,"src":"2926:60:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14317,"name":"uint256","nodeType":"ElementaryTypeName","src":"2926:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":14320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2975:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":14319,"name":"uint32","nodeType":"ElementaryTypeName","src":"2975:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":14318,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2970:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2970:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":14322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2970:16:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"private"},{"constant":true,"documentation":{"id":14324,"nodeType":"StructuredDocumentation","src":"2995:74:48","text":"@notice The maximum amount of rewards that can ever be distributed. "},"id":14331,"mutability":"constant","name":"MAX_TOTAL_REWARD","nameLocation":"3100:16:48","nodeType":"VariableDeclaration","scope":15015,"src":"3075:60:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14325,"name":"uint256","nodeType":"ElementaryTypeName","src":"3075:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":14328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3124:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":14327,"name":"uint96","nodeType":"ElementaryTypeName","src":"3124:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":14326,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3119:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3119:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":14330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3119:16:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"private"},{"constant":true,"documentation":{"id":14332,"nodeType":"StructuredDocumentation","src":"3144:79:48","text":"@notice The initial weight of pool zero, hence the initial total weight. "},"id":14335,"mutability":"constant","name":"INITIAL_WEIGHT","nameLocation":"3253:14:48","nodeType":"VariableDeclaration","scope":15015,"src":"3229:46:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14333,"name":"uint32","nodeType":"ElementaryTypeName","src":"3229:6:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"315f303030","id":14334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3270:5:48","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"constant":true,"documentation":{"id":14336,"nodeType":"StructuredDocumentation","src":"3284:69:48","text":"@notice The privileged role that can call `addReward` function "},"id":14341,"mutability":"constant","name":"FUNDER_ROLE","nameLocation":"3384:11:48","nodeType":"VariableDeclaration","scope":15015,"src":"3359:63:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3359:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"46554e4445525f524f4c45","id":14339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3408:13:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""},"value":"FUNDER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""}],"id":14338,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3398:9:48","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3398:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"documentation":{"id":14342,"nodeType":"StructuredDocumentation","src":"3431:64:48","text":"@notice The privileged role that can change pool weights. "},"id":14347,"mutability":"constant","name":"POOL_MANAGER_ROLE","nameLocation":"3527:17:48","nodeType":"VariableDeclaration","scope":15015,"src":"3501:76:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3501:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"504f4f4c5f4d414e414745525f524f4c45","id":14345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3557:19:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff","typeString":"literal_string \"POOL_MANAGER_ROLE\""},"value":"POOL_MANAGER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff","typeString":"literal_string \"POOL_MANAGER_ROLE\""}],"id":14344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3547:9:48","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3547:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"documentation":{"id":14348,"nodeType":"StructuredDocumentation","src":"3586:63:48","text":"@notice The reward token that is distributed to stakers. "},"functionSelector":"d1af0c7d","id":14351,"mutability":"immutable","name":"rewardsToken","nameLocation":"3678:12:48","nodeType":"VariableDeclaration","scope":15015,"src":"3655:35:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"},"typeName":{"id":14350,"nodeType":"UserDefinedTypeName","pathNode":{"id":14349,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"3655:5:48"},"referencedDeclaration":9395,"src":"3655:5:48","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":14352,"nodeType":"StructuredDocumentation","src":"3699:69:48","text":"@notice The event emitted when a period is manually cut short. "},"eventSelector":"ac02d07d013ae7c7e3ee940f8df0877c2ab1103bf87ab258ce31665f7111f092","id":14354,"name":"PeriodEnded","nameLocation":"3780:11:48","nodeType":"EventDefinition","parameters":{"id":14353,"nodeType":"ParameterList","parameters":[],"src":"3791:2:48"},"src":"3774:20:48"},{"anonymous":false,"documentation":{"id":14355,"nodeType":"StructuredDocumentation","src":"3802:86:48","text":"@notice The event emitted when a period is started or extended through funding. "},"eventSelector":"de88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d","id":14359,"name":"RewardAdded","nameLocation":"3900:11:48","nodeType":"EventDefinition","parameters":{"id":14358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14357,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"3920:6:48","nodeType":"VariableDeclaration","scope":14359,"src":"3912:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14356,"name":"uint256","nodeType":"ElementaryTypeName","src":"3912:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3911:16:48"},"src":"3894:34:48"},{"anonymous":false,"documentation":{"id":14360,"nodeType":"StructuredDocumentation","src":"3936:69:48","text":"@notice The event emitted when the period duration is changed. "},"eventSelector":"bd6eb9cf4d6e2902587c57e3163aaafdb46e3b3f2086bdfa75c790228930a9d7","id":14364,"name":"PeriodDurationUpdated","nameLocation":"4017:21:48","nodeType":"EventDefinition","parameters":{"id":14363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14362,"indexed":false,"mutability":"mutable","name":"newDuration","nameLocation":"4047:11:48","nodeType":"VariableDeclaration","scope":14364,"src":"4039:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14361,"name":"uint256","nodeType":"ElementaryTypeName","src":"4039:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4038:21:48"},"src":"4011:49:48"},{"anonymous":false,"documentation":{"id":14365,"nodeType":"StructuredDocumentation","src":"4068:67:48","text":"@notice The event emitted when the weight of a pool changes. "},"eventSelector":"645b3dc30fbdcc9749f62868ae25c191ff0090b1c21905c2793ec7159856e438","id":14371,"name":"WeightSet","nameLocation":"4147:9:48","nodeType":"EventDefinition","parameters":{"id":14370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14367,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"4173:6:48","nodeType":"VariableDeclaration","scope":14371,"src":"4157:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14366,"name":"uint256","nodeType":"ElementaryTypeName","src":"4157:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14369,"indexed":false,"mutability":"mutable","name":"newWeight","nameLocation":"4189:9:48","nodeType":"VariableDeclaration","scope":14371,"src":"4181:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14368,"name":"uint256","nodeType":"ElementaryTypeName","src":"4181:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4156:43:48"},"src":"4141:59:48"},{"body":{"id":14421,"nodeType":"Block","src":"4477:482:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14379,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14376,"src":"4492:8:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4512:1:48","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":14381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4504:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14380,"name":"address","nodeType":"ElementaryTypeName","src":"4504:7:48","typeDescriptions":{}}},"id":14383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4504:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4492:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14388,"nodeType":"IfStatement","src":"4488:46:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14385,"name":"NullInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"4523:9:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4523:11:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14387,"nodeType":"RevertStatement","src":"4516:18:48"}},{"expression":{"id":14393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14389,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"4583:12:48","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14391,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14374,"src":"4604:15:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14390,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9395,"src":"4598:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$9395_$","typeString":"type(contract ERC20)"}},"id":14392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4598:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"src":"4583:37:48","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":14394,"nodeType":"ExpressionStatement","src":"4583:37:48"},{"expression":{"arguments":[{"id":14396,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"4642:18:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14397,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14376,"src":"4662:8:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14395,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"4631:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4631:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14399,"nodeType":"ExpressionStatement","src":"4631:40:48"},{"expression":{"arguments":[{"id":14401,"name":"FUNDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"4693:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14402,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14376,"src":"4706:8:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14400,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"4682:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4682:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14404,"nodeType":"ExpressionStatement","src":"4682:33:48"},{"expression":{"arguments":[{"id":14406,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"4737:17:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14407,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14376,"src":"4756:8:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14405,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"4726:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":14408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4726:39:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14409,"nodeType":"ExpressionStatement","src":"4726:39:48"},{"expression":{"id":14415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":14410,"name":"poolRewardInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14271,"src":"4870:15:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PoolRewardInfo_$14265_storage_$","typeString":"mapping(uint256 => struct PangoChefFunding.PoolRewardInfo storage ref)"}},"id":14412,"indexExpression":{"hexValue":"30","id":14411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4886:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4870:18:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage","typeString":"struct PangoChefFunding.PoolRewardInfo storage ref"}},"id":14413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":14260,"src":"4870:25:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14414,"name":"INITIAL_WEIGHT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"4898:14:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"4870:42:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14416,"nodeType":"ExpressionStatement","src":"4870:42:48"},{"expression":{"id":14419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14417,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14289,"src":"4923:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14418,"name":"INITIAL_WEIGHT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"4937:14:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"4923:28:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14420,"nodeType":"ExpressionStatement","src":"4923:28:48"}]},"documentation":{"id":14372,"nodeType":"StructuredDocumentation","src":"4208:208:48","text":" @notice Constructor to create PangoChefFunding contract.\n @param newRewardsToken The token that is distributed as reward.\n @param newAdmin The initial owner of the contract."},"id":14422,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14374,"mutability":"mutable","name":"newRewardsToken","nameLocation":"4442:15:48","nodeType":"VariableDeclaration","scope":14422,"src":"4434:23:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14373,"name":"address","nodeType":"ElementaryTypeName","src":"4434:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14376,"mutability":"mutable","name":"newAdmin","nameLocation":"4467:8:48","nodeType":"VariableDeclaration","scope":14422,"src":"4459:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14375,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4433:43:48"},"returnParameters":{"id":14378,"nodeType":"ParameterList","parameters":[],"src":"4477:0:48"},"scope":15015,"src":"4422:537:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14461,"nodeType":"Block","src":"5225:498:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14431,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"5287:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":14432,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5302:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5302:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5287:30:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14438,"nodeType":"IfStatement","src":"5283:53:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14435,"name":"TooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12005,"src":"5326:8:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5326:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14437,"nodeType":"RevertStatement","src":"5319:17:48"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14439,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14425,"src":"5409:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14440,"name":"MIN_PERIOD_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14301,"src":"5423:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5409:33:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14445,"nodeType":"IfStatement","src":"5405:59:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14442,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"5451:11:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5451:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14444,"nodeType":"RevertStatement","src":"5444:20:48"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14446,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14425,"src":"5479:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14447,"name":"MAX_PERIOD_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14309,"src":"5493:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5479:33:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14452,"nodeType":"IfStatement","src":"5475:59:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14449,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"5521:11:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5521:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14451,"nodeType":"RevertStatement","src":"5514:20:48"}},{"expression":{"id":14455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14453,"name":"periodDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14293,"src":"5637:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14454,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14425,"src":"5654:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5637:28:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14456,"nodeType":"ExpressionStatement","src":"5637:28:48"},{"eventCall":{"arguments":[{"id":14458,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14425,"src":"5703:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14457,"name":"PeriodDurationUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14364,"src":"5681:21:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":14459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5681:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14460,"nodeType":"EmitStatement","src":"5676:39:48"}]},"documentation":{"id":14423,"nodeType":"StructuredDocumentation","src":"4967:166:48","text":" @notice External restricted function to change the reward period duration.\n @param newDuration The duration the feature periods will last."},"functionSelector":"7c2d6e01","id":14462,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14428,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"5205:18:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14429,"kind":"modifierInvocation","modifierName":{"id":14427,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5196:8:48"},"nodeType":"ModifierInvocation","src":"5196:28:48"}],"name":"setPeriodDuration","nameLocation":"5148:17:48","nodeType":"FunctionDefinition","parameters":{"id":14426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14425,"mutability":"mutable","name":"newDuration","nameLocation":"5174:11:48","nodeType":"VariableDeclaration","scope":14462,"src":"5166:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14424,"name":"uint256","nodeType":"ElementaryTypeName","src":"5166:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5165:21:48"},"returnParameters":{"id":14430,"nodeType":"ParameterList","parameters":[],"src":"5225:0:48"},"scope":15015,"src":"5139:584:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14514,"nodeType":"Block","src":"5888:686:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14469,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5952:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5952:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":14471,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"5971:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5952:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14476,"nodeType":"IfStatement","src":"5948:53:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14473,"name":"TooLate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12003,"src":"5992:7:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5992:9:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14475,"nodeType":"RevertStatement","src":"5985:16:48"}},{"id":14513,"nodeType":"UncheckedBlock","src":"6014:553:48","statements":[{"assignments":[14478],"declarations":[{"constant":false,"id":14478,"mutability":"mutable","name":"leftover","nameLocation":"6108:8:48","nodeType":"VariableDeclaration","scope":14513,"src":"6100:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14477,"name":"uint256","nodeType":"ElementaryTypeName","src":"6100:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14486,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14479,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"6120:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14480,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6135:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6135:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6120:30:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14483,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6119:32:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14484,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"6154:11:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"6119:46:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6100:65:48"},{"expression":{"id":14492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14487,"name":"totalRewardAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"6256:16:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":14490,"name":"leftover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14478,"src":"6283:8:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6276:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":14488,"name":"uint96","nodeType":"ElementaryTypeName","src":"6276:6:48","typeDescriptions":{}}},"id":14491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6276:16:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"6256:36:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":14493,"nodeType":"ExpressionStatement","src":"6256:36:48"},{"expression":{"id":14500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14494,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"6346:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":14497,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6368:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6368:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6361:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":14495,"name":"uint48","nodeType":"ElementaryTypeName","src":"6361:6:48","typeDescriptions":{}}},"id":14499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6361:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"6346:38:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":14501,"nodeType":"ExpressionStatement","src":"6346:38:48"},{"expression":{"arguments":[{"expression":{"id":14505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6501:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6501:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14507,"name":"leftover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14478,"src":"6513:8:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14502,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"6475:12:48","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":14504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"6475:25:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":14508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6475:47:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14509,"nodeType":"ExpressionStatement","src":"6475:47:48"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14510,"name":"PeriodEnded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14354,"src":"6542:11:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6542:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14512,"nodeType":"EmitStatement","src":"6537:18:48"}]}]},"documentation":{"id":14463,"nodeType":"StructuredDocumentation","src":"5731:92:48","text":"@notice External restricted function to end the period and withdraw leftover rewards. "},"functionSelector":"5faa65ff","id":14515,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14466,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"5868:18:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14467,"kind":"modifierInvocation","modifierName":{"id":14465,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"5859:8:48"},"nodeType":"ModifierInvocation","src":"5859:28:48"}],"name":"endPeriod","nameLocation":"5838:9:48","nodeType":"FunctionDefinition","parameters":{"id":14464,"nodeType":"ParameterList","parameters":[],"src":"5847:2:48"},"returnParameters":{"id":14468,"nodeType":"ParameterList","parameters":[],"src":"5888:0:48"},"scope":15015,"src":"5829:745:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14608,"nodeType":"Block","src":"6807:1559:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14524,"name":"_updateRewardPerWeightStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14956,"src":"6818:28:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6818:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14526,"nodeType":"ExpressionStatement","src":"6818:30:48"},{"assignments":[14528],"declarations":[{"constant":false,"id":14528,"mutability":"mutable","name":"tmpPeriodDuration","nameLocation":"6932:17:48","nodeType":"VariableDeclaration","scope":14608,"src":"6924:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14527,"name":"uint256","nodeType":"ElementaryTypeName","src":"6924:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14530,"initialValue":{"id":14529,"name":"periodDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14293,"src":"6952:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6924:42:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14531,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14518,"src":"7023:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14532,"name":"MAX_TOTAL_REWARD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14331,"src":"7032:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7023:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14537,"nodeType":"IfStatement","src":"7019:48:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14534,"name":"Overflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"7057:8:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7057:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14536,"nodeType":"RevertStatement","src":"7050:17:48"}},{"expression":{"id":14543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14538,"name":"totalRewardAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"7169:16:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":14541,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14518,"src":"7196:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7189:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":14539,"name":"uint96","nodeType":"ElementaryTypeName","src":"7189:6:48","typeDescriptions":{}}},"id":14542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7189:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"7169:34:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":14544,"nodeType":"ExpressionStatement","src":"7169:34:48"},{"assignments":[14546],"declarations":[{"constant":false,"id":14546,"mutability":"mutable","name":"newRewardRate","nameLocation":"7324:13:48","nodeType":"VariableDeclaration","scope":14608,"src":"7316:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14545,"name":"uint256","nodeType":"ElementaryTypeName","src":"7316:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14547,"nodeType":"VariableDeclarationStatement","src":"7316:21:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14548,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7352:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7352:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":14550,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"7371:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"7352:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14566,"nodeType":"Block","src":"7507:267:48","statements":[{"id":14565,"nodeType":"UncheckedBlock","src":"7522:241:48","statements":[{"assignments":[14555],"declarations":[{"constant":false,"id":14555,"mutability":"mutable","name":"leftover","nameLocation":"7559:8:48","nodeType":"VariableDeclaration","scope":14565,"src":"7551:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14554,"name":"uint256","nodeType":"ElementaryTypeName","src":"7551:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14563,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14556,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"7571:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14557,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7586:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7586:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7571:30:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7570:32:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14561,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"7605:11:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"7570:46:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7551:65:48"},{"AST":{"nodeType":"YulBlock","src":"7644:104:48","statements":[{"nodeType":"YulAssignment","src":"7667:62:48","value":{"arguments":[{"arguments":[{"name":"amount","nodeType":"YulIdentifier","src":"7692:6:48"},{"name":"leftover","nodeType":"YulIdentifier","src":"7700:8:48"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7688:3:48"},"nodeType":"YulFunctionCall","src":"7688:21:48"},{"name":"tmpPeriodDuration","nodeType":"YulIdentifier","src":"7711:17:48"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7684:3:48"},"nodeType":"YulFunctionCall","src":"7684:45:48"},"variableNames":[{"name":"newRewardRate","nodeType":"YulIdentifier","src":"7667:13:48"}]}]},"evmVersion":"london","externalReferences":[{"declaration":14518,"isOffset":false,"isSlot":false,"src":"7692:6:48","valueSize":1},{"declaration":14555,"isOffset":false,"isSlot":false,"src":"7700:8:48","valueSize":1},{"declaration":14546,"isOffset":false,"isSlot":false,"src":"7667:13:48","valueSize":1},{"declaration":14528,"isOffset":false,"isSlot":false,"src":"7711:17:48","valueSize":1}],"id":14564,"nodeType":"InlineAssembly","src":"7635:113:48"}]}]},"id":14567,"nodeType":"IfStatement","src":"7348:426:48","trueBody":{"id":14553,"nodeType":"Block","src":"7385:116:48","statements":[{"AST":{"nodeType":"YulBlock","src":"7409:81:48","statements":[{"nodeType":"YulAssignment","src":"7428:47:48","value":{"arguments":[{"name":"amount","nodeType":"YulIdentifier","src":"7449:6:48"},{"name":"tmpPeriodDuration","nodeType":"YulIdentifier","src":"7457:17:48"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7445:3:48"},"nodeType":"YulFunctionCall","src":"7445:30:48"},"variableNames":[{"name":"newRewardRate","nodeType":"YulIdentifier","src":"7428:13:48"}]}]},"evmVersion":"london","externalReferences":[{"declaration":14518,"isOffset":false,"isSlot":false,"src":"7449:6:48","valueSize":1},{"declaration":14546,"isOffset":false,"isSlot":false,"src":"7428:13:48","valueSize":1},{"declaration":14528,"isOffset":false,"isSlot":false,"src":"7457:17:48","valueSize":1}],"id":14552,"nodeType":"InlineAssembly","src":"7400:90:48"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14568,"name":"newRewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14546,"src":"7870:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7887:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7870:18:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14574,"nodeType":"IfStatement","src":"7866:41:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14571,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"7897:8:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7897:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14573,"nodeType":"RevertStatement","src":"7890:17:48"}},{"expression":{"id":14580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14575,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"8039:11:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14578,"name":"newRewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14546,"src":"8060:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8053:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":14576,"name":"uint80","nodeType":"ElementaryTypeName","src":"8053:6:48","typeDescriptions":{}}},"id":14579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8053:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"8039:35:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"id":14581,"nodeType":"ExpressionStatement","src":"8039:35:48"},{"expression":{"id":14590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14582,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"8120:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14585,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8142:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8142:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14587,"name":"tmpPeriodDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14528,"src":"8160:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8142:35:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8135:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":14583,"name":"uint48","nodeType":"ElementaryTypeName","src":"8135:6:48","typeDescriptions":{}}},"id":14589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8135:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"8120:58:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":14591,"nodeType":"ExpressionStatement","src":"8120:58:48"},{"expression":{"arguments":[{"expression":{"id":14595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8289:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8289:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14599,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8309:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_PangoChefFunding_$15015","typeString":"contract PangoChefFunding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangoChefFunding_$15015","typeString":"contract PangoChefFunding"}],"id":14598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8301:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14597,"name":"address","nodeType":"ElementaryTypeName","src":"8301:7:48","typeDescriptions":{}}},"id":14600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8301:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14601,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14518,"src":"8316:6:48","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":14592,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14351,"src":"8259:12:48","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":14594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":9439,"src":"8259:29:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,address,uint256)"}},"id":14602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8259:64:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14603,"nodeType":"ExpressionStatement","src":"8259:64:48"},{"eventCall":{"arguments":[{"id":14605,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14518,"src":"8351:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14604,"name":"RewardAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"8339:11:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":14606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8339:19:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14607,"nodeType":"EmitStatement","src":"8334:24:48"}]},"documentation":{"id":14516,"nodeType":"StructuredDocumentation","src":"6582:153:48","text":" @notice External restricted function to fund the contract.\n @param amount The amount of reward tokens to add to the contract."},"functionSelector":"74de4ec4","id":14609,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14521,"name":"FUNDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"6794:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14522,"kind":"modifierInvocation","modifierName":{"id":14520,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"6785:8:48"},"nodeType":"ModifierInvocation","src":"6785:21:48"}],"name":"addReward","nameLocation":"6750:9:48","nodeType":"FunctionDefinition","parameters":{"id":14519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14518,"mutability":"mutable","name":"amount","nameLocation":"6768:6:48","nodeType":"VariableDeclaration","scope":14609,"src":"6760:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14517,"name":"uint256","nodeType":"ElementaryTypeName","src":"6760:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6759:16:48"},"returnParameters":{"id":14523,"nodeType":"ParameterList","parameters":[],"src":"6807:0:48"},"scope":15015,"src":"6741:1625:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14774,"nodeType":"Block","src":"8823:1899:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14622,"name":"_updateRewardPerWeightStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14956,"src":"8834:28:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8834:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14624,"nodeType":"ExpressionStatement","src":"8834:30:48"},{"assignments":[14626],"declarations":[{"constant":false,"id":14626,"mutability":"mutable","name":"length","nameLocation":"8955:6:48","nodeType":"VariableDeclaration","scope":14774,"src":"8947:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14625,"name":"uint256","nodeType":"ElementaryTypeName","src":"8947:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14629,"initialValue":{"expression":{"id":14627,"name":"poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14613,"src":"8964:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":14628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8964:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8947:31:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14630,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14626,"src":"8993:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14631,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14616,"src":"9003:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_calldata_ptr","typeString":"uint32[] calldata"}},"id":14632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"9003:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8993:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14637,"nodeType":"IfStatement","src":"8989:61:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14634,"name":"MismatchedArrayLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12033,"src":"9026:22:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9026:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14636,"nodeType":"RevertStatement","src":"9019:31:48"}},{"assignments":[14639],"declarations":[{"constant":false,"id":14639,"mutability":"mutable","name":"tmpPoolsLength","nameLocation":"9157:14:48","nodeType":"VariableDeclaration","scope":14774,"src":"9149:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14638,"name":"uint256","nodeType":"ElementaryTypeName","src":"9149:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14642,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14640,"name":"poolsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14828,"src":"9174:11:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9174:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9149:38:48"},{"assignments":[14644],"declarations":[{"constant":false,"id":14644,"mutability":"mutable","name":"weightChange","nameLocation":"9291:12:48","nodeType":"VariableDeclaration","scope":14774,"src":"9284:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14643,"name":"int256","nodeType":"ElementaryTypeName","src":"9284:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":14645,"nodeType":"VariableDeclarationStatement","src":"9284:19:48"},{"body":{"id":14733,"nodeType":"Block","src":"9348:1004:48","statements":[{"assignments":[14654],"declarations":[{"constant":false,"id":14654,"mutability":"mutable","name":"poolId","nameLocation":"9371:6:48","nodeType":"VariableDeclaration","scope":14733,"src":"9363:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14653,"name":"uint256","nodeType":"ElementaryTypeName","src":"9363:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14658,"initialValue":{"baseExpression":{"id":14655,"name":"poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14613,"src":"9380:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":14657,"indexExpression":{"id":14656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14647,"src":"9388:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9380:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9363:27:48"},{"assignments":[14660],"declarations":[{"constant":false,"id":14660,"mutability":"mutable","name":"weight","nameLocation":"9413:6:48","nodeType":"VariableDeclaration","scope":14733,"src":"9405:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14659,"name":"uint256","nodeType":"ElementaryTypeName","src":"9405:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14664,"initialValue":{"baseExpression":{"id":14661,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14616,"src":"9422:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_calldata_ptr","typeString":"uint32[] calldata"}},"id":14663,"indexExpression":{"id":14662,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14647,"src":"9430:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9422:10:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"9405:27:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14665,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14654,"src":"9520:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":14666,"name":"tmpPoolsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14639,"src":"9530:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9520:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14671,"nodeType":"IfStatement","src":"9516:50:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14668,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"9553:11:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9553:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14670,"nodeType":"RevertStatement","src":"9546:20:48"}},{"assignments":[14674],"declarations":[{"constant":false,"id":14674,"mutability":"mutable","name":"pool","nameLocation":"9659:4:48","nodeType":"VariableDeclaration","scope":14733,"src":"9636:27:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"},"typeName":{"id":14673,"nodeType":"UserDefinedTypeName","pathNode":{"id":14672,"name":"PoolRewardInfo","nodeType":"IdentifierPath","referencedDeclaration":14265,"src":"9636:14:48"},"referencedDeclaration":14265,"src":"9636:14:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"}},"visibility":"internal"}],"id":14678,"initialValue":{"baseExpression":{"id":14675,"name":"poolRewardInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14271,"src":"9666:15:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PoolRewardInfo_$14265_storage_$","typeString":"mapping(uint256 => struct PangoChefFunding.PoolRewardInfo storage ref)"}},"id":14677,"indexExpression":{"id":14676,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14654,"src":"9682:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9666:23:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage","typeString":"struct PangoChefFunding.PoolRewardInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9636:53:48"},{"assignments":[14680],"declarations":[{"constant":false,"id":14680,"mutability":"mutable","name":"oldWeight","nameLocation":"9756:9:48","nodeType":"VariableDeclaration","scope":14733,"src":"9748:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14679,"name":"uint256","nodeType":"ElementaryTypeName","src":"9748:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14683,"initialValue":{"expression":{"id":14681,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14674,"src":"9768:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":14260,"src":"9768:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"9748:31:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14684,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14660,"src":"9798:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14685,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"9808:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9798:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14690,"nodeType":"IfStatement","src":"9794:42:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14687,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"9826:8:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9826:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14689,"nodeType":"RevertStatement","src":"9819:17:48"}},{"expression":{"id":14702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14691,"name":"weightChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"9909:12:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":14700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14694,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14660,"src":"9933:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9926:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14692,"name":"int256","nodeType":"ElementaryTypeName","src":"9926:6:48","typeDescriptions":{}}},"id":14695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9926:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":14698,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"9950:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9943:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14696,"name":"int256","nodeType":"ElementaryTypeName","src":"9943:6:48","typeDescriptions":{}}},"id":14699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9943:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9926:34:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":14701,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9925:36:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9909:52:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14703,"nodeType":"ExpressionStatement","src":"9909:52:48"},{"expression":{"id":14713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14704,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14674,"src":"10071:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":14262,"src":"10071:19:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":14710,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14674,"src":"10127:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}],"id":14709,"name":"_updateRewardPerWeightPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"10100:26:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PoolRewardInfo_$14265_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChefFunding.PoolRewardInfo storage pointer) returns (uint256)"}},"id":14711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10100:32:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10093:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":14707,"name":"uint96","nodeType":"ElementaryTypeName","src":"10093:6:48","typeDescriptions":{}}},"id":14712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10093:40:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"10071:62:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":14714,"nodeType":"ExpressionStatement","src":"10071:62:48"},{"expression":{"id":14722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14715,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14674,"src":"10148:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":14260,"src":"10148:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14720,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14660,"src":"10169:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10162:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":14718,"name":"uint32","nodeType":"ElementaryTypeName","src":"10162:6:48","typeDescriptions":{}}},"id":14721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10162:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10148:28:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14723,"nodeType":"ExpressionStatement","src":"10148:28:48"},{"eventCall":{"arguments":[{"id":14725,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14654,"src":"10206:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14726,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14660,"src":"10214:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14724,"name":"WeightSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14371,"src":"10196:9:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":14727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10196:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14728,"nodeType":"EmitStatement","src":"10191:30:48"},{"id":14732,"nodeType":"UncheckedBlock","src":"10293:48:48","statements":[{"expression":{"id":14730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10322:3:48","subExpression":{"id":14729,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14647,"src":"10324:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14731,"nodeType":"ExpressionStatement","src":"10322:3:48"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14650,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14647,"src":"9334:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14651,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14626,"src":"9338:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9334:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14734,"initializationExpression":{"assignments":[14647],"declarations":[{"constant":false,"id":14647,"mutability":"mutable","name":"i","nameLocation":"9327:1:48","nodeType":"VariableDeclaration","scope":14734,"src":"9319:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14646,"name":"uint256","nodeType":"ElementaryTypeName","src":"9319:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14649,"initialValue":{"hexValue":"30","id":14648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9331:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9319:13:48"},"nodeType":"ForStatement","src":"9314:1038:48"},{"assignments":[14736],"declarations":[{"constant":false,"id":14736,"mutability":"mutable","name":"newTotalWeight","nameLocation":"10463:14:48","nodeType":"VariableDeclaration","scope":14774,"src":"10456:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14735,"name":"int256","nodeType":"ElementaryTypeName","src":"10456:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":14746,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":14745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":14741,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14289,"src":"10495:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":14740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10487:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14739,"name":"uint256","nodeType":"ElementaryTypeName","src":"10487:7:48","typeDescriptions":{}}},"id":14742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10487:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10480:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":14737,"name":"int256","nodeType":"ElementaryTypeName","src":"10480:6:48","typeDescriptions":{}}},"id":14743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10480:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14744,"name":"weightChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14644,"src":"10511:12:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10480:43:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10456:67:48"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":14749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14747,"name":"newTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14736,"src":"10538:14:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":14748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10556:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10538:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14753,"nodeType":"IfStatement","src":"10534:45:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14750,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"10566:11:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10566:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14752,"nodeType":"RevertStatement","src":"10559:20:48"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14756,"name":"newTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14736,"src":"10602:14:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":14755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10594:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14754,"name":"uint256","nodeType":"ElementaryTypeName","src":"10594:7:48","typeDescriptions":{}}},"id":14757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10594:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14758,"name":"MAX_TOTAL_WEIGHT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"10620:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10594:42:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14763,"nodeType":"IfStatement","src":"10590:68:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14760,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"10645:11:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":14761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10645:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14762,"nodeType":"RevertStatement","src":"10638:20:48"}},{"expression":{"id":14772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14764,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14289,"src":"10669:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":14769,"name":"newTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14736,"src":"10698:14:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":14768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10690:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14767,"name":"uint256","nodeType":"ElementaryTypeName","src":"10690:7:48","typeDescriptions":{}}},"id":14770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10690:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10683:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":14765,"name":"uint32","nodeType":"ElementaryTypeName","src":"10683:6:48","typeDescriptions":{}}},"id":14771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10683:31:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10669:45:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14773,"nodeType":"ExpressionStatement","src":"10669:45:48"}]},"documentation":{"id":14610,"nodeType":"StructuredDocumentation","src":"8374:308:48","text":" @notice External restricted function to change the weights of pools.\n @dev It requires that pool is created by the parent contract.\n @param poolIds The identifiers of the pools to change the weights of.\n @param weights The new weights to set the respective pools to."},"functionSelector":"54f8c475","id":14775,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14619,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14347,"src":"8799:17:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14620,"kind":"modifierInvocation","modifierName":{"id":14618,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"8790:8:48"},"nodeType":"ModifierInvocation","src":"8790:27:48"}],"name":"setWeights","nameLocation":"8697:10:48","nodeType":"FunctionDefinition","parameters":{"id":14617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14613,"mutability":"mutable","name":"poolIds","nameLocation":"8727:7:48","nodeType":"VariableDeclaration","scope":14775,"src":"8708:26:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14611,"name":"uint256","nodeType":"ElementaryTypeName","src":"8708:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14612,"nodeType":"ArrayTypeName","src":"8708:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14616,"mutability":"mutable","name":"weights","nameLocation":"8754:7:48","nodeType":"VariableDeclaration","scope":14775,"src":"8736:25:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_calldata_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":14614,"name":"uint32","nodeType":"ElementaryTypeName","src":"8736:6:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":14615,"nodeType":"ArrayTypeName","src":"8736:8:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"src":"8707:55:48"},"returnParameters":{"id":14621,"nodeType":"ParameterList","parameters":[],"src":"8823:0:48"},"scope":15015,"src":"8688:2034:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14803,"nodeType":"Block","src":"11020:198:48","statements":[{"assignments":[14784],"declarations":[{"constant":false,"id":14784,"mutability":"mutable","name":"poolWeight","nameLocation":"11086:10:48","nodeType":"VariableDeclaration","scope":14803,"src":"11078:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14783,"name":"uint256","nodeType":"ElementaryTypeName","src":"11078:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14789,"initialValue":{"expression":{"baseExpression":{"id":14785,"name":"poolRewardInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14271,"src":"11099:15:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PoolRewardInfo_$14265_storage_$","typeString":"mapping(uint256 => struct PangoChefFunding.PoolRewardInfo storage ref)"}},"id":14787,"indexExpression":{"id":14786,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14778,"src":"11115:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11099:23:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage","typeString":"struct PangoChefFunding.PoolRewardInfo storage ref"}},"id":14788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":14260,"src":"11099:30:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"11078:51:48"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14790,"name":"poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"11147:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11161:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11147:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14794,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"11170:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11170:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14796,"name":"poolWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"11185:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11170:25:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14798,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11169:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14799,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14289,"src":"11199:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"11169:41:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11147:63:48","trueExpression":{"hexValue":"30","id":14793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11165:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14782,"id":14802,"nodeType":"Return","src":"11140:70:48"}]},"documentation":{"id":14776,"nodeType":"StructuredDocumentation","src":"10730:214:48","text":" @notice External view function to get the reward rate of a pool\n @param poolId The identifier of the pool to check the reward rate of.\n @return The rewards per second of the pool."},"functionSelector":"f2d1e1cd","id":14804,"implemented":true,"kind":"function","modifiers":[],"name":"poolRewardRate","nameLocation":"10959:14:48","nodeType":"FunctionDefinition","parameters":{"id":14779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14778,"mutability":"mutable","name":"poolId","nameLocation":"10982:6:48","nodeType":"VariableDeclaration","scope":14804,"src":"10974:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14777,"name":"uint256","nodeType":"ElementaryTypeName","src":"10974:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10973:16:48"},"returnParameters":{"id":14782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14804,"src":"11011:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14780,"name":"uint256","nodeType":"ElementaryTypeName","src":"11011:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11010:9:48"},"scope":15015,"src":"10950:268:48","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":14818,"nodeType":"Block","src":"11438:74:48","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14810,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"11456:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14811,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11471:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11471:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11456:30:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":14815,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"11493:11:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"id":14816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11456:48:48","trueExpression":{"hexValue":"30","id":14814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11489:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":14809,"id":14817,"nodeType":"Return","src":"11449:55:48"}]},"documentation":{"id":14805,"nodeType":"StructuredDocumentation","src":"11226:154:48","text":" @notice Public view function to get the global reward rate.\n @return The rewards per second distributed to all pools combined."},"functionSelector":"7b0a47ee","id":14819,"implemented":true,"kind":"function","modifiers":[],"name":"rewardRate","nameLocation":"11395:10:48","nodeType":"FunctionDefinition","parameters":{"id":14806,"nodeType":"ParameterList","parameters":[],"src":"11405:2:48"},"returnParameters":{"id":14809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14819,"src":"11429:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14807,"name":"uint256","nodeType":"ElementaryTypeName","src":"11429:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11428:9:48"},"scope":15015,"src":"11386:126:48","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":14827,"nodeType":"Block","src":"11809:27:48","statements":[{"expression":{"hexValue":"30","id":14825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11827:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14824,"id":14826,"nodeType":"Return","src":"11820:8:48"}]},"documentation":{"id":14820,"nodeType":"StructuredDocumentation","src":"11520:222:48","text":" @notice Public view function to return the number of pools created by parent contract.\n @dev This function must be overridden by the parent contract.\n @return The number of pools created."},"functionSelector":"2716ae66","id":14828,"implemented":true,"kind":"function","modifiers":[],"name":"poolsLength","nameLocation":"11757:11:48","nodeType":"FunctionDefinition","parameters":{"id":14821,"nodeType":"ParameterList","parameters":[],"src":"11768:2:48"},"returnParameters":{"id":14824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14823,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14828,"src":"11800:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14822,"name":"uint256","nodeType":"ElementaryTypeName","src":"11800:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11799:9:48"},"scope":15015,"src":"11748:88:48","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14858,"nodeType":"Block","src":"12272:199:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14836,"name":"_updateRewardPerWeightStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14956,"src":"12283:28:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12283:30:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14838,"nodeType":"ExpressionStatement","src":"12283:30:48"},{"assignments":[14841],"declarations":[{"constant":false,"id":14841,"mutability":"mutable","name":"pool","nameLocation":"12347:4:48","nodeType":"VariableDeclaration","scope":14858,"src":"12324:27:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"},"typeName":{"id":14840,"nodeType":"UserDefinedTypeName","pathNode":{"id":14839,"name":"PoolRewardInfo","nodeType":"IdentifierPath","referencedDeclaration":14265,"src":"12324:14:48"},"referencedDeclaration":14265,"src":"12324:14:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"}},"visibility":"internal"}],"id":14845,"initialValue":{"baseExpression":{"id":14842,"name":"poolRewardInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14271,"src":"12354:15:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_PoolRewardInfo_$14265_storage_$","typeString":"mapping(uint256 => struct PangoChefFunding.PoolRewardInfo storage ref)"}},"id":14844,"indexExpression":{"id":14843,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14831,"src":"12370:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12354:23:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage","typeString":"struct PangoChefFunding.PoolRewardInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12324:53:48"},{"expression":{"id":14850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14846,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14834,"src":"12388:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14848,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"12424:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}],"id":14847,"name":"_updateRewardPerWeightPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14938,"src":"12397:26:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PoolRewardInfo_$14265_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangoChefFunding.PoolRewardInfo storage pointer) returns (uint256)"}},"id":14849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12397:32:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12388:41:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14851,"nodeType":"ExpressionStatement","src":"12388:41:48"},{"expression":{"id":14856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14852,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"12440:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":14262,"src":"12440:19:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12462:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12440:23:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":14857,"nodeType":"ExpressionStatement","src":"12440:23:48"}]},"documentation":{"id":14829,"nodeType":"StructuredDocumentation","src":"11844:356:48","text":" @notice Internal function to get the amount of reward tokens to distribute to a pool since\n         the last call for the same pool was made to this function.\n @param poolId The identifier of the pool to claim the rewards of.\n @return reward The amount of reward tokens that is marked for distributing to the pool."},"id":14859,"implemented":true,"kind":"function","modifiers":[],"name":"_claim","nameLocation":"12215:6:48","nodeType":"FunctionDefinition","parameters":{"id":14832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14831,"mutability":"mutable","name":"poolId","nameLocation":"12230:6:48","nodeType":"VariableDeclaration","scope":14859,"src":"12222:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14830,"name":"uint256","nodeType":"ElementaryTypeName","src":"12222:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12221:16:48"},"returnParameters":{"id":14835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14834,"mutability":"mutable","name":"reward","nameLocation":"12264:6:48","nodeType":"VariableDeclaration","scope":14859,"src":"12256:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14833,"name":"uint256","nodeType":"ElementaryTypeName","src":"12256:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12255:16:48"},"scope":15015,"src":"12206:265:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14912,"nodeType":"Block","src":"12975:473:48","statements":[{"id":14911,"nodeType":"UncheckedBlock","src":"12986:455:48","statements":[{"assignments":[14871],"declarations":[{"constant":false,"id":14871,"mutability":"mutable","name":"rewardPerWeight","nameLocation":"13019:15:48","nodeType":"VariableDeclaration","scope":14911,"src":"13011:23:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14870,"name":"uint256","nodeType":"ElementaryTypeName","src":"13011:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14879,"initialValue":{"condition":{"id":14872,"name":"increment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"13037:9:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":14877,"name":"rewardPerWeightStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14274,"src":"13145:21:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":14878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13037:129:48","trueExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":14876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14873,"name":"rewardPerWeightStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14274,"src":"13066:21:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14874,"name":"_getRewardPerWeightIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14973,"src":"13090:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":14875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13090:35:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13066:59:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"13011:155:48"},{"assignments":[14881],"declarations":[{"constant":false,"id":14881,"mutability":"mutable","name":"rewardPerWeightPayable","nameLocation":"13189:22:48","nodeType":"VariableDeclaration","scope":14911,"src":"13181:30:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14880,"name":"uint256","nodeType":"ElementaryTypeName","src":"13181:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14886,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14882,"name":"rewardPerWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14871,"src":"13214:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":14883,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14863,"src":"13232:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerWeightPaid","nodeType":"MemberAccess","referencedDeclaration":14264,"src":"13232:24:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13214:42:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13181:75:48"},{"expression":{"id":14899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14887,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14868,"src":"13271:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14888,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14863,"src":"13298:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stashedRewards","nodeType":"MemberAccess","referencedDeclaration":14262,"src":"13298:19:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14890,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14863,"src":"13322:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":14260,"src":"13322:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14892,"name":"rewardPerWeightPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14881,"src":"13336:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13322:36:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14894,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13321:38:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":14895,"name":"WEIGHT_PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14315,"src":"13362:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13321:57:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14897,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13320:59:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13298:81:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13271:108:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14900,"nodeType":"ExpressionStatement","src":"13271:108:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14902,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14868,"src":"13401:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":14905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13417:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":14904,"name":"uint96","nodeType":"ElementaryTypeName","src":"13417:6:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":14903,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13412:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13412:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":14907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"13412:16:48","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"13401:27:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14901,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"13394:6:48","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":14909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13394:35:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14910,"nodeType":"ExpressionStatement","src":"13394:35:48"}]}]},"documentation":{"id":14860,"nodeType":"StructuredDocumentation","src":"12479:344:48","text":" @notice Internal view function to get the pending rewards of a pool.\n @param pool The pool to get its pending rewards.\n @param increment A flag to choose whether use incremented `rewardPerWeightStored` or not.\n @return rewards The amount of rewards earned by the pool since the last update of the pool."},"id":14913,"implemented":true,"kind":"function","modifiers":[],"name":"_poolPendingRewards","nameLocation":"12838:19:48","nodeType":"FunctionDefinition","parameters":{"id":14866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14863,"mutability":"mutable","name":"pool","nameLocation":"12881:4:48","nodeType":"VariableDeclaration","scope":14913,"src":"12858:27:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"},"typeName":{"id":14862,"nodeType":"UserDefinedTypeName","pathNode":{"id":14861,"name":"PoolRewardInfo","nodeType":"IdentifierPath","referencedDeclaration":14265,"src":"12858:14:48"},"referencedDeclaration":14265,"src":"12858:14:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"}},"visibility":"internal"},{"constant":false,"id":14865,"mutability":"mutable","name":"increment","nameLocation":"12892:9:48","nodeType":"VariableDeclaration","scope":14913,"src":"12887:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14864,"name":"bool","nodeType":"ElementaryTypeName","src":"12887:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12857:45:48"},"returnParameters":{"id":14869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14868,"mutability":"mutable","name":"rewards","nameLocation":"12961:7:48","nodeType":"VariableDeclaration","scope":14913,"src":"12953:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14867,"name":"uint256","nodeType":"ElementaryTypeName","src":"12953:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12952:17:48"},"scope":15015,"src":"12829:619:48","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14937,"nodeType":"Block","src":"13807:153:48","statements":[{"assignments":[14923],"declarations":[{"constant":false,"id":14923,"mutability":"mutable","name":"rewards","nameLocation":"13826:7:48","nodeType":"VariableDeclaration","scope":14937,"src":"13818:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14922,"name":"uint256","nodeType":"ElementaryTypeName","src":"13818:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14928,"initialValue":{"arguments":[{"id":14925,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14917,"src":"13856:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},{"hexValue":"66616c7365","id":14926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13862:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14924,"name":"_poolPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14913,"src":"13836:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PoolRewardInfo_$14265_storage_ptr_$_t_bool_$returns$_t_uint256_$","typeString":"function (struct PangoChefFunding.PoolRewardInfo storage pointer,bool) view returns (uint256)"}},"id":14927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13836:32:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13818:50:48"},{"expression":{"id":14933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14929,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14917,"src":"13879:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo storage pointer"}},"id":14931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPerWeightPaid","nodeType":"MemberAccess","referencedDeclaration":14264,"src":"13879:24:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14932,"name":"rewardPerWeightStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14274,"src":"13906:21:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"13879:48:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":14934,"nodeType":"ExpressionStatement","src":"13879:48:48"},{"expression":{"id":14935,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14923,"src":"13945:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14921,"id":14936,"nodeType":"Return","src":"13938:14:48"}]},"documentation":{"id":14914,"nodeType":"StructuredDocumentation","src":"13456:254:48","text":" @notice Private function to snapshot the `rewardPerWeightStored` for the pool.\n @param pool The pool to update its `rewardPerWeightPaid`.\n @return The amount of reward tokens that is marked for distributing to the pool."},"id":14938,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardPerWeightPaid","nameLocation":"13725:26:48","nodeType":"FunctionDefinition","parameters":{"id":14918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14917,"mutability":"mutable","name":"pool","nameLocation":"13775:4:48","nodeType":"VariableDeclaration","scope":14938,"src":"13752:27:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"},"typeName":{"id":14916,"nodeType":"UserDefinedTypeName","pathNode":{"id":14915,"name":"PoolRewardInfo","nodeType":"IdentifierPath","referencedDeclaration":14265,"src":"13752:14:48"},"referencedDeclaration":14265,"src":"13752:14:48","typeDescriptions":{"typeIdentifier":"t_struct$_PoolRewardInfo_$14265_storage_ptr","typeString":"struct PangoChefFunding.PoolRewardInfo"}},"visibility":"internal"}],"src":"13751:29:48"},"returnParameters":{"id":14921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14938,"src":"13798:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14919,"name":"uint256","nodeType":"ElementaryTypeName","src":"13798:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13797:9:48"},"scope":15015,"src":"13716:244:48","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14955,"nodeType":"Block","src":"14095:126:48","statements":[{"expression":{"id":14945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14942,"name":"rewardPerWeightStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14274,"src":"14106:21:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":14943,"name":"_getRewardPerWeightIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14973,"src":"14131:33:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint128_$","typeString":"function () view returns (uint128)"}},"id":14944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14131:35:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"14106:60:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":14946,"nodeType":"ExpressionStatement","src":"14106:60:48"},{"expression":{"id":14953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14947,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14277,"src":"14177:10:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":14950,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14197:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14197:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14190:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":14948,"name":"uint48","nodeType":"ElementaryTypeName","src":"14190:6:48","typeDescriptions":{}}},"id":14952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14190:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14177:36:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":14954,"nodeType":"ExpressionStatement","src":"14177:36:48"}]},"documentation":{"id":14939,"nodeType":"StructuredDocumentation","src":"13968:73:48","text":"@notice Private function to increment the `rewardPerWeightStored`. "},"id":14956,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardPerWeightStored","nameLocation":"14056:28:48","nodeType":"FunctionDefinition","parameters":{"id":14940,"nodeType":"ParameterList","parameters":[],"src":"14084:2:48"},"returnParameters":{"id":14941,"nodeType":"ParameterList","parameters":[],"src":"14095:0:48"},"scope":15015,"src":"14047:174:48","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14972,"nodeType":"Block","src":"14521:345:48","statements":[{"assignments":[14963],"declarations":[{"constant":false,"id":14963,"mutability":"mutable","name":"globalPendingRewards","nameLocation":"14540:20:48","nodeType":"VariableDeclaration","scope":14972,"src":"14532:28:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14962,"name":"uint256","nodeType":"ElementaryTypeName","src":"14532:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14964,"name":"_globalPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15014,"src":"14563:21:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14563:23:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14532:54:48"},{"assignments":[14968],"declarations":[{"constant":false,"id":14968,"mutability":"mutable","name":"tmpTotalWeight","nameLocation":"14605:14:48","nodeType":"VariableDeclaration","scope":14972,"src":"14597:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14967,"name":"uint256","nodeType":"ElementaryTypeName","src":"14597:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14970,"initialValue":{"id":14969,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14289,"src":"14622:11:48","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"14597:36:48"},{"AST":{"nodeType":"YulBlock","src":"14751:108:48","statements":[{"nodeType":"YulAssignment","src":"14766:82:48","value":{"arguments":[{"arguments":[{"name":"globalPendingRewards","nodeType":"YulIdentifier","src":"14792:20:48"},{"name":"WEIGHT_PRECISION","nodeType":"YulIdentifier","src":"14814:16:48"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"14788:3:48"},"nodeType":"YulFunctionCall","src":"14788:43:48"},{"name":"tmpTotalWeight","nodeType":"YulIdentifier","src":"14833:14:48"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14784:3:48"},"nodeType":"YulFunctionCall","src":"14784:64:48"},"variableNames":[{"name":"incrementation","nodeType":"YulIdentifier","src":"14766:14:48"}]}]},"evmVersion":"london","externalReferences":[{"declaration":14315,"isOffset":false,"isSlot":false,"src":"14814:16:48","valueSize":1},{"declaration":14963,"isOffset":false,"isSlot":false,"src":"14792:20:48","valueSize":1},{"declaration":14960,"isOffset":false,"isSlot":false,"src":"14766:14:48","valueSize":1},{"declaration":14968,"isOffset":false,"isSlot":false,"src":"14833:14:48","valueSize":1}],"id":14971,"nodeType":"InlineAssembly","src":"14742:117:48"}]},"documentation":{"id":14957,"nodeType":"StructuredDocumentation","src":"14229:195:48","text":" @notice Internal view function to get how much to increment `rewardPerWeightStored`.\n @return incrementation The incrementation amount for the `rewardPerWeightStored`."},"id":14973,"implemented":true,"kind":"function","modifiers":[],"name":"_getRewardPerWeightIncrementation","nameLocation":"14439:33:48","nodeType":"FunctionDefinition","parameters":{"id":14958,"nodeType":"ParameterList","parameters":[],"src":"14472:2:48"},"returnParameters":{"id":14961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14960,"mutability":"mutable","name":"incrementation","nameLocation":"14505:14:48","nodeType":"VariableDeclaration","scope":14973,"src":"14497:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14959,"name":"uint128","nodeType":"ElementaryTypeName","src":"14497:7:48","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"14496:24:48"},"scope":15015,"src":"14430:436:48","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":15013,"nodeType":"Block","src":"15176:1131:48","statements":[{"assignments":[14980],"declarations":[{"constant":false,"id":14980,"mutability":"mutable","name":"tmpPeriodFinish","nameLocation":"15262:15:48","nodeType":"VariableDeclaration","scope":15013,"src":"15254:23:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14979,"name":"uint256","nodeType":"ElementaryTypeName","src":"15254:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14982,"initialValue":{"id":14981,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14283,"src":"15280:12:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"15254:38:48"},{"assignments":[14984],"declarations":[{"constant":false,"id":14984,"mutability":"mutable","name":"lastTimeRewardApplicable","nameLocation":"15537:24:48","nodeType":"VariableDeclaration","scope":15013,"src":"15529:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14983,"name":"uint256","nodeType":"ElementaryTypeName","src":"15529:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14993,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14985,"name":"tmpPeriodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14980,"src":"15564:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14986,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15582:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15582:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15564:33:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14990,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"15644:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"15644:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"15564:95:48","trueExpression":{"id":14989,"name":"tmpPeriodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14980,"src":"15613:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15529:130:48"},{"assignments":[14995],"declarations":[{"constant":false,"id":14995,"mutability":"mutable","name":"tmpLastUpdate","nameLocation":"15854:13:48","nodeType":"VariableDeclaration","scope":15013,"src":"15846:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14994,"name":"uint256","nodeType":"ElementaryTypeName","src":"15846:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14997,"initialValue":{"id":14996,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14277,"src":"15870:10:48","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"15846:34:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14998,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14984,"src":"16026:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14999,"name":"tmpLastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14995,"src":"16053:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16026:40:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15010,"nodeType":"IfStatement","src":"16022:180:48","trueBody":{"id":15009,"nodeType":"Block","src":"16068:134:48","statements":[{"id":15008,"nodeType":"UncheckedBlock","src":"16083:108:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15001,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14984,"src":"16120:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15002,"name":"tmpLastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14995,"src":"16147:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16120:40:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15004,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16119:42:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15005,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14280,"src":"16164:11:48","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"16119:56:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14978,"id":15007,"nodeType":"Return","src":"16112:63:48"}]}]}},{"expression":{"hexValue":"30","id":15011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16298:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14978,"id":15012,"nodeType":"Return","src":"16291:8:48"}]},"documentation":{"id":14974,"nodeType":"StructuredDocumentation","src":"14874:232:48","text":" @notice Internal view function to get the amount of accumulated reward tokens since last\n         update time.\n @return The amount of reward tokens that has been accumulated since last update time."},"id":15014,"implemented":true,"kind":"function","modifiers":[],"name":"_globalPendingRewards","nameLocation":"15121:21:48","nodeType":"FunctionDefinition","parameters":{"id":14975,"nodeType":"ParameterList","parameters":[],"src":"15142:2:48"},"returnParameters":{"id":14978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15014,"src":"15167:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14976,"name":"uint256","nodeType":"ElementaryTypeName","src":"15167:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15166:9:48"},"scope":15015,"src":"15112:1195:48","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":15016,"src":"829:15481:48","usedErrors":[12001,12003,12005,12007,12009,12011,12013,12015,12017,12019,12021,12023,12025,12027,12029,12031,12033]}],"src":"35:16277:48"},"id":48},"contracts/staking-positions/PangolinStakingPositions.sol":{"ast":{"absolutePath":"contracts/staking-positions/PangolinStakingPositions.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Address":[4617],"Context":[4686],"ERC165":[5976],"ERC721":[3741],"ERC721Enumerable":[4229],"EnumerableSet":[9007],"GenericErrors":[12034],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"IERC20":[1502],"IERC721":[3857],"IERC721Enumerable":[4260],"IERC721Metadata":[4287],"IERC721Receiver":[3875],"ITokenMetadata":[15030],"Math":[6853],"PangolinStakingPositions":[16260],"PangolinStakingPositionsFunding":[16688],"Strings":[4935]},"id":16261,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":15017,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"35:23:49"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","id":15018,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16261,"sourceUnit":4230,"src":"62:78:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/PangolinStakingPositionsFunding.sol","file":"./PangolinStakingPositionsFunding.sol","id":15019,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16261,"sourceUnit":16689,"src":"142:47:49","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ITokenMetadata","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":15030,"linearizedBaseContracts":[15030],"name":"ITokenMetadata","nameLocation":"203:14:49","nodeType":"ContractDefinition","nodes":[{"functionSelector":"e9dc6375","id":15029,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"234:8:49","nodeType":"FunctionDefinition","parameters":{"id":15025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15022,"mutability":"mutable","name":"pangolinStakingPositions","nameLocation":"268:24:49","nodeType":"VariableDeclaration","scope":15029,"src":"243:49:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinStakingPositions_$16260","typeString":"contract PangolinStakingPositions"},"typeName":{"id":15021,"nodeType":"UserDefinedTypeName","pathNode":{"id":15020,"name":"PangolinStakingPositions","nodeType":"IdentifierPath","referencedDeclaration":16260,"src":"243:24:49"},"referencedDeclaration":16260,"src":"243:24:49","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinStakingPositions_$16260","typeString":"contract PangolinStakingPositions"}},"visibility":"internal"},{"constant":false,"id":15024,"mutability":"mutable","name":"tokenId","nameLocation":"302:7:49","nodeType":"VariableDeclaration","scope":15029,"src":"294:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15023,"name":"uint256","nodeType":"ElementaryTypeName","src":"294:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"242:68:49"},"returnParameters":{"id":15028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15029,"src":"361:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15026,"name":"string","nodeType":"ElementaryTypeName","src":"361:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"360:15:49"},"scope":15030,"src":"225:151:49","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":16261,"src":"193:186:49","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":15032,"name":"ERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":4229,"src":"2538:16:49"},"id":15033,"nodeType":"InheritanceSpecifier","src":"2538:16:49"},{"baseName":{"id":15034,"name":"PangolinStakingPositionsFunding","nodeType":"IdentifierPath","referencedDeclaration":16688,"src":"2556:31:49"},"id":15035,"nodeType":"InheritanceSpecifier","src":"2556:31:49"}],"canonicalName":"PangolinStakingPositions","contractDependencies":[],"contractKind":"contract","documentation":{"id":15031,"nodeType":"StructuredDocumentation","src":"383:2116:49","text":" @title Pangolin Staking Positions\n @author shung for Pangolin\n @notice Pangolin Staking Positions is a unique staking solution. It utilizes the Sunshine and\n         Rainbows (SAR) algorithm, which distributes rewards as a function of balance and staking\n         duration. See README and the Proofs paper to see how SAR works. In this implementation,\n         the staking token is the same as the reward token, and staking information is recorded\n         as positions where each position is an NFT.\n @dev SAR Algorithm:\n      SAR allocates a user (or position) the following proportion of any given rewards:\n      `(balance_position / balance_total) * (stakingDuration_position /\n      stakingDuration_average)`.\n      Staking duration is how long a token has been staked. The staking duration of a token\n      starts when it is staked, restarts when its rewards are harvested, and ends when it is\n      withdrawn.\n      We can refer to `balance * stakingDuration` as `value`. Based on this definition, the\n      formula above can be simplified to `value_position / value_total`.\n      Although this looks similar to just `balance_position / balance_total`, unlike balance, the\n      value of every position is constantly changing as a function of time. Therefore, we cannot\n      simply use the standard staking algorithm (i.e.: Synthetix StakingRewards) for calculating\n      rewards of users in constant time. A new algorithm had to be invented for this reason.\n      To understand the algorithm, one must read the Proofs. Then\n      `_getRewardSummationsIncrementations()` and `_earned()` functions will make sense.\n @dev Assumptions (not checked to be true):\n      - `rewardsToken` reverts or returns false on invalid transfers,\n      - `block.timestamp * totalRewardAdded` fits 128 bits,\n      - `block.timestamp` is never greater than `2**40 - 1 - 2**32`.\n @dev Limitations (checked to be true):\n      - `totalStaked` fits 96 bits.\n      - `totalRewardAdded` fits 96 bits."},"fullyImplemented":true,"id":16260,"linearizedBaseContracts":[16260,16688,12034,440,315,4229,4260,3741,4287,3857,5976,5988,538,513,4686],"name":"PangolinStakingPositions","nameLocation":"2510:24:49","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PangolinStakingPositions.ValueVariables","id":15040,"members":[{"constant":false,"id":15037,"mutability":"mutable","name":"balance","nameLocation":"2708:7:49","nodeType":"VariableDeclaration","scope":15040,"src":"2701:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":15036,"name":"uint96","nodeType":"ElementaryTypeName","src":"2701:6:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":15039,"mutability":"mutable","name":"sumOfEntryTimes","nameLocation":"2834:15:49","nodeType":"VariableDeclaration","scope":15040,"src":"2826:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":15038,"name":"uint160","nodeType":"ElementaryTypeName","src":"2826:7:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"name":"ValueVariables","nameLocation":"2602:14:49","nodeType":"StructDefinition","scope":16260,"src":"2595:262:49","visibility":"public"},{"canonicalName":"PangolinStakingPositions.RewardSummations","id":15045,"members":[{"constant":false,"id":15042,"mutability":"mutable","name":"idealPosition","nameLocation":"3451:13:49","nodeType":"VariableDeclaration","scope":15045,"src":"3443:21:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15041,"name":"uint256","nodeType":"ElementaryTypeName","src":"3443:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15044,"mutability":"mutable","name":"rewardPerValue","nameLocation":"3869:14:49","nodeType":"VariableDeclaration","scope":15045,"src":"3861:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15043,"name":"uint256","nodeType":"ElementaryTypeName","src":"3861:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardSummations","nameLocation":"2872:16:49","nodeType":"StructDefinition","scope":16260,"src":"2865:1026:49","visibility":"public"},{"canonicalName":"PangolinStakingPositions.Position","id":15058,"members":[{"constant":false,"id":15048,"mutability":"mutable","name":"valueVariables","nameLocation":"4024:14:49","nodeType":"VariableDeclaration","scope":15058,"src":"4009:29:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"},"typeName":{"id":15047,"nodeType":"UserDefinedTypeName","pathNode":{"id":15046,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":15040,"src":"4009:14:49"},"referencedDeclaration":15040,"src":"4009:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"}},"visibility":"internal"},{"constant":false,"id":15051,"mutability":"mutable","name":"rewardSummationsPaid","nameLocation":"4137:20:49","nodeType":"VariableDeclaration","scope":15058,"src":"4120:37:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"},"typeName":{"id":15050,"nodeType":"UserDefinedTypeName","pathNode":{"id":15049,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":15045,"src":"4120:16:49"},"referencedDeclaration":15045,"src":"4120:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"}},"visibility":"internal"},{"constant":false,"id":15053,"mutability":"mutable","name":"previousValues","nameLocation":"4838:14:49","nodeType":"VariableDeclaration","scope":15058,"src":"4830:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":15052,"name":"uint160","nodeType":"ElementaryTypeName","src":"4830:7:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":15055,"mutability":"mutable","name":"lastUpdate","nameLocation":"4922:10:49","nodeType":"VariableDeclaration","scope":15058,"src":"4915:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":15054,"name":"uint48","nodeType":"ElementaryTypeName","src":"4915:6:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":15057,"mutability":"mutable","name":"lastDevaluation","nameLocation":"5146:15:49","nodeType":"VariableDeclaration","scope":15058,"src":"5139:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":15056,"name":"uint48","nodeType":"ElementaryTypeName","src":"5139:6:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"Position","nameLocation":"3906:8:49","nodeType":"StructDefinition","scope":16260,"src":"3899:1270:49","visibility":"public"},{"constant":false,"documentation":{"id":15059,"nodeType":"StructuredDocumentation","src":"5177:71:49","text":"@notice The mapping of position identifiers to their properties. "},"functionSelector":"99fbab88","id":15064,"mutability":"mutable","name":"positions","nameLocation":"5290:9:49","nodeType":"VariableDeclaration","scope":16260,"src":"5254:45:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position)"},"typeName":{"id":15063,"keyType":{"id":15060,"name":"uint256","nodeType":"ElementaryTypeName","src":"5262:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"5254:28:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position)"},"valueType":{"id":15062,"nodeType":"UserDefinedTypeName","pathNode":{"id":15061,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"5273:8:49"},"referencedDeclaration":15058,"src":"5273:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}}},"visibility":"public"},{"constant":false,"documentation":{"id":15065,"nodeType":"StructuredDocumentation","src":"5308:86:49","text":"@notice The contract that constructs and returns tokenURIs for position tokens. "},"functionSelector":"f5b2cad7","id":15068,"mutability":"mutable","name":"tokenMetadata","nameLocation":"5422:13:49","nodeType":"VariableDeclaration","scope":16260,"src":"5400:35:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"},"typeName":{"id":15067,"nodeType":"UserDefinedTypeName","pathNode":{"id":15066,"name":"ITokenMetadata","nodeType":"IdentifierPath","referencedDeclaration":15030,"src":"5400:14:49"},"referencedDeclaration":15030,"src":"5400:14:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"visibility":"public"},{"constant":false,"documentation":{"id":15069,"nodeType":"StructuredDocumentation","src":"5444:70:49","text":"@notice The struct holding the totalStaked and sumOfEntryTimes. "},"functionSelector":"df3e1aa4","id":15072,"mutability":"mutable","name":"totalValueVariables","nameLocation":"5542:19:49","nodeType":"VariableDeclaration","scope":16260,"src":"5520:41:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables"},"typeName":{"id":15071,"nodeType":"UserDefinedTypeName","pathNode":{"id":15070,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":15040,"src":"5520:14:49"},"referencedDeclaration":15040,"src":"5520:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"}},"visibility":"public"},{"constant":false,"documentation":{"id":15073,"nodeType":"StructuredDocumentation","src":"5570:65:49","text":"@notice The variables that govern the reward distribution. "},"functionSelector":"f5c45500","id":15076,"mutability":"mutable","name":"rewardSummationsStored","nameLocation":"5665:22:49","nodeType":"VariableDeclaration","scope":16260,"src":"5641:46:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations"},"typeName":{"id":15075,"nodeType":"UserDefinedTypeName","pathNode":{"id":15074,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":15045,"src":"5641:16:49"},"referencedDeclaration":15045,"src":"5641:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"}},"visibility":"public"},{"constant":false,"documentation":{"id":15077,"nodeType":"StructuredDocumentation","src":"5696:873:49","text":" @notice The duration during NFT approvals are ignored after an update that devalues it.\n @dev This is a hacky solution to prevent frontrunning NFT sales. This is a general issue\n      with all NFTs with mutable state, because NFT marketplaces do not have a standard\n      method for “slippage control”. This allows a malicious actor utilizing MEV to\n      devalue the NFT token in the same block as someone buying the NFT. For example, if a\n      position has 5 PNG tokens, and someone makes a transaction to buy its NFT, the owner\n      of the position can withdraw all PNG in the position, resulting in buyer to buy a\n      position with 0 balance instead of 5. By using `approvalPauseDuration` we simply\n      disable transfers made by non-owners (i.e.: marketplace contract) for a period."},"functionSelector":"340b1336","id":15080,"mutability":"mutable","name":"approvalPauseDuration","nameLocation":"6590:21:49","nodeType":"VariableDeclaration","scope":16260,"src":"6575:46:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15078,"name":"uint256","nodeType":"ElementaryTypeName","src":"6575:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":15079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6614:7:49","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_7200_by_1","typeString":"int_const 7200"},"value":"2"},"visibility":"public"},{"constant":false,"documentation":{"id":15081,"nodeType":"StructuredDocumentation","src":"6630:155:49","text":" @notice The total number of positions ever opened.\n @dev This is simply a counter for determining the next position identifier."},"id":15083,"mutability":"mutable","name":"_positionsLength","nameLocation":"6807:16:49","nodeType":"VariableDeclaration","scope":16260,"src":"6791:32:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15082,"name":"uint256","nodeType":"ElementaryTypeName","src":"6791:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":true,"documentation":{"id":15084,"nodeType":"StructuredDocumentation","src":"6832:65:49","text":"@notice The fixed denominator used for storing summations. "},"id":15089,"mutability":"constant","name":"PRECISION","nameLocation":"6928:9:49","nodeType":"VariableDeclaration","scope":16260,"src":"6903:43:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15085,"name":"uint256","nodeType":"ElementaryTypeName","src":"6903:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":15088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6940:1:49","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313238","id":15087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6943:3:49","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"6940:6:49","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"private"},{"constant":true,"documentation":{"id":15090,"nodeType":"StructuredDocumentation","src":"6955:78:49","text":"@notice The maximum approvalPauseDuration that can be set by the admin. "},"id":15093,"mutability":"constant","name":"MAX_APPROVAL_PAUSE_DURATION","nameLocation":"7064:27:49","nodeType":"VariableDeclaration","scope":16260,"src":"7039:61:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15091,"name":"uint256","nodeType":"ElementaryTypeName","src":"7039:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":15092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7094:6:49","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"},"value":"2"},"visibility":"private"},{"anonymous":false,"documentation":{"id":15094,"nodeType":"StructuredDocumentation","src":"7109:80:49","text":"@notice The event emitted when withdrawing or harvesting from a position. "},"eventSelector":"abd2ab552bc04cdbfa4a54107fa44ac8c9cb06f6d21da11933ac05a653be19e9","id":15102,"name":"Withdrawn","nameLocation":"7201:9:49","nodeType":"EventDefinition","parameters":{"id":15101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15096,"indexed":true,"mutability":"mutable","name":"positionId","nameLocation":"7227:10:49","nodeType":"VariableDeclaration","scope":15102,"src":"7211:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15095,"name":"uint256","nodeType":"ElementaryTypeName","src":"7211:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15098,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"7255:6:49","nodeType":"VariableDeclaration","scope":15102,"src":"7239:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15097,"name":"uint256","nodeType":"ElementaryTypeName","src":"7239:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15100,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"7279:6:49","nodeType":"VariableDeclaration","scope":15102,"src":"7263:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15099,"name":"uint256","nodeType":"ElementaryTypeName","src":"7263:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7210:76:49"},"src":"7195:92:49"},{"anonymous":false,"documentation":{"id":15103,"nodeType":"StructuredDocumentation","src":"7295:85:49","text":"@notice The event emitted when staking to, minting, or compounding a position. "},"eventSelector":"c8acfabcfb3af3df23b7b8a1aa1371d042bee71e137eeedc881ffa8f3c446261","id":15111,"name":"Staked","nameLocation":"7392:6:49","nodeType":"EventDefinition","parameters":{"id":15110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15105,"indexed":true,"mutability":"mutable","name":"positionId","nameLocation":"7415:10:49","nodeType":"VariableDeclaration","scope":15111,"src":"7399:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15104,"name":"uint256","nodeType":"ElementaryTypeName","src":"7399:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15107,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"7443:6:49","nodeType":"VariableDeclaration","scope":15111,"src":"7427:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15106,"name":"uint256","nodeType":"ElementaryTypeName","src":"7427:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15109,"indexed":true,"mutability":"mutable","name":"reward","nameLocation":"7467:6:49","nodeType":"VariableDeclaration","scope":15111,"src":"7451:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15108,"name":"uint256","nodeType":"ElementaryTypeName","src":"7451:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7398:76:49"},"src":"7386:89:49"},{"anonymous":false,"documentation":{"id":15112,"nodeType":"StructuredDocumentation","src":"7483:76:49","text":"@notice The event emitted when admin changes `approvalPauseDuration`. "},"eventSelector":"a959cb2cc91580147f93f66fb85db8f308cfdaef3989ab5265408ff80ef6fa66","id":15116,"name":"PauseDurationSet","nameLocation":"7571:16:49","nodeType":"EventDefinition","parameters":{"id":15115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15114,"indexed":false,"mutability":"mutable","name":"newApprovalPauseDuration","nameLocation":"7596:24:49","nodeType":"VariableDeclaration","scope":15116,"src":"7588:32:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15113,"name":"uint256","nodeType":"ElementaryTypeName","src":"7588:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7587:34:49"},"src":"7565:57:49"},{"anonymous":false,"documentation":{"id":15117,"nodeType":"StructuredDocumentation","src":"7630:68:49","text":"@notice The event emitted when admin changes `tokenMetadata`. "},"eventSelector":"8a1803707dfd67114623e59e8141ee8d109332da42c6c3e8212724807e140a6b","id":15122,"name":"TokenMetadataSet","nameLocation":"7710:16:49","nodeType":"EventDefinition","parameters":{"id":15121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15120,"indexed":false,"mutability":"mutable","name":"newTokenMetadata","nameLocation":"7742:16:49","nodeType":"VariableDeclaration","scope":15122,"src":"7727:31:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"},"typeName":{"id":15119,"nodeType":"UserDefinedTypeName","pathNode":{"id":15118,"name":"ITokenMetadata","nodeType":"IdentifierPath","referencedDeclaration":15030,"src":"7727:14:49"},"referencedDeclaration":15030,"src":"7727:14:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"visibility":"internal"}],"src":"7726:33:49"},"src":"7704:56:49"},{"body":{"id":15137,"nodeType":"Block","src":"7807:97:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15127,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15124,"src":"7830:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15126,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"7822:7:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":15128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7822:19:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15129,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7845:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"7845:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7822:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15135,"nodeType":"IfStatement","src":"7818:66:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15132,"name":"UnprivilegedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12029,"src":"7864:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7864:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15134,"nodeType":"RevertStatement","src":"7857:27:49"}},{"id":15136,"nodeType":"PlaceholderStatement","src":"7895:1:49"}]},"id":15138,"name":"onlyOwner","nameLocation":"7777:9:49","nodeType":"ModifierDefinition","parameters":{"id":15125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15124,"mutability":"mutable","name":"positionId","nameLocation":"7795:10:49","nodeType":"VariableDeclaration","scope":15138,"src":"7787:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15123,"name":"uint256","nodeType":"ElementaryTypeName","src":"7787:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7786:20:49"},"src":"7768:136:49","virtual":false,"visibility":"internal"},{"body":{"id":15161,"nodeType":"Block","src":"8498:51:49","statements":[{"expression":{"id":15159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15157,"name":"tokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15068,"src":"8509:13:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15158,"name":"newTokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"8525:16:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"src":"8509:32:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"id":15160,"nodeType":"ExpressionStatement","src":"8509:32:49"}]},"documentation":{"id":15139,"nodeType":"StructuredDocumentation","src":"7912:328:49","text":" @notice Constructor to create and initialize PangolinStakingPositions contract.\n @param newRewardsToken The token used for both for staking and reward.\n @param newAdmin The initial owner of the contract.\n @param newTokenMetadata The contract that constructs tokenURIs for position NFTs."},"id":15162,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"50616e676f6c696e205374616b696e6720506f736974696f6e73","id":15149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8384:28:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_8863da38bc60f5bae7c84e808e7cb02877a527809bd6e81bbc23f9793a1e184d","typeString":"literal_string \"Pangolin Staking Positions\""},"value":"Pangolin Staking Positions"},{"hexValue":"504e472d504f53","id":15150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8414:9:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e42492d8e6862d62b8980eba2f6752b6ffec63942af01eb9d3c9c19889cc734","typeString":"literal_string \"PNG-POS\""},"value":"PNG-POS"}],"id":15151,"kind":"baseConstructorSpecifier","modifierName":{"id":15148,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":3741,"src":"8377:6:49"},"nodeType":"ModifierInvocation","src":"8377:47:49"},{"arguments":[{"id":15153,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15141,"src":"8466:15:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15154,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15143,"src":"8483:8:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":15155,"kind":"baseConstructorSpecifier","modifierName":{"id":15152,"name":"PangolinStakingPositionsFunding","nodeType":"IdentifierPath","referencedDeclaration":16688,"src":"8434:31:49"},"nodeType":"ModifierInvocation","src":"8434:58:49"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15141,"mutability":"mutable","name":"newRewardsToken","nameLocation":"8276:15:49","nodeType":"VariableDeclaration","scope":15162,"src":"8268:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15140,"name":"address","nodeType":"ElementaryTypeName","src":"8268:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15143,"mutability":"mutable","name":"newAdmin","nameLocation":"8310:8:49","nodeType":"VariableDeclaration","scope":15162,"src":"8302:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15142,"name":"address","nodeType":"ElementaryTypeName","src":"8302:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15146,"mutability":"mutable","name":"newTokenMetadata","nameLocation":"8344:16:49","nodeType":"VariableDeclaration","scope":15162,"src":"8329:31:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"},"typeName":{"id":15145,"nodeType":"UserDefinedTypeName","pathNode":{"id":15144,"name":"ITokenMetadata","nodeType":"IdentifierPath","referencedDeclaration":15030,"src":"8329:14:49"},"referencedDeclaration":15030,"src":"8329:14:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"visibility":"internal"}],"src":"8257:110:49"},"returnParameters":{"id":15156,"nodeType":"ParameterList","parameters":[],"src":"8498:0:49"},"scope":16260,"src":"8246:303:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":15189,"nodeType":"Block","src":"8875:523:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15170,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"9081:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9081:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15172,"nodeType":"ExpressionStatement","src":"9081:25:49"},{"expression":{"id":15176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15173,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"9183:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9196:18:49","subExpression":{"id":15174,"name":"_positionsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15083,"src":"9198:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9183:31:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15177,"nodeType":"ExpressionStatement","src":"9183:31:49"},{"expression":{"arguments":[{"expression":{"id":15179,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9231:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9231:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15181,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"9243:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15178,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3415,"src":"9225:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":15182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9225:29:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15183,"nodeType":"ExpressionStatement","src":"9225:29:49"},{"expression":{"arguments":[{"id":15185,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"9371:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15186,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15165,"src":"9383:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15184,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15639,"src":"9364:6:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9364:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15188,"nodeType":"ExpressionStatement","src":"9364:26:49"}]},"documentation":{"id":15163,"nodeType":"StructuredDocumentation","src":"8557:244:49","text":" @notice External function to open a new position to the caller.\n @param amount The amount of tokens to transfer from the caller to the position.\n @param positionId The identifier of the newly created position."},"functionSelector":"a0712d68","id":15190,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"8816:4:49","nodeType":"FunctionDefinition","parameters":{"id":15166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15165,"mutability":"mutable","name":"amount","nameLocation":"8829:6:49","nodeType":"VariableDeclaration","scope":15190,"src":"8821:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15164,"name":"uint256","nodeType":"ElementaryTypeName","src":"8821:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8820:16:49"},"returnParameters":{"id":15169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15168,"mutability":"mutable","name":"positionId","nameLocation":"8863:10:49","nodeType":"VariableDeclaration","scope":15190,"src":"8855:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15167,"name":"uint256","nodeType":"ElementaryTypeName","src":"8855:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8854:20:49"},"scope":16260,"src":"8807:591:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15206,"nodeType":"Block","src":"9718:375:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15198,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"9924:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9924:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15200,"nodeType":"ExpressionStatement","src":"9924:25:49"},{"expression":{"arguments":[{"id":15202,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15193,"src":"10066:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15203,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15195,"src":"10078:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15201,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15639,"src":"10059:6:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10059:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15205,"nodeType":"ExpressionStatement","src":"10059:26:49"}]},"documentation":{"id":15191,"nodeType":"StructuredDocumentation","src":"9406:246:49","text":" @notice External function to deposit tokens to an existing position.\n @param amount The amount of tokens to deposit into the position.\n @param positionId The identifier of the position to deposit the funds into."},"functionSelector":"7b0472f0","id":15207,"implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"9667:5:49","nodeType":"FunctionDefinition","parameters":{"id":15196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15193,"mutability":"mutable","name":"positionId","nameLocation":"9681:10:49","nodeType":"VariableDeclaration","scope":15207,"src":"9673:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15192,"name":"uint256","nodeType":"ElementaryTypeName","src":"9673:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15195,"mutability":"mutable","name":"amount","nameLocation":"9701:6:49","nodeType":"VariableDeclaration","scope":15207,"src":"9693:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15194,"name":"uint256","nodeType":"ElementaryTypeName","src":"9693:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9672:36:49"},"returnParameters":{"id":15197,"nodeType":"ParameterList","parameters":[],"src":"9718:0:49"},"scope":16260,"src":"9658:435:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15221,"nodeType":"Block","src":"10325:305:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15213,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"10403:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10403:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15215,"nodeType":"ExpressionStatement","src":"10403:25:49"},{"expression":{"arguments":[{"id":15217,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15210,"src":"10608:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":15218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10620:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15216,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"10598:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10598:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15220,"nodeType":"ExpressionStatement","src":"10598:24:49"}]},"documentation":{"id":15208,"nodeType":"StructuredDocumentation","src":"10101:172:49","text":" @notice External function to claim the accrued rewards of a position.\n @param positionId The identifier of the position to claim the rewards of."},"functionSelector":"ddc63262","id":15222,"implemented":true,"kind":"function","modifiers":[],"name":"harvest","nameLocation":"10288:7:49","nodeType":"FunctionDefinition","parameters":{"id":15211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15210,"mutability":"mutable","name":"positionId","nameLocation":"10304:10:49","nodeType":"VariableDeclaration","scope":15222,"src":"10296:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15209,"name":"uint256","nodeType":"ElementaryTypeName","src":"10296:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10295:20:49"},"returnParameters":{"id":15212,"nodeType":"ParameterList","parameters":[],"src":"10325:0:49"},"scope":16260,"src":"10279:351:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15236,"nodeType":"Block","src":"10883:301:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15228,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"10961:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10961:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15230,"nodeType":"ExpressionStatement","src":"10961:25:49"},{"expression":{"arguments":[{"id":15232,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15225,"src":"11162:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":15233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11174:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15231,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15639,"src":"11155:6:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11155:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15235,"nodeType":"ExpressionStatement","src":"11155:21:49"}]},"documentation":{"id":15223,"nodeType":"StructuredDocumentation","src":"10638:192:49","text":" @notice External function to deposit the accrued rewards of a position back to itself.\n @param positionId The identifier of the position to compound the rewards of."},"functionSelector":"aa5f7e26","id":15237,"implemented":true,"kind":"function","modifiers":[],"name":"compound","nameLocation":"10845:8:49","nodeType":"FunctionDefinition","parameters":{"id":15226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15225,"mutability":"mutable","name":"positionId","nameLocation":"10862:10:49","nodeType":"VariableDeclaration","scope":15237,"src":"10854:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15224,"name":"uint256","nodeType":"ElementaryTypeName","src":"10854:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10853:20:49"},"returnParameters":{"id":15227,"nodeType":"ParameterList","parameters":[],"src":"10883:0:49"},"scope":16260,"src":"10836:348:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15253,"nodeType":"Block","src":"11598:254:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15245,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"11676:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11676:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15247,"nodeType":"ExpressionStatement","src":"11676:25:49"},{"expression":{"arguments":[{"id":15249,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15240,"src":"11825:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15250,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15242,"src":"11837:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15248,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"11815:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11815:29:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15252,"nodeType":"ExpressionStatement","src":"11815:29:49"}]},"documentation":{"id":15238,"nodeType":"StructuredDocumentation","src":"11192:337:49","text":" @notice External function to withdraw given amount of staked balance, plus all the accrued\n         rewards from the position.\n @param positionId The identifier of the position to withdraw the balance.\n @param amount The amount of staked tokens, excluding rewards, to withdraw from the position."},"functionSelector":"441a3e70","id":15254,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"11544:8:49","nodeType":"FunctionDefinition","parameters":{"id":15243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15240,"mutability":"mutable","name":"positionId","nameLocation":"11561:10:49","nodeType":"VariableDeclaration","scope":15254,"src":"11553:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15239,"name":"uint256","nodeType":"ElementaryTypeName","src":"11553:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15242,"mutability":"mutable","name":"amount","nameLocation":"11581:6:49","nodeType":"VariableDeclaration","scope":15254,"src":"11573:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15241,"name":"uint256","nodeType":"ElementaryTypeName","src":"11573:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11552:36:49"},"returnParameters":{"id":15244,"nodeType":"ParameterList","parameters":[],"src":"11598:0:49"},"scope":16260,"src":"11535:317:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15275,"nodeType":"Block","src":"12073:277:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":15266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"baseExpression":{"id":15260,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"12168:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":15262,"indexExpression":{"id":15261,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"12178:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12168:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"id":15263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":15048,"src":"12168:36:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"12168:44:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":15265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12216:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12168:49:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15270,"nodeType":"IfStatement","src":"12164:76:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15267,"name":"InvalidToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12019,"src":"12226:12:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12226:14:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15269,"nodeType":"RevertStatement","src":"12219:21:49"}},{"expression":{"arguments":[{"id":15272,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"12331:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15271,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[16172],"referencedDeclaration":16172,"src":"12325:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12325:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15274,"nodeType":"ExpressionStatement","src":"12325:17:49"}]},"documentation":{"id":15255,"nodeType":"StructuredDocumentation","src":"11860:164:49","text":" @notice External function to close a position by burning the associated NFT.\n @param positionId The identifier of the position to close."},"functionSelector":"42966c68","id":15276,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"12039:4:49","nodeType":"FunctionDefinition","parameters":{"id":15258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15257,"mutability":"mutable","name":"positionId","nameLocation":"12052:10:49","nodeType":"VariableDeclaration","scope":15276,"src":"12044:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15256,"name":"uint256","nodeType":"ElementaryTypeName","src":"12044:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12043:20:49"},"returnParameters":{"id":15259,"nodeType":"ParameterList","parameters":[],"src":"12073:0:49"},"scope":16260,"src":"12030:320:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15286,"nodeType":"Block","src":"12573:312:49","statements":[{"expression":{"arguments":[{"id":15283,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15279,"src":"12866:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15282,"name":"_emergencyExit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15833,"src":"12851:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12851:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15285,"nodeType":"ExpressionStatement","src":"12851:26:49"}]},"documentation":{"id":15277,"nodeType":"StructuredDocumentation","src":"12358:157:49","text":" @notice External function to exit from a position by forgoing rewards.\n @param positionId The identifier of the position to exit."},"functionSelector":"4231b0bd","id":15287,"implemented":true,"kind":"function","modifiers":[],"name":"emergencyExit","nameLocation":"12530:13:49","nodeType":"FunctionDefinition","parameters":{"id":15280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15279,"mutability":"mutable","name":"positionId","nameLocation":"12552:10:49","nodeType":"VariableDeclaration","scope":15287,"src":"12544:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15278,"name":"uint256","nodeType":"ElementaryTypeName","src":"12544:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12543:20:49"},"returnParameters":{"id":15281,"nodeType":"ParameterList","parameters":[],"src":"12573:0:49"},"scope":16260,"src":"12521:364:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15335,"nodeType":"Block","src":"13310:677:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15297,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"13568:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13568:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15299,"nodeType":"ExpressionStatement","src":"13568:25:49"},{"assignments":[15301],"declarations":[{"constant":false,"id":15301,"mutability":"mutable","name":"length","nameLocation":"13654:6:49","nodeType":"VariableDeclaration","scope":15335,"src":"13646:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15300,"name":"uint256","nodeType":"ElementaryTypeName","src":"13646:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15304,"initialValue":{"expression":{"id":15302,"name":"positionIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15291,"src":"13663:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13663:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13646:35:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15305,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15301,"src":"13696:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15306,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15294,"src":"13706:7:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"13706:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13696:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15312,"nodeType":"IfStatement","src":"13692:61:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15309,"name":"MismatchedArrayLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12033,"src":"13729:22:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13729:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15311,"nodeType":"RevertStatement","src":"13722:31:49"}},{"body":{"id":15333,"nodeType":"Block","src":"13800:180:49","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15321,"name":"positionIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15291,"src":"13822:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15323,"indexExpression":{"id":15322,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15314,"src":"13834:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13822:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":15324,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15294,"src":"13838:7:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15326,"indexExpression":{"id":15325,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15314,"src":"13846:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13838:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15320,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15639,"src":"13815:6:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13815:34:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15328,"nodeType":"ExpressionStatement","src":"13815:34:49"},{"id":15332,"nodeType":"UncheckedBlock","src":"13921:48:49","statements":[{"expression":{"id":15330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"13950:3:49","subExpression":{"id":15329,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15314,"src":"13952:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15331,"nodeType":"ExpressionStatement","src":"13950:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15314,"src":"13786:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15318,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15301,"src":"13790:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13786:10:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15334,"initializationExpression":{"assignments":[15314],"declarations":[{"constant":false,"id":15314,"mutability":"mutable","name":"i","nameLocation":"13779:1:49","nodeType":"VariableDeclaration","scope":15334,"src":"13771:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15313,"name":"uint256","nodeType":"ElementaryTypeName","src":"13771:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15316,"initialValue":{"hexValue":"30","id":15315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13783:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13771:13:49"},"nodeType":"ForStatement","src":"13766:214:49"}]},"documentation":{"id":15288,"nodeType":"StructuredDocumentation","src":"12893:322:49","text":" @notice External function to stake to or compound multiple positions.\n @dev This saves gas by updating summations only once.\n @param positionIds An array of identifiers of positions to stake to.\n @param amounts An array of amount of tokens to stake to the corresponding positions."},"functionSelector":"5e4c911f","id":15336,"implemented":true,"kind":"function","modifiers":[],"name":"multiStake","nameLocation":"13230:10:49","nodeType":"FunctionDefinition","parameters":{"id":15295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15291,"mutability":"mutable","name":"positionIds","nameLocation":"13260:11:49","nodeType":"VariableDeclaration","scope":15336,"src":"13241:30:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15289,"name":"uint256","nodeType":"ElementaryTypeName","src":"13241:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15290,"nodeType":"ArrayTypeName","src":"13241:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15294,"mutability":"mutable","name":"amounts","nameLocation":"13292:7:49","nodeType":"VariableDeclaration","scope":15336,"src":"13273:26:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15292,"name":"uint256","nodeType":"ElementaryTypeName","src":"13273:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15293,"nodeType":"ArrayTypeName","src":"13273:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"13240:60:49"},"returnParameters":{"id":15296,"nodeType":"ParameterList","parameters":[],"src":"13310:0:49"},"scope":16260,"src":"13221:766:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15384,"nodeType":"Block","src":"14425:474:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15346,"name":"_updateRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15863,"src":"14477:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14477:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15348,"nodeType":"ExpressionStatement","src":"14477:25:49"},{"assignments":[15350],"declarations":[{"constant":false,"id":15350,"mutability":"mutable","name":"length","nameLocation":"14563:6:49","nodeType":"VariableDeclaration","scope":15384,"src":"14555:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15349,"name":"uint256","nodeType":"ElementaryTypeName","src":"14555:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15353,"initialValue":{"expression":{"id":15351,"name":"positionIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15340,"src":"14572:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14572:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14555:35:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15354,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15350,"src":"14605:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15355,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15343,"src":"14615:7:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14615:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14605:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15361,"nodeType":"IfStatement","src":"14601:61:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15358,"name":"MismatchedArrayLengths","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12033,"src":"14638:22:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14638:24:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15360,"nodeType":"RevertStatement","src":"14631:31:49"}},{"body":{"id":15382,"nodeType":"Block","src":"14709:183:49","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15370,"name":"positionIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15340,"src":"14734:11:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15372,"indexExpression":{"id":15371,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"14746:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14734:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":15373,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15343,"src":"14750:7:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":15375,"indexExpression":{"id":15374,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"14758:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14750:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15369,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15782,"src":"14724:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":15376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14724:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15377,"nodeType":"ExpressionStatement","src":"14724:37:49"},{"id":15381,"nodeType":"UncheckedBlock","src":"14833:48:49","statements":[{"expression":{"id":15379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14862:3:49","subExpression":{"id":15378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"14864:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15380,"nodeType":"ExpressionStatement","src":"14862:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15366,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15363,"src":"14695:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15367,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15350,"src":"14699:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14695:10:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15383,"initializationExpression":{"assignments":[15363],"declarations":[{"constant":false,"id":15363,"mutability":"mutable","name":"i","nameLocation":"14688:1:49","nodeType":"VariableDeclaration","scope":15383,"src":"14680:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15362,"name":"uint256","nodeType":"ElementaryTypeName","src":"14680:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15365,"initialValue":{"hexValue":"30","id":15364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14692:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14680:13:49"},"nodeType":"ForStatement","src":"14675:217:49"}]},"documentation":{"id":15337,"nodeType":"StructuredDocumentation","src":"13995:332:49","text":" @notice External function to withdraw or harvest from multiple positions.\n @dev This saves gas by updating summations only once.\n @param positionIds An array of identifiers of positions to withdraw from.\n @param amounts An array of amount of tokens to withdraw from corresponding positions."},"functionSelector":"aea62e3f","id":15385,"implemented":true,"kind":"function","modifiers":[],"name":"multiWithdraw","nameLocation":"14342:13:49","nodeType":"FunctionDefinition","parameters":{"id":15344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15340,"mutability":"mutable","name":"positionIds","nameLocation":"14375:11:49","nodeType":"VariableDeclaration","scope":15385,"src":"14356:30:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15338,"name":"uint256","nodeType":"ElementaryTypeName","src":"14356:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15339,"nodeType":"ArrayTypeName","src":"14356:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":15343,"mutability":"mutable","name":"amounts","nameLocation":"14407:7:49","nodeType":"VariableDeclaration","scope":15385,"src":"14388:26:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":15341,"name":"uint256","nodeType":"ElementaryTypeName","src":"14388:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15342,"nodeType":"ArrayTypeName","src":"14388:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14355:60:49"},"returnParameters":{"id":15345,"nodeType":"ParameterList","parameters":[],"src":"14425:0:49"},"scope":16260,"src":"14333:566:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15409,"nodeType":"Block","src":"15253:350:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15394,"name":"newApprovalPauseDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15388,"src":"15343:24:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":15395,"name":"MAX_APPROVAL_PAUSE_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15093,"src":"15370:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15343:54:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15400,"nodeType":"IfStatement","src":"15339:80:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15397,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"15406:11:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15406:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15399,"nodeType":"RevertStatement","src":"15399:20:49"}},{"expression":{"id":15403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15401,"name":"approvalPauseDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15080,"src":"15489:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15402,"name":"newApprovalPauseDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15388,"src":"15513:24:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15489:48:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15404,"nodeType":"ExpressionStatement","src":"15489:48:49"},{"eventCall":{"arguments":[{"id":15406,"name":"newApprovalPauseDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15388,"src":"15570:24:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15405,"name":"PauseDurationSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15116,"src":"15553:16:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15553:42:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15408,"nodeType":"EmitStatement","src":"15548:47:49"}]},"documentation":{"id":15386,"nodeType":"StructuredDocumentation","src":"14907:211:49","text":" @notice External only-owner function to set how long the token approvals should be ignored.\n @param newApprovalPauseDuration The new duration during which token approvals are ignored."},"functionSelector":"75c3fd3f","id":15410,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15391,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"15228:18:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15392,"kind":"modifierInvocation","modifierName":{"id":15390,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"15219:8:49"},"nodeType":"ModifierInvocation","src":"15219:28:49"}],"name":"setApprovalPauseDuration","nameLocation":"15133:24:49","nodeType":"FunctionDefinition","parameters":{"id":15389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15388,"mutability":"mutable","name":"newApprovalPauseDuration","nameLocation":"15166:24:49","nodeType":"VariableDeclaration","scope":15410,"src":"15158:32:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15387,"name":"uint256","nodeType":"ElementaryTypeName","src":"15158:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15157:34:49"},"returnParameters":{"id":15393,"nodeType":"ParameterList","parameters":[],"src":"15253:0:49"},"scope":16260,"src":"15124:479:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15428,"nodeType":"Block","src":"15945:101:49","statements":[{"expression":{"id":15422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15420,"name":"tokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15068,"src":"15956:13:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15421,"name":"newTokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15414,"src":"15972:16:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"src":"15956:32:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"id":15423,"nodeType":"ExpressionStatement","src":"15956:32:49"},{"eventCall":{"arguments":[{"id":15425,"name":"newTokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15414,"src":"16021:16:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}],"id":15424,"name":"TokenMetadataSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15122,"src":"16004:16:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_contract$_ITokenMetadata_$15030_$returns$__$","typeString":"function (contract ITokenMetadata)"}},"id":15426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16004:34:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15427,"nodeType":"EmitStatement","src":"15999:39:49"}]},"documentation":{"id":15411,"nodeType":"StructuredDocumentation","src":"15611:208:49","text":" @notice External only-owner function to change the contract that constructs tokenURIs.\n @param newTokenMetadata The addresses of the new contract address that constructs tokenURIs."},"functionSelector":"6fdff40f","id":15429,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15417,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"15920:18:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15418,"kind":"modifierInvocation","modifierName":{"id":15416,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"15911:8:49"},"nodeType":"ModifierInvocation","src":"15911:28:49"}],"name":"setTokenMetadata","nameLocation":"15834:16:49","nodeType":"FunctionDefinition","parameters":{"id":15415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15414,"mutability":"mutable","name":"newTokenMetadata","nameLocation":"15866:16:49","nodeType":"VariableDeclaration","scope":15429,"src":"15851:31:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"},"typeName":{"id":15413,"nodeType":"UserDefinedTypeName","pathNode":{"id":15412,"name":"ITokenMetadata","nodeType":"IdentifierPath","referencedDeclaration":15030,"src":"15851:14:49"},"referencedDeclaration":15030,"src":"15851:14:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"visibility":"internal"}],"src":"15850:33:49"},"returnParameters":{"id":15419,"nodeType":"ParameterList","parameters":[],"src":"15945:0:49"},"scope":16260,"src":"15825:221:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15465,"nodeType":"Block","src":"16723:374:49","statements":[{"assignments":[15438],"declarations":[{"constant":false,"id":15438,"mutability":"mutable","name":"totalValue","nameLocation":"16788:10:49","nodeType":"VariableDeclaration","scope":15465,"src":"16780:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15437,"name":"uint256","nodeType":"ElementaryTypeName","src":"16780:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15442,"initialValue":{"arguments":[{"id":15440,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"16811:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}],"id":15439,"name":"_getValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"16801:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValueVariables_$15040_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangolinStakingPositions.ValueVariables storage pointer) view returns (uint256)"}},"id":15441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16801:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16780:51:49"},{"assignments":[15444],"declarations":[{"constant":false,"id":15444,"mutability":"mutable","name":"positionValue","nameLocation":"16850:13:49","nodeType":"VariableDeclaration","scope":15465,"src":"16842:21:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15443,"name":"uint256","nodeType":"ElementaryTypeName","src":"16842:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15451,"initialValue":{"arguments":[{"expression":{"baseExpression":{"id":15446,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"16876:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":15448,"indexExpression":{"id":15447,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15432,"src":"16886:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16876:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"id":15449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":15048,"src":"16876:36:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}],"id":15445,"name":"_getValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"16866:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValueVariables_$15040_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangolinStakingPositions.ValueVariables storage pointer) view returns (uint256)"}},"id":15450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16866:47:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16842:71:49"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15452,"name":"positionValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15444,"src":"17021:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17038:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17021:18:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":15456,"name":"rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16576,"src":"17047:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17047:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15458,"name":"positionValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15444,"src":"17062:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17047:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17046:30:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15461,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15438,"src":"17079:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17046:43:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"17021:68:49","trueExpression":{"hexValue":"30","id":15455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17042:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15436,"id":15464,"nodeType":"Return","src":"17014:75:49"}]},"documentation":{"id":15430,"nodeType":"StructuredDocumentation","src":"16054:583:49","text":" @notice External view function to get the reward rate of a position.\n @dev In SAR, positions have different APRs, unlike other staking algorithms. This external\n      function clearly demonstrates how the SAR algorithm is supposed to distribute the\n      rewards based on “value”, which is balance times staking duration. This external\n      function can be considered as a specification.\n @param positionId The identifier of the position to check the reward rate of.\n @return The rewards per second of the position."},"functionSelector":"468cc41e","id":15466,"implemented":true,"kind":"function","modifiers":[],"name":"positionRewardRate","nameLocation":"16652:18:49","nodeType":"FunctionDefinition","parameters":{"id":15433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15432,"mutability":"mutable","name":"positionId","nameLocation":"16679:10:49","nodeType":"VariableDeclaration","scope":15466,"src":"16671:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15431,"name":"uint256","nodeType":"ElementaryTypeName","src":"16671:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16670:20:49"},"returnParameters":{"id":15436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15466,"src":"16714:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15434,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16713:9:49"},"scope":16260,"src":"16643:454:49","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15494,"nodeType":"Block","src":"17538:509:49","statements":[{"assignments":[15476],"declarations":[{"constant":false,"id":15476,"mutability":"mutable","name":"position","nameLocation":"17621:8:49","nodeType":"VariableDeclaration","scope":15494,"src":"17604:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"},"typeName":{"id":15475,"nodeType":"UserDefinedTypeName","pathNode":{"id":15474,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"17604:8:49"},"referencedDeclaration":15058,"src":"17604:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}},"visibility":"internal"}],"id":15480,"initialValue":{"baseExpression":{"id":15477,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"17632:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":15479,"indexExpression":{"id":15478,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15469,"src":"17642:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17632:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17604:49:49"},{"assignments":[15483],"declarations":[{"constant":false,"id":15483,"mutability":"mutable","name":"deltaRewardSummations","nameLocation":"17814:21:49","nodeType":"VariableDeclaration","scope":15494,"src":"17790:45:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"},"typeName":{"id":15482,"nodeType":"UserDefinedTypeName","pathNode":{"id":15481,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":15045,"src":"17790:16:49"},"referencedDeclaration":15045,"src":"17790:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"}},"visibility":"internal"}],"id":15488,"initialValue":{"arguments":[{"id":15485,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15476,"src":"17864:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},{"hexValue":"74727565","id":15486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17874:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15484,"name":"_getDeltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15985,"src":"17838:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Position_$15058_storage_ptr_$_t_bool_$returns$_t_struct$_RewardSummations_$15045_memory_ptr_$","typeString":"function (struct PangolinStakingPositions.Position storage pointer,bool) view returns (struct PangolinStakingPositions.RewardSummations memory)"}},"id":15487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17838:41:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"nodeType":"VariableDeclarationStatement","src":"17790:89:49"},{"expression":{"arguments":[{"id":15490,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15483,"src":"18007:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},{"id":15491,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15476,"src":"18030:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"},{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}],"id":15489,"name":"_earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16092,"src":"17999:7:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_RewardSummations_$15045_memory_ptr_$_t_struct$_Position_$15058_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangolinStakingPositions.RewardSummations memory,struct PangolinStakingPositions.Position storage pointer) view returns (uint256)"}},"id":15492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17999:40:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15473,"id":15493,"nodeType":"Return","src":"17992:47:49"}]},"documentation":{"id":15467,"nodeType":"StructuredDocumentation","src":"17105:343:49","text":" @notice External view function to get the accrued rewards of a position. It takes the\n         pending rewards since lastUpdate into consideration.\n @param positionId The identifier of the position to check the accrued rewards of.\n @return The amount of rewards that have been accrued in the position."},"functionSelector":"496cea98","id":15495,"implemented":true,"kind":"function","modifiers":[],"name":"positionPendingRewards","nameLocation":"17463:22:49","nodeType":"FunctionDefinition","parameters":{"id":15470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15469,"mutability":"mutable","name":"positionId","nameLocation":"17494:10:49","nodeType":"VariableDeclaration","scope":15495,"src":"17486:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15468,"name":"uint256","nodeType":"ElementaryTypeName","src":"17486:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17485:20:49"},"returnParameters":{"id":15473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15495,"src":"17529:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15471,"name":"uint256","nodeType":"ElementaryTypeName","src":"17529:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17528:9:49"},"scope":16260,"src":"17454:593:49","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15638,"nodeType":"Block","src":"18849:1832:49","statements":[{"assignments":[15508],"declarations":[{"constant":false,"id":15508,"mutability":"mutable","name":"position","nameLocation":"18932:8:49","nodeType":"VariableDeclaration","scope":15638,"src":"18915:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"},"typeName":{"id":15507,"nodeType":"UserDefinedTypeName","pathNode":{"id":15506,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"18915:8:49"},"referencedDeclaration":15058,"src":"18915:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}},"visibility":"internal"}],"id":15512,"initialValue":{"baseExpression":{"id":15509,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"18943:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":15511,"indexExpression":{"id":15510,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15498,"src":"18953:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18943:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18915:49:49"},{"assignments":[15514],"declarations":[{"constant":false,"id":15514,"mutability":"mutable","name":"reward","nameLocation":"19034:6:49","nodeType":"VariableDeclaration","scope":15638,"src":"19026:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15513,"name":"uint256","nodeType":"ElementaryTypeName","src":"19026:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15518,"initialValue":{"arguments":[{"id":15516,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15508,"src":"19067:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}],"id":15515,"name":"_positionPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15910,"src":"19043:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Position_$15058_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangolinStakingPositions.Position storage pointer) view returns (uint256)"}},"id":15517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19043:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19026:50:49"},{"assignments":[15520],"declarations":[{"constant":false,"id":15520,"mutability":"mutable","name":"totalAmount","nameLocation":"19161:11:49","nodeType":"VariableDeclaration","scope":15638,"src":"19153:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15519,"name":"uint256","nodeType":"ElementaryTypeName","src":"19153:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15524,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15521,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"19175:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15522,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15514,"src":"19184:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19175:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19153:37:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15525,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"19205:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19220:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19205:16:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15531,"nodeType":"IfStatement","src":"19201:39:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15528,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"19230:8:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19230:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15530,"nodeType":"RevertStatement","src":"19223:17:49"}},{"assignments":[15533],"declarations":[{"constant":false,"id":15533,"mutability":"mutable","name":"newTotalStaked","nameLocation":"19333:14:49","nodeType":"VariableDeclaration","scope":15638,"src":"19325:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15532,"name":"uint256","nodeType":"ElementaryTypeName","src":"19325:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15538,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15534,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"19350:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"19350:27:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15536,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"19380:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19350:41:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19325:66:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15539,"name":"newTotalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15533,"src":"19406:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":15542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19428:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":15541,"name":"uint96","nodeType":"ElementaryTypeName","src":"19428:6:49","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":15540,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"19423:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19423:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":15544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"19423:16:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"19406:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15549,"nodeType":"IfStatement","src":"19402:56:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15546,"name":"Overflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"19448:8:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19448:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15548,"nodeType":"RevertStatement","src":"19441:17:49"}},{"id":15619,"nodeType":"UncheckedBlock","src":"19471:903:49","statements":[{"assignments":[15551],"declarations":[{"constant":false,"id":15551,"mutability":"mutable","name":"addedEntryTimes","nameLocation":"19589:15:49","nodeType":"VariableDeclaration","scope":15619,"src":"19581:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":15550,"name":"uint160","nodeType":"ElementaryTypeName","src":"19581:7:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"id":15559,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15554,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"19615:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19615:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15556,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"19633:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19615:29:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19607:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":15552,"name":"uint160","nodeType":"ElementaryTypeName","src":"19607:7:49","typeDescriptions":{}}},"id":15558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19607:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"VariableDeclarationStatement","src":"19581:64:49"},{"expression":{"id":15564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15560,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"19660:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"19660:35:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15563,"name":"addedEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"19699:15:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"19660:54:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":15565,"nodeType":"ExpressionStatement","src":"19660:54:49"},{"expression":{"id":15573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15566,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"19729:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"19729:27:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15571,"name":"newTotalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15533,"src":"19766:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19759:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":15569,"name":"uint96","nodeType":"ElementaryTypeName","src":"19759:6:49","typeDescriptions":{}}},"id":15572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19759:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"19729:52:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":15574,"nodeType":"ExpressionStatement","src":"19729:52:49"},{"assignments":[15577],"declarations":[{"constant":false,"id":15577,"mutability":"mutable","name":"positionValueVariables","nameLocation":"19913:22:49","nodeType":"VariableDeclaration","scope":15619,"src":"19890:45:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"},"typeName":{"id":15576,"nodeType":"UserDefinedTypeName","pathNode":{"id":15575,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":15040,"src":"19890:14:49"},"referencedDeclaration":15040,"src":"19890:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"}},"visibility":"internal"}],"id":15580,"initialValue":{"expression":{"id":15578,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15508,"src":"19938:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":15048,"src":"19938:23:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19890:71:49"},{"assignments":[15582],"declarations":[{"constant":false,"id":15582,"mutability":"mutable","name":"oldBalance","nameLocation":"19984:10:49","nodeType":"VariableDeclaration","scope":15619,"src":"19976:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15581,"name":"uint256","nodeType":"ElementaryTypeName","src":"19976:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15585,"initialValue":{"expression":{"id":15583,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15577,"src":"19997:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":15584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"19997:30:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"19976:51:49"},{"expression":{"id":15595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15586,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15577,"src":"20042:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":15588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"20042:30:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15591,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15582,"src":"20082:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15592,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15520,"src":"20095:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20082:24:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20075:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":15589,"name":"uint96","nodeType":"ElementaryTypeName","src":"20075:6:49","typeDescriptions":{}}},"id":15594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20075:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"20042:65:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":15596,"nodeType":"ExpressionStatement","src":"20042:65:49"},{"expression":{"id":15601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15597,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15577,"src":"20122:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":15599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"20122:38:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15600,"name":"addedEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15551,"src":"20164:15:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"20122:57:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":15602,"nodeType":"ExpressionStatement","src":"20122:57:49"},{"expression":{"id":15617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15603,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15508,"src":"20242:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"previousValues","nodeType":"MemberAccess","referencedDeclaration":15053,"src":"20242:23:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15608,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15582,"src":"20295:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15609,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20309:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20309:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15611,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15508,"src":"20327:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":15055,"src":"20327:19:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20309:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20308:39:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20295:52:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20269:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":15606,"name":"uint160","nodeType":"ElementaryTypeName","src":"20269:7:49","typeDescriptions":{}}},"id":15616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20269:93:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"20242:120:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":15618,"nodeType":"ExpressionStatement","src":"20242:120:49"}]},{"expression":{"arguments":[{"id":15621,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15508,"src":"20464:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}],"id":15620,"name":"_snapshotRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"20438:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Position_$15058_storage_ptr_$returns$__$","typeString":"function (struct PangolinStakingPositions.Position storage pointer)"}},"id":15622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20438:35:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15623,"nodeType":"ExpressionStatement","src":"20438:35:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15624,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"20583:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":15625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20593:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20583:11:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15631,"nodeType":"IfStatement","src":"20579:44:49","trueBody":{"expression":{"arguments":[{"id":15628,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"20616:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15627,"name":"_transferFromCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16636,"src":"20596:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20596:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15630,"nodeType":"ExpressionStatement","src":"20596:27:49"}},{"eventCall":{"arguments":[{"id":15633,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15498,"src":"20646:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15634,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15500,"src":"20658:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15635,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15514,"src":"20666:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15632,"name":"Staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"20639:6:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":15636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20639:34:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15637,"nodeType":"EmitStatement","src":"20634:39:49"}]},"documentation":{"id":15496,"nodeType":"StructuredDocumentation","src":"18055:706:49","text":" @notice Private function to deposit tokens to an existing position.\n @param amount The amount of tokens to deposit into the position.\n @param positionId The identifier of the position to deposit the funds into.\n @dev Specifications:\n      - Deposit `amount` tokens to the position associated with `positionId`,\n      - Make the staking duration of `amount` restart,\n      - Claim accrued `reward` tokens of the position,\n      - Deposit `reward` tokens back into the position,\n      - Make the staking duration of `reward` tokens start from zero.\n      - Do not make the staking duration of the existing `balance` restart,"},"id":15639,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15503,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15498,"src":"18837:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15504,"kind":"modifierInvocation","modifierName":{"id":15502,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":15138,"src":"18827:9:49"},"nodeType":"ModifierInvocation","src":"18827:21:49"}],"name":"_stake","nameLocation":"18776:6:49","nodeType":"FunctionDefinition","parameters":{"id":15501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15498,"mutability":"mutable","name":"positionId","nameLocation":"18791:10:49","nodeType":"VariableDeclaration","scope":15639,"src":"18783:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15497,"name":"uint256","nodeType":"ElementaryTypeName","src":"18783:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15500,"mutability":"mutable","name":"amount","nameLocation":"18811:6:49","nodeType":"VariableDeclaration","scope":15639,"src":"18803:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15499,"name":"uint256","nodeType":"ElementaryTypeName","src":"18803:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18782:36:49"},"returnParameters":{"id":15505,"nodeType":"ParameterList","parameters":[],"src":"18849:0:49"},"scope":16260,"src":"18767:1914:49","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":15781,"nodeType":"Block","src":"21564:2091:49","statements":[{"assignments":[15652],"declarations":[{"constant":false,"id":15652,"mutability":"mutable","name":"position","nameLocation":"21647:8:49","nodeType":"VariableDeclaration","scope":15781,"src":"21630:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"},"typeName":{"id":15651,"nodeType":"UserDefinedTypeName","pathNode":{"id":15650,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"21630:8:49"},"referencedDeclaration":15058,"src":"21630:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}},"visibility":"internal"}],"id":15656,"initialValue":{"baseExpression":{"id":15653,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"21658:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":15655,"indexExpression":{"id":15654,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15642,"src":"21668:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21658:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21630:49:49"},{"assignments":[15658],"declarations":[{"constant":false,"id":15658,"mutability":"mutable","name":"oldBalance","nameLocation":"21771:10:49","nodeType":"VariableDeclaration","scope":15781,"src":"21763:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15657,"name":"uint256","nodeType":"ElementaryTypeName","src":"21763:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15662,"initialValue":{"expression":{"expression":{"id":15659,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15652,"src":"21784:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":15048,"src":"21784:23:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"21784:31:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"21763:52:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15644,"src":"21830:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":15664,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"21839:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21830:19:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15669,"nodeType":"IfStatement","src":"21826:53:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15666,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12031,"src":"21858:19:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21858:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15668,"nodeType":"RevertStatement","src":"21851:28:49"}},{"assignments":[15671],"declarations":[{"constant":false,"id":15671,"mutability":"mutable","name":"reward","nameLocation":"21997:6:49","nodeType":"VariableDeclaration","scope":15781,"src":"21989:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15670,"name":"uint256","nodeType":"ElementaryTypeName","src":"21989:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15675,"initialValue":{"arguments":[{"id":15673,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15652,"src":"22030:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}],"id":15672,"name":"_positionPendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15910,"src":"22006:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Position_$15058_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangolinStakingPositions.Position storage pointer) view returns (uint256)"}},"id":15674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22006:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21989:50:49"},{"assignments":[15677],"declarations":[{"constant":false,"id":15677,"mutability":"mutable","name":"totalAmount","nameLocation":"22058:11:49","nodeType":"VariableDeclaration","scope":15781,"src":"22050:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15676,"name":"uint256","nodeType":"ElementaryTypeName","src":"22050:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15681,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15678,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15644,"src":"22072:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15679,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15671,"src":"22081:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22072:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22050:37:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15682,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15677,"src":"22102:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22117:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22102:16:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15688,"nodeType":"IfStatement","src":"22098:39:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15685,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"22127:8:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":15686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22127:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15687,"nodeType":"RevertStatement","src":"22120:17:49"}},{"id":15750,"nodeType":"UncheckedBlock","src":"22150:930:49","statements":[{"assignments":[15690],"declarations":[{"constant":false,"id":15690,"mutability":"mutable","name":"remaining","nameLocation":"22242:9:49","nodeType":"VariableDeclaration","scope":15750,"src":"22234:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15689,"name":"uint256","nodeType":"ElementaryTypeName","src":"22234:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15694,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15691,"name":"oldBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"22254:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15692,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15644,"src":"22267:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22254:19:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22234:39:49"},{"expression":{"id":15702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15695,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"22355:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"22355:27:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":15700,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15644,"src":"22393:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22386:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":15698,"name":"uint96","nodeType":"ElementaryTypeName","src":"22386:6:49","typeDescriptions":{}}},"id":15701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22386:14:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"22355:45:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":15703,"nodeType":"ExpressionStatement","src":"22355:45:49"},{"assignments":[15705],"declarations":[{"constant":false,"id":15705,"mutability":"mutable","name":"newEntryTimes","nameLocation":"22465:13:49","nodeType":"VariableDeclaration","scope":15750,"src":"22457:21:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15704,"name":"uint256","nodeType":"ElementaryTypeName","src":"22457:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15710,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15706,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22481:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22481:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15708,"name":"remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15690,"src":"22499:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22481:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22457:51:49"},{"assignments":[15713],"declarations":[{"constant":false,"id":15713,"mutability":"mutable","name":"positionValueVariables","nameLocation":"22546:22:49","nodeType":"VariableDeclaration","scope":15750,"src":"22523:45:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"},"typeName":{"id":15712,"nodeType":"UserDefinedTypeName","pathNode":{"id":15711,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":15040,"src":"22523:14:49"},"referencedDeclaration":15040,"src":"22523:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"}},"visibility":"internal"}],"id":15716,"initialValue":{"expression":{"id":15714,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15652,"src":"22571:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":15048,"src":"22571:23:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22523:71:49"},{"expression":{"id":15730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15717,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"22609:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"22609:35:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15722,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"22673:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"22673:35:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15724,"name":"newEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15705,"src":"22732:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22673:72:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15726,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15713,"src":"22769:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":15727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"22769:38:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"22673:134:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22647:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":15720,"name":"uint160","nodeType":"ElementaryTypeName","src":"22647:7:49","typeDescriptions":{}}},"id":15729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22647:175:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"22609:213:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":15731,"nodeType":"ExpressionStatement","src":"22609:213:49"},{"expression":{"id":15739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15732,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15713,"src":"22940:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":15734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"22940:30:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15737,"name":"remaining","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15690,"src":"22980:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22973:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":15735,"name":"uint96","nodeType":"ElementaryTypeName","src":"22973:6:49","typeDescriptions":{}}},"id":15738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22973:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"22940:50:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":15740,"nodeType":"ExpressionStatement","src":"22940:50:49"},{"expression":{"id":15748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15741,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15713,"src":"23005:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":15743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"23005:38:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15746,"name":"newEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15705,"src":"23054:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23046:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":15744,"name":"uint160","nodeType":"ElementaryTypeName","src":"23046:7:49","typeDescriptions":{}}},"id":15747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23046:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"23005:63:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":15749,"nodeType":"ExpressionStatement","src":"23005:63:49"}]},{"expression":{"id":15755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15751,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15652,"src":"23174:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"previousValues","nodeType":"MemberAccess","referencedDeclaration":15053,"src":"23174:23:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":15754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23200:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23174:27:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":15756,"nodeType":"ExpressionStatement","src":"23174:27:49"},{"expression":{"id":15765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15757,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15652,"src":"23307:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lastDevaluation","nodeType":"MemberAccess","referencedDeclaration":15057,"src":"23307:24:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":15762,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23341:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"23341:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23334:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":15760,"name":"uint48","nodeType":"ElementaryTypeName","src":"23334:6:49","typeDescriptions":{}}},"id":15764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23334:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23307:50:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":15766,"nodeType":"ExpressionStatement","src":"23307:50:49"},{"expression":{"arguments":[{"id":15768,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15652,"src":"23448:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}],"id":15767,"name":"_snapshotRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"23422:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Position_$15058_storage_ptr_$returns$__$","typeString":"function (struct PangolinStakingPositions.Position storage pointer)"}},"id":15769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23422:35:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15770,"nodeType":"ExpressionStatement","src":"23422:35:49"},{"expression":{"arguments":[{"id":15772,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15677,"src":"23582:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15771,"name":"_transferToCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16614,"src":"23564:17:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23564:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15774,"nodeType":"ExpressionStatement","src":"23564:30:49"},{"eventCall":{"arguments":[{"id":15776,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15642,"src":"23620:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15777,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15644,"src":"23632:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15778,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15671,"src":"23640:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15775,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15102,"src":"23610:9:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":15779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23610:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15780,"nodeType":"EmitStatement","src":"23605:42:49"}]},"documentation":{"id":15640,"nodeType":"StructuredDocumentation","src":"20689:784:49","text":" @notice Private function to withdraw given amount of staked balance, plus all the accrued\n         rewards from the position. Also acts as harvest when input amount is zero.\n @param positionId The identifier of the position to withdraw the balance.\n @param amount The amount of staked tokens, excluding rewards, to withdraw from the position.\n @dev Specifications:\n      - Claim accrued `reward` tokens of the position,\n      - Send `reward` tokens from the contract to the position owner,\n      - Send `amount` tokens from the contract to the position owner,\n      - Make the staking duration of the remaining `balance` restart,\n      - Ignore NFT spending approvals for a duration set by the admin."},"id":15782,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15647,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15642,"src":"21552:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15648,"kind":"modifierInvocation","modifierName":{"id":15646,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":15138,"src":"21542:9:49"},"nodeType":"ModifierInvocation","src":"21542:21:49"}],"name":"_withdraw","nameLocation":"21488:9:49","nodeType":"FunctionDefinition","parameters":{"id":15645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15642,"mutability":"mutable","name":"positionId","nameLocation":"21506:10:49","nodeType":"VariableDeclaration","scope":15782,"src":"21498:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15641,"name":"uint256","nodeType":"ElementaryTypeName","src":"21498:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15644,"mutability":"mutable","name":"amount","nameLocation":"21526:6:49","nodeType":"VariableDeclaration","scope":15782,"src":"21518:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15643,"name":"uint256","nodeType":"ElementaryTypeName","src":"21518:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21497:36:49"},"returnParameters":{"id":15649,"nodeType":"ParameterList","parameters":[],"src":"21564:0:49"},"scope":16260,"src":"21479:2176:49","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":15832,"nodeType":"Block","src":"24207:700:49","statements":[{"assignments":[15793],"declarations":[{"constant":false,"id":15793,"mutability":"mutable","name":"positionValueVariables","nameLocation":"24289:22:49","nodeType":"VariableDeclaration","scope":15832,"src":"24267:44:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_memory_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"},"typeName":{"id":15792,"nodeType":"UserDefinedTypeName","pathNode":{"id":15791,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":15040,"src":"24267:14:49"},"referencedDeclaration":15040,"src":"24267:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"}},"visibility":"internal"}],"id":15798,"initialValue":{"expression":{"baseExpression":{"id":15794,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"24314:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":15796,"indexExpression":{"id":15795,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"24324:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24314:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"id":15797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":15048,"src":"24314:36:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24267:83:49"},{"assignments":[15800],"declarations":[{"constant":false,"id":15800,"mutability":"mutable","name":"balance","nameLocation":"24451:7:49","nodeType":"VariableDeclaration","scope":15832,"src":"24444:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":15799,"name":"uint96","nodeType":"ElementaryTypeName","src":"24444:6:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"id":15803,"initialValue":{"expression":{"id":15801,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15793,"src":"24461:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_memory_ptr","typeString":"struct PangolinStakingPositions.ValueVariables memory"}},"id":15802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"24461:30:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"24444:47:49"},{"id":15817,"nodeType":"UncheckedBlock","src":"24502:167:49","statements":[{"expression":{"id":15808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15804,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"24527:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"24527:27:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":15807,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15800,"src":"24558:7:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"24527:38:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":15809,"nodeType":"ExpressionStatement","src":"24527:38:49"},{"expression":{"id":15815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15810,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"24580:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":15812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"24580:35:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":15813,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15793,"src":"24619:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_memory_ptr","typeString":"struct PangolinStakingPositions.ValueVariables memory"}},"id":15814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"24619:38:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"24580:77:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":15816,"nodeType":"ExpressionStatement","src":"24580:77:49"}]},{"expression":{"arguments":[{"id":15819,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"24728:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15818,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[16172],"referencedDeclaration":16172,"src":"24722:5:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24722:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15821,"nodeType":"ExpressionStatement","src":"24722:17:49"},{"expression":{"arguments":[{"id":15823,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15800,"src":"24842:7:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":15822,"name":"_transferToCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16614,"src":"24824:17:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":15824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24824:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15825,"nodeType":"ExpressionStatement","src":"24824:26:49"},{"eventCall":{"arguments":[{"id":15827,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"24876:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15828,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15800,"src":"24888:7:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"hexValue":"30","id":15829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24897:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15826,"name":"Withdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15102,"src":"24866:9:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":15830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24866:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15831,"nodeType":"EmitStatement","src":"24861:38:49"}]},"documentation":{"id":15783,"nodeType":"StructuredDocumentation","src":"23663:464:49","text":" @notice External function to exit from a position by forgoing rewards.\n @param positionId The identifier of the position to exit from.\n @dev Specifications:\n      - Burn the NFT associated with `positionId`,\n      - Close the position associated with `positionId`,\n      - Send `balance` tokens of the position to the user wallet,\n      - Ignore `reward` tokens, making them permanently irrecoverable."},"id":15833,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15788,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"24195:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15789,"kind":"modifierInvocation","modifierName":{"id":15787,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":15138,"src":"24185:9:49"},"nodeType":"ModifierInvocation","src":"24185:21:49"}],"name":"_emergencyExit","nameLocation":"24142:14:49","nodeType":"FunctionDefinition","parameters":{"id":15786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15785,"mutability":"mutable","name":"positionId","nameLocation":"24165:10:49","nodeType":"VariableDeclaration","scope":15833,"src":"24157:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15784,"name":"uint256","nodeType":"ElementaryTypeName","src":"24157:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24156:20:49"},"returnParameters":{"id":15790,"nodeType":"ParameterList","parameters":[],"src":"24207:0:49"},"scope":16260,"src":"24133:774:49","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":15862,"nodeType":"Block","src":"25155:546:49","statements":[{"assignments":[15838],"declarations":[{"constant":false,"id":15838,"mutability":"mutable","name":"rewards","nameLocation":"25245:7:49","nodeType":"VariableDeclaration","scope":15862,"src":"25237:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15837,"name":"uint256","nodeType":"ElementaryTypeName","src":"25237:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15841,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15839,"name":"_claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16596,"src":"25255:6:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint256_$","typeString":"function () returns (uint256)"}},"id":15840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25255:8:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25237:26:49"},{"assignments":[15843,15845],"declarations":[{"constant":false,"id":15843,"mutability":"mutable","name":"idealPositionIncrementation","nameLocation":"25359:27:49","nodeType":"VariableDeclaration","scope":15862,"src":"25351:35:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15842,"name":"uint256","nodeType":"ElementaryTypeName","src":"25351:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15845,"mutability":"mutable","name":"rewardPerValueIncrementation","nameLocation":"25409:28:49","nodeType":"VariableDeclaration","scope":15862,"src":"25401:36:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15844,"name":"uint256","nodeType":"ElementaryTypeName","src":"25401:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15849,"initialValue":{"arguments":[{"id":15847,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15838,"src":"25487:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15846,"name":"_getRewardSummationsIncrementations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16028,"src":"25451:35:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256)"}},"id":15848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25451:44:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25336:159:49"},{"expression":{"id":15854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15850,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15076,"src":"25546:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"id":15852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"25546:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15853,"name":"idealPositionIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"25586:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25546:67:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15855,"nodeType":"ExpressionStatement","src":"25546:67:49"},{"expression":{"id":15860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15856,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15076,"src":"25624:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"id":15858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":15044,"src":"25624:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15859,"name":"rewardPerValueIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15845,"src":"25665:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25624:69:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15861,"nodeType":"ExpressionStatement","src":"25624:69:49"}]},"documentation":{"id":15834,"nodeType":"StructuredDocumentation","src":"24915:191:49","text":" @notice Private function to claim the total pending rewards, and based on the claimed amount\n         update the two variables that govern the reward distribution."},"id":15863,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRewardSummations","nameLocation":"25121:23:49","nodeType":"FunctionDefinition","parameters":{"id":15835,"nodeType":"ParameterList","parameters":[],"src":"25144:2:49"},"returnParameters":{"id":15836,"nodeType":"ParameterList","parameters":[],"src":"25155:0:49"},"scope":16260,"src":"25112:589:49","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":15886,"nodeType":"Block","src":"25978:129:49","statements":[{"expression":{"id":15878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15870,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"25989:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":15055,"src":"25989:19:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":15875,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26018:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"26018:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26011:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":15873,"name":"uint48","nodeType":"ElementaryTypeName","src":"26011:6:49","typeDescriptions":{}}},"id":15877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26011:23:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25989:45:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":15879,"nodeType":"ExpressionStatement","src":"25989:45:49"},{"expression":{"id":15884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15880,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15867,"src":"26045:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardSummationsPaid","nodeType":"MemberAccess","referencedDeclaration":15051,"src":"26045:29:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15883,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15076,"src":"26077:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"src":"26045:54:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"id":15885,"nodeType":"ExpressionStatement","src":"26045:54:49"}]},"documentation":{"id":15864,"nodeType":"StructuredDocumentation","src":"25709:193:49","text":" @notice Private function to snapshot two rewards variables and record the timestamp.\n @param position The storage pointer to the position to record the snapshot for."},"id":15887,"implemented":true,"kind":"function","modifiers":[],"name":"_snapshotRewardSummations","nameLocation":"25917:25:49","nodeType":"FunctionDefinition","parameters":{"id":15868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15867,"mutability":"mutable","name":"position","nameLocation":"25960:8:49","nodeType":"VariableDeclaration","scope":15887,"src":"25943:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"},"typeName":{"id":15866,"nodeType":"UserDefinedTypeName","pathNode":{"id":15865,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"25943:8:49"},"referencedDeclaration":15058,"src":"25943:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}},"visibility":"internal"}],"src":"25942:27:49"},"returnParameters":{"id":15869,"nodeType":"ParameterList","parameters":[],"src":"25978:0:49"},"scope":16260,"src":"25908:199:49","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":15909,"nodeType":"Block","src":"26553:421:49","statements":[{"assignments":[15898],"declarations":[{"constant":false,"id":15898,"mutability":"mutable","name":"deltaRewardSummations","nameLocation":"26784:21:49","nodeType":"VariableDeclaration","scope":15909,"src":"26760:45:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"},"typeName":{"id":15897,"nodeType":"UserDefinedTypeName","pathNode":{"id":15896,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":15045,"src":"26760:16:49"},"referencedDeclaration":15045,"src":"26760:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"}},"visibility":"internal"}],"id":15903,"initialValue":{"arguments":[{"id":15900,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15891,"src":"26834:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},{"hexValue":"66616c7365","id":15901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26844:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15899,"name":"_getDeltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15985,"src":"26808:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Position_$15058_storage_ptr_$_t_bool_$returns$_t_struct$_RewardSummations_$15045_memory_ptr_$","typeString":"function (struct PangolinStakingPositions.Position storage pointer,bool) view returns (struct PangolinStakingPositions.RewardSummations memory)"}},"id":15902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26808:42:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"nodeType":"VariableDeclarationStatement","src":"26760:90:49"},{"expression":{"arguments":[{"id":15905,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15898,"src":"26934:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},{"id":15906,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15891,"src":"26957:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"},{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}],"id":15904,"name":"_earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16092,"src":"26926:7:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_RewardSummations_$15045_memory_ptr_$_t_struct$_Position_$15058_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangolinStakingPositions.RewardSummations memory,struct PangolinStakingPositions.Position storage pointer) view returns (uint256)"}},"id":15907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26926:40:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15895,"id":15908,"nodeType":"Return","src":"26919:47:49"}]},"documentation":{"id":15888,"nodeType":"StructuredDocumentation","src":"26115:341:49","text":" @notice Private view function to get the accrued rewards of a position.\n @dev The call to this function must only be made after the summations are updated\n      through `_updateRewardSummations()`.\n @param position The properties of the position.\n @return The accrued rewards of the position."},"id":15910,"implemented":true,"kind":"function","modifiers":[],"name":"_positionPendingRewards","nameLocation":"26471:23:49","nodeType":"FunctionDefinition","parameters":{"id":15892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15891,"mutability":"mutable","name":"position","nameLocation":"26512:8:49","nodeType":"VariableDeclaration","scope":15910,"src":"26495:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"},"typeName":{"id":15890,"nodeType":"UserDefinedTypeName","pathNode":{"id":15889,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"26495:8:49"},"referencedDeclaration":15058,"src":"26495:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}},"visibility":"internal"}],"src":"26494:27:49"},"returnParameters":{"id":15895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15910,"src":"26544:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15893,"name":"uint256","nodeType":"ElementaryTypeName","src":"26544:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26543:9:49"},"scope":16260,"src":"26462:512:49","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":15984,"nodeType":"Block","src":"27647:1646:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":15925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15922,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"27736:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":15055,"src":"27736:19:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27759:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27736:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15931,"nodeType":"IfStatement","src":"27732:59:49","trueBody":{"expression":{"arguments":[{"hexValue":"30","id":15927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27786:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":15928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27789:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15926,"name":"RewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15045,"src":"27769:16:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardSummations_$15045_storage_ptr_$","typeString":"type(struct PangolinStakingPositions.RewardSummations storage pointer)"}},"id":15929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27769:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"functionReturnParameters":15921,"id":15930,"nodeType":"Return","src":"27762:29:49"}},{"assignments":[15934],"declarations":[{"constant":false,"id":15934,"mutability":"mutable","name":"rewardSummationsPaid","nameLocation":"27896:20:49","nodeType":"VariableDeclaration","scope":15984,"src":"27871:45:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"},"typeName":{"id":15933,"nodeType":"UserDefinedTypeName","pathNode":{"id":15932,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":15045,"src":"27871:16:49"},"referencedDeclaration":15045,"src":"27871:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"}},"visibility":"internal"}],"id":15937,"initialValue":{"expression":{"id":15935,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"27919:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":15936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSummationsPaid","nodeType":"MemberAccess","referencedDeclaration":15051,"src":"27919:29:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"nodeType":"VariableDeclarationStatement","src":"27871:77:49"},{"condition":{"id":15938,"name":"increment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15916,"src":"28040:9:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15970,"nodeType":"IfStatement","src":"28036:901:49","trueBody":{"id":15969,"nodeType":"Block","src":"28051:886:49","statements":[{"assignments":[15940],"declarations":[{"constant":false,"id":15940,"mutability":"mutable","name":"rewards","nameLocation":"28146:7:49","nodeType":"VariableDeclaration","scope":15969,"src":"28138:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15939,"name":"uint256","nodeType":"ElementaryTypeName","src":"28138:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15943,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15941,"name":"_pendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16687,"src":"28156:15:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":15942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28156:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28138:35:49"},{"assignments":[15945,15947],"declarations":[{"constant":false,"id":15945,"mutability":"mutable","name":"idealPositionIncrementation","nameLocation":"28281:27:49","nodeType":"VariableDeclaration","scope":15969,"src":"28273:35:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15944,"name":"uint256","nodeType":"ElementaryTypeName","src":"28273:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15947,"mutability":"mutable","name":"rewardPerValueIncrementation","nameLocation":"28335:28:49","nodeType":"VariableDeclaration","scope":15969,"src":"28327:36:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28327:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15951,"initialValue":{"arguments":[{"id":15949,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15940,"src":"28417:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15948,"name":"_getRewardSummationsIncrementations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16028,"src":"28381:35:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256)"}},"id":15950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28381:44:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28254:171:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15953,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15076,"src":"28574:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"id":15954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"28574:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15955,"name":"idealPositionIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15945,"src":"28638:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28574:91:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15957,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15934,"src":"28693:20:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations storage pointer"}},"id":15958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"28693:34:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28574:153:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15960,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15076,"src":"28750:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"id":15961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":15044,"src":"28750:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15962,"name":"rewardPerValueIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15947,"src":"28815:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28750:93:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15964,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15934,"src":"28871:20:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations storage pointer"}},"id":15965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":15044,"src":"28871:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28750:156:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15952,"name":"RewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15045,"src":"28535:16:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardSummations_$15045_storage_ptr_$","typeString":"type(struct PangolinStakingPositions.RewardSummations storage pointer)"}},"id":15967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28535:390:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"functionReturnParameters":15921,"id":15968,"nodeType":"Return","src":"28511:414:49"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15972,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15076,"src":"29103:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"id":15973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"29103:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15974,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15934,"src":"29142:20:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations storage pointer"}},"id":15975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"29142:34:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29103:73:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15977,"name":"rewardSummationsStored","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15076,"src":"29195:22:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage","typeString":"struct PangolinStakingPositions.RewardSummations storage ref"}},"id":15978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":15044,"src":"29195:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15979,"name":"rewardSummationsPaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15934,"src":"29235:20:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations storage pointer"}},"id":15980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":15044,"src":"29235:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29195:75:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15971,"name":"RewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15045,"src":"29068:16:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RewardSummations_$15045_storage_ptr_$","typeString":"type(struct PangolinStakingPositions.RewardSummations storage pointer)"}},"id":15982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29068:217:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"functionReturnParameters":15921,"id":15983,"nodeType":"Return","src":"29048:237:49"}]},"documentation":{"id":15911,"nodeType":"StructuredDocumentation","src":"26982:502:49","text":" @notice Private view function to get the difference between a position’s summations\n         (‘paid’) and global summations (‘stored’).\n @param position The position for which to calculate the delta of summations.\n @param increment Whether to the incremented `rewardSummationsStored` based on the pending\n                  rewards of the contract.\n @return The difference between the `rewardSummationsStored` and `rewardSummationsPaid`."},"id":15985,"implemented":true,"kind":"function","modifiers":[],"name":"_getDeltaRewardSummations","nameLocation":"27499:25:49","nodeType":"FunctionDefinition","parameters":{"id":15917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15914,"mutability":"mutable","name":"position","nameLocation":"27542:8:49","nodeType":"VariableDeclaration","scope":15985,"src":"27525:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"},"typeName":{"id":15913,"nodeType":"UserDefinedTypeName","pathNode":{"id":15912,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"27525:8:49"},"referencedDeclaration":15058,"src":"27525:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}},"visibility":"internal"},{"constant":false,"id":15916,"mutability":"mutable","name":"increment","nameLocation":"27557:9:49","nodeType":"VariableDeclaration","scope":15985,"src":"27552:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15915,"name":"bool","nodeType":"ElementaryTypeName","src":"27552:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27524:43:49"},"returnParameters":{"id":15921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15985,"src":"27617:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"},"typeName":{"id":15919,"nodeType":"UserDefinedTypeName","pathNode":{"id":15918,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":15045,"src":"27617:16:49"},"referencedDeclaration":15045,"src":"27617:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"}},"visibility":"internal"}],"src":"27616:25:49"},"scope":16260,"src":"27490:1803:49","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":16027,"nodeType":"Block","src":"29932:384:49","statements":[{"assignments":[15996],"declarations":[{"constant":false,"id":15996,"mutability":"mutable","name":"totalValue","nameLocation":"30045:10:49","nodeType":"VariableDeclaration","scope":16027,"src":"30037:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15995,"name":"uint256","nodeType":"ElementaryTypeName","src":"30037:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16000,"initialValue":{"arguments":[{"id":15998,"name":"totalValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"30068:19:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}],"id":15997,"name":"_getValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16047,"src":"30058:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValueVariables_$15040_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct PangolinStakingPositions.ValueVariables storage pointer) view returns (uint256)"}},"id":15999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30058:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30037:51:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16001,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15996,"src":"30103:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30117:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30103:15:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16026,"nodeType":"IfStatement","src":"30099:210:49","trueBody":{"id":16025,"nodeType":"Block","src":"30120:189:49","statements":[{"expression":{"id":16014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16004,"name":"idealPositionIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15991,"src":"30135:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16005,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15988,"src":"30166:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16006,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30176:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"30176:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30166:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":16009,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15089,"src":"30194:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30166:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30165:39:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":16012,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15996,"src":"30207:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30165:52:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30135:82:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16015,"nodeType":"ExpressionStatement","src":"30135:82:49"},{"expression":{"id":16023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16016,"name":"rewardPerValueIncrementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"30232:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16017,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15988,"src":"30264:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":16018,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15089,"src":"30274:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30264:19:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16020,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30263:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":16021,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15996,"src":"30287:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30263:34:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30232:65:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16024,"nodeType":"ExpressionStatement","src":"30232:65:49"}]}}]},"documentation":{"id":15986,"nodeType":"StructuredDocumentation","src":"29301:434:49","text":" @notice Private view function to calculate the `rewardSummationsStored` incrementations\n         based on the given reward amount.\n @param rewards The amount of rewards to use for calculating the incrementation.\n @return idealPositionIncrementation The incrementation to make to the idealPosition.\n @return rewardPerValueIncrementation The incrementation to make to the rewardPerValue."},"id":16028,"implemented":true,"kind":"function","modifiers":[],"name":"_getRewardSummationsIncrementations","nameLocation":"29750:35:49","nodeType":"FunctionDefinition","parameters":{"id":15989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15988,"mutability":"mutable","name":"rewards","nameLocation":"29794:7:49","nodeType":"VariableDeclaration","scope":16028,"src":"29786:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15987,"name":"uint256","nodeType":"ElementaryTypeName","src":"29786:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29785:17:49"},"returnParameters":{"id":15994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15991,"mutability":"mutable","name":"idealPositionIncrementation","nameLocation":"29860:27:49","nodeType":"VariableDeclaration","scope":16028,"src":"29852:35:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15990,"name":"uint256","nodeType":"ElementaryTypeName","src":"29852:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15993,"mutability":"mutable","name":"rewardPerValueIncrementation","nameLocation":"29897:28:49","nodeType":"VariableDeclaration","scope":16028,"src":"29889:36:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15992,"name":"uint256","nodeType":"ElementaryTypeName","src":"29889:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29851:75:49"},"scope":16260,"src":"29741:575:49","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":16046,"nodeType":"Block","src":"31057:99:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16037,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31075:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"31075:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16039,"name":"valueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16032,"src":"31093:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":16040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"31093:22:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"31075:40:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16042,"name":"valueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16032,"src":"31118:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables storage pointer"}},"id":16043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":15039,"src":"31118:30:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"31075:73:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16036,"id":16045,"nodeType":"Return","src":"31068:80:49"}]},"documentation":{"id":16029,"nodeType":"StructuredDocumentation","src":"30324:638:49","text":" @notice Private view function to get the position or contract value.\n @dev Value refers to the sum of each `wei` of tokens’ staking durations. So if there are\n      10 tokens staked in the contract, and each one of them has been staked for 10 seconds,\n      then the value is 100 (`10 * 10`). To calculate value we use sumOfEntryTimes, which is\n      the sum of each `wei` of tokens’ staking-duration-starting timestamp. The formula\n      below is intuitive and simple to derive. We will leave proving it to the reader.\n @return The total value of contract or a position."},"id":16047,"implemented":true,"kind":"function","modifiers":[],"name":"_getValue","nameLocation":"30977:9:49","nodeType":"FunctionDefinition","parameters":{"id":16033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16032,"mutability":"mutable","name":"valueVariables","nameLocation":"31010:14:49","nodeType":"VariableDeclaration","scope":16047,"src":"30987:37:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"},"typeName":{"id":16031,"nodeType":"UserDefinedTypeName","pathNode":{"id":16030,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":15040,"src":"30987:14:49"},"referencedDeclaration":15040,"src":"30987:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage_ptr","typeString":"struct PangolinStakingPositions.ValueVariables"}},"visibility":"internal"}],"src":"30986:39:49"},"returnParameters":{"id":16036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16047,"src":"31048:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16034,"name":"uint256","nodeType":"ElementaryTypeName","src":"31048:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31047:9:49"},"scope":16260,"src":"30968:188:49","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":16091,"nodeType":"Block","src":"31653:484:49","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":16062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16059,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16054,"src":"31784:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":16060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":15055,"src":"31784:19:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31807:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31784:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16064,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"31852:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"id":16065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"idealPosition","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"31852:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16066,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"31912:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"id":16067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":15044,"src":"31912:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16068,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16054,"src":"31951:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":16069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastUpdate","nodeType":"MemberAccess","referencedDeclaration":15055,"src":"31951:19:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"31912:58:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16071,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31911:60:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31852:119:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16073,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31851:121:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":16074,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16054,"src":"31996:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":16075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":15048,"src":"31996:23:49","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$15040_storage","typeString":"struct PangolinStakingPositions.ValueVariables storage ref"}},"id":16076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":15037,"src":"31996:31:49","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"31851:176:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16078,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31850:178:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16079,"name":"deltaRewardSummations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16051,"src":"32053:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations memory"}},"id":16080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardPerValue","nodeType":"MemberAccess","referencedDeclaration":15044,"src":"32053:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16081,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16054,"src":"32092:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position storage pointer"}},"id":16082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"previousValues","nodeType":"MemberAccess","referencedDeclaration":15053,"src":"32092:23:49","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"32053:62:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32052:64:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31850:266:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16086,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31849:268:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":16087,"name":"PRECISION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15089,"src":"32120:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31849:280:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31784:345:49","trueExpression":{"hexValue":"30","id":16063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31828:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16058,"id":16090,"nodeType":"Return","src":"31764:365:49"}]},"documentation":{"id":16048,"nodeType":"StructuredDocumentation","src":"31164:329:49","text":" @notice Low-level private view function to get the accrued rewards of a position.\n @param deltaRewardSummations The difference between the ‘stored’ and ‘paid’ summations.\n @param position The position to check the accrued rewards of.\n @return The accrued rewards of the position."},"id":16092,"implemented":true,"kind":"function","modifiers":[],"name":"_earned","nameLocation":"31508:7:49","nodeType":"FunctionDefinition","parameters":{"id":16055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16051,"mutability":"mutable","name":"deltaRewardSummations","nameLocation":"31540:21:49","nodeType":"VariableDeclaration","scope":16092,"src":"31516:45:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_memory_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"},"typeName":{"id":16050,"nodeType":"UserDefinedTypeName","pathNode":{"id":16049,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":15045,"src":"31516:16:49"},"referencedDeclaration":15045,"src":"31516:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$15045_storage_ptr","typeString":"struct PangolinStakingPositions.RewardSummations"}},"visibility":"internal"},{"constant":false,"id":16054,"mutability":"mutable","name":"position","nameLocation":"31580:8:49","nodeType":"VariableDeclaration","scope":16092,"src":"31563:25:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"},"typeName":{"id":16053,"nodeType":"UserDefinedTypeName","pathNode":{"id":16052,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":15058,"src":"31563:8:49"},"referencedDeclaration":15058,"src":"31563:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage_ptr","typeString":"struct PangolinStakingPositions.Position"}},"visibility":"internal"}],"src":"31515:74:49"},"returnParameters":{"id":16058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16092,"src":"31639:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16056,"name":"uint256","nodeType":"ElementaryTypeName","src":"31639:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31638:9:49"},"scope":16260,"src":"31499:638:49","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":16150,"nodeType":"Block","src":"32398:347:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16104,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16096,"src":"32413:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16105,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"32420:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32413:9:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16110,"nodeType":"IfStatement","src":"32409:35:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16107,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"32431:11:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32431:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16109,"nodeType":"RevertStatement","src":"32424:20:49"}},{"assignments":[16112],"declarations":[{"constant":false,"id":16112,"mutability":"mutable","name":"length","nameLocation":"32465:6:49","nodeType":"VariableDeclaration","scope":16150,"src":"32457:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16111,"name":"uint256","nodeType":"ElementaryTypeName","src":"32457:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16118,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16113,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"32474:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":16114,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16096,"src":"32479:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32474:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":16116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32486:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32474:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32457:30:49"},{"assignments":[16123],"declarations":[{"constant":false,"id":16123,"mutability":"mutable","name":"tokens","nameLocation":"32515:6:49","nodeType":"VariableDeclaration","scope":16150,"src":"32498:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16121,"name":"uint256","nodeType":"ElementaryTypeName","src":"32498:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16122,"nodeType":"ArrayTypeName","src":"32498:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":16129,"initialValue":{"arguments":[{"id":16127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16112,"src":"32538:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"32524:13:49","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":16124,"name":"uint256","nodeType":"ElementaryTypeName","src":"32528:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16125,"nodeType":"ArrayTypeName","src":"32528:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":16128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32524:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"32498:47:49"},{"body":{"id":16146,"nodeType":"Block","src":"32575:139:49","statements":[{"expression":{"id":16140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16133,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"32590:6:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":16135,"indexExpression":{"id":16134,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16096,"src":"32597:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32590:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16137,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16094,"src":"32625:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16138,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16096,"src":"32632:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16136,"name":"tokenOfOwnerByIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3953,"src":"32605:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":16139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32605:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32590:47:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16141,"nodeType":"ExpressionStatement","src":"32590:47:49"},{"id":16145,"nodeType":"UncheckedBlock","src":"32652:51:49","statements":[{"expression":{"id":16143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"32681:6:49","subExpression":{"id":16142,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16096,"src":"32683:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16144,"nodeType":"ExpressionStatement","src":"32681:6:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16130,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16096,"src":"32563:4:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":16131,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16098,"src":"32571:2:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32563:10:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16147,"nodeType":"WhileStatement","src":"32556:158:49"},{"expression":{"id":16148,"name":"tokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"32731:6:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":16103,"id":16149,"nodeType":"Return","src":"32724:13:49"}]},"functionSelector":"ce9e2daa","id":16151,"implemented":true,"kind":"function","modifiers":[],"name":"tokensOfOwnerByIndex","nameLocation":"32261:20:49","nodeType":"FunctionDefinition","parameters":{"id":16099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16094,"mutability":"mutable","name":"owner","nameLocation":"32300:5:49","nodeType":"VariableDeclaration","scope":16151,"src":"32292:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16093,"name":"address","nodeType":"ElementaryTypeName","src":"32292:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16096,"mutability":"mutable","name":"from","nameLocation":"32324:4:49","nodeType":"VariableDeclaration","scope":16151,"src":"32316:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16095,"name":"uint256","nodeType":"ElementaryTypeName","src":"32316:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16098,"mutability":"mutable","name":"to","nameLocation":"32347:2:49","nodeType":"VariableDeclaration","scope":16151,"src":"32339:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16097,"name":"uint256","nodeType":"ElementaryTypeName","src":"32339:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32281:75:49"},"returnParameters":{"id":16103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16102,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16151,"src":"32380:16:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16100,"name":"uint256","nodeType":"ElementaryTypeName","src":"32380:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16101,"nodeType":"ArrayTypeName","src":"32380:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"32379:18:49"},"scope":16260,"src":"32252:493:49","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3482],"body":{"id":16171,"nodeType":"Block","src":"32822:125:49","statements":[{"expression":{"id":16163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"32883:25:49","subExpression":{"baseExpression":{"id":16160,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"32890:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":16162,"indexExpression":{"id":16161,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16153,"src":"32900:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"32890:18:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16164,"nodeType":"ExpressionStatement","src":"32883:25:49"},{"expression":{"arguments":[{"id":16168,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16153,"src":"32931:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16165,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"32919:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PangolinStakingPositions_$16260_$","typeString":"type(contract super PangolinStakingPositions)"}},"id":16167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":3482,"src":"32919:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":16169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32919:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16170,"nodeType":"ExpressionStatement","src":"32919:20:49"}]},"id":16172,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16157,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16153,"src":"32813:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16158,"kind":"modifierInvocation","modifierName":{"id":16156,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":15138,"src":"32803:9:49"},"nodeType":"ModifierInvocation","src":"32803:18:49"}],"name":"_burn","nameLocation":"32762:5:49","nodeType":"FunctionDefinition","overrides":{"id":16155,"nodeType":"OverrideSpecifier","overrides":[],"src":"32794:8:49"},"parameters":{"id":16154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16153,"mutability":"mutable","name":"tokenId","nameLocation":"32776:7:49","nodeType":"VariableDeclaration","scope":16172,"src":"32768:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16152,"name":"uint256","nodeType":"ElementaryTypeName","src":"32768:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32767:17:49"},"returnParameters":{"id":16159,"nodeType":"ParameterList","parameters":[],"src":"32822:0:49"},"scope":16260,"src":"32753:194:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4067],"body":{"id":16216,"nodeType":"Block","src":"33108:360:49","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16184,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33197:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"33197:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16186,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16174,"src":"33211:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33197:18:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16206,"nodeType":"IfStatement","src":"33193:199:49","trueBody":{"id":16205,"nodeType":"Block","src":"33217:175:49","statements":[{"assignments":[16189],"declarations":[{"constant":false,"id":16189,"mutability":"mutable","name":"pausedUntil","nameLocation":"33240:11:49","nodeType":"VariableDeclaration","scope":16205,"src":"33232:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16188,"name":"uint256","nodeType":"ElementaryTypeName","src":"33232:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16196,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":16190,"name":"positions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"33254:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Position_$15058_storage_$","typeString":"mapping(uint256 => struct PangolinStakingPositions.Position storage ref)"}},"id":16192,"indexExpression":{"id":16191,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16178,"src":"33264:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33254:18:49","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$15058_storage","typeString":"struct PangolinStakingPositions.Position storage ref"}},"id":16193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lastDevaluation","nodeType":"MemberAccess","referencedDeclaration":15057,"src":"33254:34:49","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":16194,"name":"approvalPauseDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15080,"src":"33291:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33254:58:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33232:80:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16197,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"33331:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"33331:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":16199,"name":"pausedUntil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16189,"src":"33350:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33331:30:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16204,"nodeType":"IfStatement","src":"33327:53:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16201,"name":"TooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12005,"src":"33370:8:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33370:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16203,"nodeType":"RevertStatement","src":"33363:17:49"}}]}},{"expression":{"arguments":[{"id":16210,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16174,"src":"33431:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16211,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16176,"src":"33437:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16212,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16178,"src":"33441:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16213,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16180,"src":"33450:9:49","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"}],"expression":{"id":16207,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"33404:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PangolinStakingPositions_$16260_$","typeString":"type(contract super PangolinStakingPositions)"}},"id":16209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":4067,"src":"33404:26:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":16214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33404:56:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16215,"nodeType":"ExpressionStatement","src":"33404:56:49"}]},"id":16217,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"32964:20:49","nodeType":"FunctionDefinition","overrides":{"id":16182,"nodeType":"OverrideSpecifier","overrides":[],"src":"33099:8:49"},"parameters":{"id":16181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16174,"mutability":"mutable","name":"from","nameLocation":"33003:4:49","nodeType":"VariableDeclaration","scope":16217,"src":"32995:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16173,"name":"address","nodeType":"ElementaryTypeName","src":"32995:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16176,"mutability":"mutable","name":"to","nameLocation":"33026:2:49","nodeType":"VariableDeclaration","scope":16217,"src":"33018:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16175,"name":"address","nodeType":"ElementaryTypeName","src":"33018:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16178,"mutability":"mutable","name":"tokenId","nameLocation":"33047:7:49","nodeType":"VariableDeclaration","scope":16217,"src":"33039:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16177,"name":"uint256","nodeType":"ElementaryTypeName","src":"33039:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16180,"mutability":"mutable","name":"batchSize","nameLocation":"33073:9:49","nodeType":"VariableDeclaration","scope":16217,"src":"33065:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16179,"name":"uint256","nodeType":"ElementaryTypeName","src":"33065:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32984:105:49"},"returnParameters":{"id":16183,"nodeType":"ParameterList","parameters":[],"src":"33108:0:49"},"scope":16260,"src":"32955:513:49","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3019],"body":{"id":16237,"nodeType":"Block","src":"33556:166:49","statements":[{"expression":{"arguments":[{"id":16228,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16219,"src":"33589:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16225,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"33567:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$3741_$","typeString":"type(contract ERC721)"}},"id":16227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_requireMinted","nodeType":"MemberAccess","referencedDeclaration":3637,"src":"33567:21:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":16229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33567:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16230,"nodeType":"ExpressionStatement","src":"33567:30:49"},{"expression":{"arguments":[{"id":16233,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"33700:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinStakingPositions_$16260","typeString":"contract PangolinStakingPositions"}},{"id":16234,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16219,"src":"33706:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinStakingPositions_$16260","typeString":"contract PangolinStakingPositions"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16231,"name":"tokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15068,"src":"33677:13:49","typeDescriptions":{"typeIdentifier":"t_contract$_ITokenMetadata_$15030","typeString":"contract ITokenMetadata"}},"id":16232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":15029,"src":"33677:22:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_PangolinStakingPositions_$16260_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (contract PangolinStakingPositions,uint256) view external returns (string memory)"}},"id":16235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33677:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":16224,"id":16236,"nodeType":"Return","src":"33670:44:49"}]},"functionSelector":"c87b56dd","id":16238,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"33485:8:49","nodeType":"FunctionDefinition","overrides":{"id":16221,"nodeType":"OverrideSpecifier","overrides":[],"src":"33523:8:49"},"parameters":{"id":16220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16219,"mutability":"mutable","name":"tokenId","nameLocation":"33502:7:49","nodeType":"VariableDeclaration","scope":16238,"src":"33494:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16218,"name":"uint256","nodeType":"ElementaryTypeName","src":"33494:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33493:17:49"},"returnParameters":{"id":16224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16238,"src":"33541:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16222,"name":"string","nodeType":"ElementaryTypeName","src":"33541:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33540:15:49"},"scope":16260,"src":"33476:246:49","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[356,3925],"body":{"id":16258,"nodeType":"Block","src":"33897:157:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16250,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16240,"src":"33970:11:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16248,"name":"AccessControlEnumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"33928:23:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControlEnumerable_$440_$","typeString":"type(contract AccessControlEnumerable)"}},"id":16249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":356,"src":"33928:41:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33928:54:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":16254,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16240,"src":"34034:11:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16252,"name":"ERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"33999:16:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Enumerable_$4229_$","typeString":"type(contract ERC721Enumerable)"}},"id":16253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3925,"src":"33999:34:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33999:47:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33928:118:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16247,"id":16257,"nodeType":"Return","src":"33908:138:49"}]},"functionSelector":"01ffc9a7","id":16259,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"33739:17:49","nodeType":"FunctionDefinition","overrides":{"id":16244,"nodeType":"OverrideSpecifier","overrides":[{"id":16242,"name":"ERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":4229,"src":"33825:16:49"},{"id":16243,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":440,"src":"33843:23:49"}],"src":"33816:51:49"},"parameters":{"id":16241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16240,"mutability":"mutable","name":"interfaceId","nameLocation":"33764:11:49","nodeType":"VariableDeclaration","scope":16259,"src":"33757:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16239,"name":"bytes4","nodeType":"ElementaryTypeName","src":"33757:6:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"33756:20:49"},"returnParameters":{"id":16247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16259,"src":"33886:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16245,"name":"bool","nodeType":"ElementaryTypeName","src":"33886:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33885:6:49"},"scope":16260,"src":"33730:324:49","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":16261,"src":"2501:31556:49","usedErrors":[12001,12003,12005,12007,12009,12011,12013,12015,12017,12019,12021,12023,12025,12027,12029,12031,12033]}],"src":"35:34024:49"},"id":49},"contracts/staking-positions/PangolinStakingPositionsFunding.sol":{"ast":{"absolutePath":"contracts/staking-positions/PangolinStakingPositionsFunding.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Context":[4686],"ERC165":[5976],"EnumerableSet":[9007],"GenericErrors":[12034],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"IERC20":[1502],"Math":[6853],"PangolinStakingPositionsFunding":[16688],"Strings":[4935]},"id":16689,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":16262,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"35:23:50"},{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","id":16263,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16689,"sourceUnit":441,"src":"62:68:50","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":16264,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16689,"sourceUnit":1503,"src":"132:56:50","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/staking-positions/GenericErrors.sol","file":"./GenericErrors.sol","id":16265,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16689,"sourceUnit":12035,"src":"190:29:50","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":16267,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":440,"src":"796:23:50"},"id":16268,"nodeType":"InheritanceSpecifier","src":"796:23:50"},{"baseName":{"id":16269,"name":"GenericErrors","nodeType":"IdentifierPath","referencedDeclaration":12034,"src":"821:13:50"},"id":16270,"nodeType":"InheritanceSpecifier","src":"821:13:50"}],"canonicalName":"PangolinStakingPositionsFunding","contractDependencies":[],"contractKind":"contract","documentation":{"id":16266,"nodeType":"StructuredDocumentation","src":"223:518:50","text":" @title Pangolin Staking Positions Funding\n @author Shung for Pangolin\n @notice A contract that is only the rewards part of `StakingRewards`.\n @dev The inheriting contract must call `_claim()` to check its reward since the last time the\n      same call was made. Then, based on the reward amount, the inheriting contract shall\n      determine the distribution to stakers. The purpose of this architecture is to separate the\n      logic of funding from the staking and reward distribution."},"fullyImplemented":true,"id":16688,"linearizedBaseContracts":[16688,12034,440,315,5976,5988,538,513,4686],"name":"PangolinStakingPositionsFunding","nameLocation":"761:31:50","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":16271,"nodeType":"StructuredDocumentation","src":"842:71:50","text":"@notice The rewards given out per second during a reward period. "},"id":16273,"mutability":"mutable","name":"_rewardRate","nameLocation":"934:11:50","nodeType":"VariableDeclaration","scope":16688,"src":"919:26:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":16272,"name":"uint80","nodeType":"ElementaryTypeName","src":"919:6:50","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"private"},{"constant":false,"documentation":{"id":16274,"nodeType":"StructuredDocumentation","src":"954:95:50","text":"@notice The timestamp when the last time the rewards were claimed by the child contract. "},"functionSelector":"c0463711","id":16276,"mutability":"mutable","name":"lastUpdate","nameLocation":"1069:10:50","nodeType":"VariableDeclaration","scope":16688,"src":"1055:24:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":16275,"name":"uint40","nodeType":"ElementaryTypeName","src":"1055:6:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"public"},{"constant":false,"documentation":{"id":16277,"nodeType":"StructuredDocumentation","src":"1088:93:50","text":"@notice The timestamp when the current period will end or the latest period has ended. "},"functionSelector":"ebe2b12b","id":16279,"mutability":"mutable","name":"periodFinish","nameLocation":"1201:12:50","nodeType":"VariableDeclaration","scope":16688,"src":"1187:26:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":16278,"name":"uint40","nodeType":"ElementaryTypeName","src":"1187:6:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"public"},{"constant":false,"documentation":{"id":16280,"nodeType":"StructuredDocumentation","src":"1222:49:50","text":"@notice The amount of total rewards added. "},"functionSelector":"098b8858","id":16282,"mutability":"mutable","name":"totalRewardAdded","nameLocation":"1291:16:50","nodeType":"VariableDeclaration","scope":16688,"src":"1277:30:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":16281,"name":"uint96","nodeType":"ElementaryTypeName","src":"1277:6:50","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"public"},{"constant":false,"documentation":{"id":16283,"nodeType":"StructuredDocumentation","src":"1316:91:50","text":"@notice The duration for how long the rewards will last after `addReward` is called. "},"functionSelector":"b470aade","id":16286,"mutability":"mutable","name":"periodDuration","nameLocation":"1428:14:50","nodeType":"VariableDeclaration","scope":16688,"src":"1413:39:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16284,"name":"uint256","nodeType":"ElementaryTypeName","src":"1413:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3134","id":16285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1445:7:50","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_1209600_by_1","typeString":"int_const 1209600"},"value":"14"},"visibility":"public"},{"constant":false,"documentation":{"id":16287,"nodeType":"StructuredDocumentation","src":"1461:63:50","text":"@notice The reward token that is distributed to stakers. "},"functionSelector":"d1af0c7d","id":16290,"mutability":"immutable","name":"rewardsToken","nameLocation":"1554:12:50","nodeType":"VariableDeclaration","scope":16688,"src":"1530:36:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"},"typeName":{"id":16289,"nodeType":"UserDefinedTypeName","pathNode":{"id":16288,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"1530:6:50"},"referencedDeclaration":1502,"src":"1530:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"visibility":"public"},{"constant":true,"documentation":{"id":16291,"nodeType":"StructuredDocumentation","src":"1575:51:50","text":"@dev The minimum duration a period can last. "},"id":16298,"mutability":"constant","name":"MIN_PERIOD_DURATION","nameLocation":"1657:19:50","nodeType":"VariableDeclaration","scope":16688,"src":"1632:56:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16292,"name":"uint256","nodeType":"ElementaryTypeName","src":"1632:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_65537_by_1","typeString":"int_const 65537"},"id":16297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":16295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":16293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1679:1:50","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":16294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1682:2:50","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1679:5:50","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":16296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1687:1:50","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1679:9:50","typeDescriptions":{"typeIdentifier":"t_rational_65537_by_1","typeString":"int_const 65537"}},"visibility":"private"},{"constant":true,"documentation":{"id":16299,"nodeType":"StructuredDocumentation","src":"1697:51:50","text":"@dev The maximum duration a period can last. "},"id":16304,"mutability":"constant","name":"MAX_PERIOD_DURATION","nameLocation":"1779:19:50","nodeType":"VariableDeclaration","scope":16688,"src":"1754:52:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16300,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":16303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":16301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:1:50","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":16302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1804:2:50","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1801:5:50","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"visibility":"private"},{"constant":true,"documentation":{"id":16305,"nodeType":"StructuredDocumentation","src":"1815:71:50","text":"@dev The maximum amount of rewards that can ever be distributed. "},"id":16312,"mutability":"constant","name":"MAX_TOTAL_REWARD","nameLocation":"1917:16:50","nodeType":"VariableDeclaration","scope":16688,"src":"1892:60:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16306,"name":"uint256","nodeType":"ElementaryTypeName","src":"1892:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":16309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1941:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":16308,"name":"uint96","nodeType":"ElementaryTypeName","src":"1941:6:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":16307,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1936:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1936:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":16311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1936:16:50","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"private"},{"constant":true,"documentation":{"id":16313,"nodeType":"StructuredDocumentation","src":"1961:66:50","text":"@dev The privileged role that can call `addReward` function "},"id":16318,"mutability":"constant","name":"FUNDER_ROLE","nameLocation":"2058:11:50","nodeType":"VariableDeclaration","scope":16688,"src":"2033:63:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2033:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"46554e4445525f524f4c45","id":16316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2082:13:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""},"value":"FUNDER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""}],"id":16315,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2072:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":16319,"nodeType":"StructuredDocumentation","src":"2105:69:50","text":"@notice The event emitted when a period is manually cut short. "},"eventSelector":"ac02d07d013ae7c7e3ee940f8df0877c2ab1103bf87ab258ce31665f7111f092","id":16321,"name":"PeriodEnded","nameLocation":"2186:11:50","nodeType":"EventDefinition","parameters":{"id":16320,"nodeType":"ParameterList","parameters":[],"src":"2197:2:50"},"src":"2180:20:50"},{"anonymous":false,"documentation":{"id":16322,"nodeType":"StructuredDocumentation","src":"2208:86:50","text":"@notice The event emitted when a period is started or extended through funding. "},"eventSelector":"de88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d","id":16326,"name":"RewardAdded","nameLocation":"2306:11:50","nodeType":"EventDefinition","parameters":{"id":16325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16324,"indexed":false,"mutability":"mutable","name":"reward","nameLocation":"2326:6:50","nodeType":"VariableDeclaration","scope":16326,"src":"2318:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16323,"name":"uint256","nodeType":"ElementaryTypeName","src":"2318:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2317:16:50"},"src":"2300:34:50"},{"anonymous":false,"documentation":{"id":16327,"nodeType":"StructuredDocumentation","src":"2342:69:50","text":"@notice The event emitted when the period duration is changed. "},"eventSelector":"bd6eb9cf4d6e2902587c57e3163aaafdb46e3b3f2086bdfa75c790228930a9d7","id":16331,"name":"PeriodDurationUpdated","nameLocation":"2423:21:50","nodeType":"EventDefinition","parameters":{"id":16330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16329,"indexed":false,"mutability":"mutable","name":"newDuration","nameLocation":"2453:11:50","nodeType":"VariableDeclaration","scope":16331,"src":"2445:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16328,"name":"uint256","nodeType":"ElementaryTypeName","src":"2445:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2444:21:50"},"src":"2417:49:50"},{"body":{"id":16374,"nodeType":"Block","src":"2765:281:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16339,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16336,"src":"2780:8:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":16342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2800:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2792:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16340,"name":"address","nodeType":"ElementaryTypeName","src":"2792:7:50","typeDescriptions":{}}},"id":16343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2792:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2780:22:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16348,"nodeType":"IfStatement","src":"2776:46:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16345,"name":"NullInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"2811:9:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2811:11:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16347,"nodeType":"RevertStatement","src":"2804:18:50"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":16349,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"2837:15:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"2837:20:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2837:27:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2868:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2837:32:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16357,"nodeType":"IfStatement","src":"2833:59:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16354,"name":"InvalidToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12019,"src":"2878:12:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2878:14:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16356,"nodeType":"RevertStatement","src":"2871:21:50"}},{"expression":{"id":16362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16358,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"2905:12:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16360,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"2927:15:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16359,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"2920:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":16361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2920:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"src":"2905:38:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":16363,"nodeType":"ExpressionStatement","src":"2905:38:50"},{"expression":{"arguments":[{"id":16365,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"2965:18:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16366,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16336,"src":"2985:8:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16364,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"2954:10:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2954:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16368,"nodeType":"ExpressionStatement","src":"2954:40:50"},{"expression":{"arguments":[{"id":16370,"name":"FUNDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16318,"src":"3016:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16371,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16336,"src":"3029:8:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16369,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"3005:10:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3005:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16373,"nodeType":"ExpressionStatement","src":"3005:33:50"}]},"documentation":{"id":16332,"nodeType":"StructuredDocumentation","src":"2474:230:50","text":" @notice Constructor to create PangolinStakingPositionsFunding contract.\n @param newRewardsToken The token used for both for staking and reward.\n @param newAdmin The initial owner of the contract."},"id":16375,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16334,"mutability":"mutable","name":"newRewardsToken","nameLocation":"2730:15:50","nodeType":"VariableDeclaration","scope":16375,"src":"2722:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16333,"name":"address","nodeType":"ElementaryTypeName","src":"2722:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16336,"mutability":"mutable","name":"newAdmin","nameLocation":"2755:8:50","nodeType":"VariableDeclaration","scope":16375,"src":"2747:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16335,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2721:43:50"},"returnParameters":{"id":16338,"nodeType":"ParameterList","parameters":[],"src":"2765:0:50"},"scope":16688,"src":"2710:336:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16414,"nodeType":"Block","src":"3312:498:50","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16384,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"3374:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":16385,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3389:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3389:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3374:30:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16391,"nodeType":"IfStatement","src":"3370:53:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16388,"name":"TooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12005,"src":"3413:8:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3413:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16390,"nodeType":"RevertStatement","src":"3406:17:50"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16392,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"3496:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16393,"name":"MIN_PERIOD_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16298,"src":"3510:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3496:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16398,"nodeType":"IfStatement","src":"3492:59:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16395,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"3538:11:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3538:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16397,"nodeType":"RevertStatement","src":"3531:20:50"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16399,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"3566:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16400,"name":"MAX_PERIOD_DURATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16304,"src":"3580:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3566:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16405,"nodeType":"IfStatement","src":"3562:59:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16402,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12017,"src":"3608:11:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3608:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16404,"nodeType":"RevertStatement","src":"3601:20:50"}},{"expression":{"id":16408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16406,"name":"periodDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16286,"src":"3724:14:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16407,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"3741:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3724:28:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16409,"nodeType":"ExpressionStatement","src":"3724:28:50"},{"eventCall":{"arguments":[{"id":16411,"name":"newDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16378,"src":"3790:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16410,"name":"PeriodDurationUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16331,"src":"3768:21:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":16412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3768:34:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16413,"nodeType":"EmitStatement","src":"3763:39:50"}]},"documentation":{"id":16376,"nodeType":"StructuredDocumentation","src":"3054:166:50","text":" @notice External restricted function to change the reward period duration.\n @param newDuration The duration the feature periods will last."},"functionSelector":"7c2d6e01","id":16415,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16381,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"3292:18:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16382,"kind":"modifierInvocation","modifierName":{"id":16380,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"3283:8:50"},"nodeType":"ModifierInvocation","src":"3283:28:50"}],"name":"setPeriodDuration","nameLocation":"3235:17:50","nodeType":"FunctionDefinition","parameters":{"id":16379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16378,"mutability":"mutable","name":"newDuration","nameLocation":"3261:11:50","nodeType":"VariableDeclaration","scope":16415,"src":"3253:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16377,"name":"uint256","nodeType":"ElementaryTypeName","src":"3253:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3252:21:50"},"returnParameters":{"id":16383,"nodeType":"ParameterList","parameters":[],"src":"3312:0:50"},"scope":16688,"src":"3226:584:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16467,"nodeType":"Block","src":"3975:780:50","statements":[{"assignments":[16423],"declarations":[{"constant":false,"id":16423,"mutability":"mutable","name":"tmpPeriodFinish","nameLocation":"4051:15:50","nodeType":"VariableDeclaration","scope":16467,"src":"4043:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16422,"name":"uint256","nodeType":"ElementaryTypeName","src":"4043:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16425,"initialValue":{"id":16424,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"4069:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"4043:38:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16426,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4147:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4147:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16428,"name":"tmpPeriodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"4166:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4147:34:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16433,"nodeType":"IfStatement","src":"4143:56:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16430,"name":"TooLate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12003,"src":"4190:7:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4190:9:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16432,"nodeType":"RevertStatement","src":"4183:16:50"}},{"id":16466,"nodeType":"UncheckedBlock","src":"4212:536:50","statements":[{"assignments":[16435],"declarations":[{"constant":false,"id":16435,"mutability":"mutable","name":"leftover","nameLocation":"4306:8:50","nodeType":"VariableDeclaration","scope":16466,"src":"4298:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16434,"name":"uint256","nodeType":"ElementaryTypeName","src":"4298:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16443,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16436,"name":"tmpPeriodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"4318:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16437,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4336:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4336:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4318:33:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16440,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4317:35:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":16441,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16273,"src":"4355:11:50","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"4317:49:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4298:68:50"},{"expression":{"id":16449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16444,"name":"totalRewardAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16282,"src":"4457:16:50","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":16447,"name":"leftover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16435,"src":"4484:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4477:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":16445,"name":"uint96","nodeType":"ElementaryTypeName","src":"4477:6:50","typeDescriptions":{}}},"id":16448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4477:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"4457:36:50","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":16450,"nodeType":"ExpressionStatement","src":"4457:36:50"},{"expression":{"id":16457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16451,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"4547:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":16454,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4569:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4569:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4562:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":16452,"name":"uint40","nodeType":"ElementaryTypeName","src":"4562:6:50","typeDescriptions":{}}},"id":16456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4562:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"4547:38:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":16458,"nodeType":"ExpressionStatement","src":"4547:38:50"},{"expression":{"arguments":[{"id":16460,"name":"leftover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16435,"src":"4694:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16459,"name":"_transferToCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16614,"src":"4676:17:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":16461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4676:27:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16462,"nodeType":"ExpressionStatement","src":"4676:27:50"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16463,"name":"PeriodEnded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16321,"src":"4723:11:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":16464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4723:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16465,"nodeType":"EmitStatement","src":"4718:18:50"}]}]},"documentation":{"id":16416,"nodeType":"StructuredDocumentation","src":"3818:92:50","text":"@notice External restricted function to end the period and withdraw leftover rewards. "},"functionSelector":"5faa65ff","id":16468,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16419,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"3955:18:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16420,"kind":"modifierInvocation","modifierName":{"id":16418,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"3946:8:50"},"nodeType":"ModifierInvocation","src":"3946:28:50"}],"name":"endPeriod","nameLocation":"3925:9:50","nodeType":"FunctionDefinition","parameters":{"id":16417,"nodeType":"ParameterList","parameters":[],"src":"3934:2:50"},"returnParameters":{"id":16421,"nodeType":"ParameterList","parameters":[],"src":"3975:0:50"},"scope":16688,"src":"3916:839:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16560,"nodeType":"Block","src":"4988:2198:50","statements":[{"assignments":[16478],"declarations":[{"constant":false,"id":16478,"mutability":"mutable","name":"tmpPeriodDuration","nameLocation":"5066:17:50","nodeType":"VariableDeclaration","scope":16560,"src":"5058:25:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16477,"name":"uint256","nodeType":"ElementaryTypeName","src":"5058:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16480,"initialValue":{"id":16479,"name":"periodDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16286,"src":"5086:14:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5058:42:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16481,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16471,"src":"5157:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16482,"name":"MAX_TOTAL_REWARD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16312,"src":"5166:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:25:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16487,"nodeType":"IfStatement","src":"5153:48:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16484,"name":"Overflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12007,"src":"5191:8:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5191:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16486,"nodeType":"RevertStatement","src":"5184:17:50"}},{"expression":{"id":16493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16488,"name":"totalRewardAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16282,"src":"5303:16:50","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":16491,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16471,"src":"5330:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5323:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":16489,"name":"uint96","nodeType":"ElementaryTypeName","src":"5323:6:50","typeDescriptions":{}}},"id":16492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5323:14:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"5303:34:50","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":16494,"nodeType":"ExpressionStatement","src":"5303:34:50"},{"assignments":[16496],"declarations":[{"constant":false,"id":16496,"mutability":"mutable","name":"newRewardRate","nameLocation":"6009:13:50","nodeType":"VariableDeclaration","scope":16560,"src":"6001:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6001:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16497,"nodeType":"VariableDeclarationStatement","src":"6001:21:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint40","typeString":"uint40"},"id":16500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16498,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16276,"src":"6037:10:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16499,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"6051:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"6037:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16517,"nodeType":"Block","src":"6258:271:50","statements":[{"id":16516,"nodeType":"UncheckedBlock","src":"6273:245:50","statements":[{"assignments":[16504],"declarations":[{"constant":false,"id":16504,"mutability":"mutable","name":"leftover","nameLocation":"6310:8:50","nodeType":"VariableDeclaration","scope":16516,"src":"6302:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16503,"name":"uint256","nodeType":"ElementaryTypeName","src":"6302:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16514,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":16507,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"6330:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint40","typeString":"uint40"}],"id":16506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6322:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16505,"name":"uint256","nodeType":"ElementaryTypeName","src":"6322:7:50","typeDescriptions":{}}},"id":16508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6322:21:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":16509,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16276,"src":"6346:10:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"6322:34:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16511,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6321:36:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":16512,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16273,"src":"6360:11:50","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"6321:50:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6302:69:50"},{"AST":{"nodeType":"YulBlock","src":"6399:104:50","statements":[{"nodeType":"YulAssignment","src":"6422:62:50","value":{"arguments":[{"arguments":[{"name":"amount","nodeType":"YulIdentifier","src":"6447:6:50"},{"name":"leftover","nodeType":"YulIdentifier","src":"6455:8:50"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6443:3:50"},"nodeType":"YulFunctionCall","src":"6443:21:50"},{"name":"tmpPeriodDuration","nodeType":"YulIdentifier","src":"6466:17:50"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6439:3:50"},"nodeType":"YulFunctionCall","src":"6439:45:50"},"variableNames":[{"name":"newRewardRate","nodeType":"YulIdentifier","src":"6422:13:50"}]}]},"evmVersion":"london","externalReferences":[{"declaration":16471,"isOffset":false,"isSlot":false,"src":"6447:6:50","valueSize":1},{"declaration":16504,"isOffset":false,"isSlot":false,"src":"6455:8:50","valueSize":1},{"declaration":16496,"isOffset":false,"isSlot":false,"src":"6422:13:50","valueSize":1},{"declaration":16478,"isOffset":false,"isSlot":false,"src":"6466:17:50","valueSize":1}],"id":16515,"nodeType":"InlineAssembly","src":"6390:113:50"}]}]},"id":16518,"nodeType":"IfStatement","src":"6033:496:50","trueBody":{"id":16502,"nodeType":"Block","src":"6065:187:50","statements":[{"AST":{"nodeType":"YulBlock","src":"6160:81:50","statements":[{"nodeType":"YulAssignment","src":"6179:47:50","value":{"arguments":[{"name":"amount","nodeType":"YulIdentifier","src":"6200:6:50"},{"name":"tmpPeriodDuration","nodeType":"YulIdentifier","src":"6208:17:50"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6196:3:50"},"nodeType":"YulFunctionCall","src":"6196:30:50"},"variableNames":[{"name":"newRewardRate","nodeType":"YulIdentifier","src":"6179:13:50"}]}]},"evmVersion":"london","externalReferences":[{"declaration":16471,"isOffset":false,"isSlot":false,"src":"6200:6:50","valueSize":1},{"declaration":16496,"isOffset":false,"isSlot":false,"src":"6179:13:50","valueSize":1},{"declaration":16478,"isOffset":false,"isSlot":false,"src":"6208:17:50","valueSize":1}],"id":16501,"nodeType":"InlineAssembly","src":"6151:90:50"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16519,"name":"newRewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16496,"src":"6625:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6642:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6625:18:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16525,"nodeType":"IfStatement","src":"6621:41:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16522,"name":"NoEffect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12009,"src":"6652:8:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6652:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16524,"nodeType":"RevertStatement","src":"6645:17:50"}},{"expression":{"id":16531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16526,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16273,"src":"6794:11:50","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16529,"name":"newRewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16496,"src":"6815:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6808:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":16527,"name":"uint80","nodeType":"ElementaryTypeName","src":"6808:6:50","typeDescriptions":{}}},"id":16530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6808:21:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"6794:35:50","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"id":16532,"nodeType":"ExpressionStatement","src":"6794:35:50"},{"id":16551,"nodeType":"UncheckedBlock","src":"6890:146:50","statements":[{"expression":{"id":16539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16533,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16276,"src":"6915:10:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":16536,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6935:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6935:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6928:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":16534,"name":"uint40","nodeType":"ElementaryTypeName","src":"6928:6:50","typeDescriptions":{}}},"id":16538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6928:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"6915:36:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":16540,"nodeType":"ExpressionStatement","src":"6915:36:50"},{"expression":{"id":16549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16541,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"6966:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16544,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6988:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6988:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":16546,"name":"tmpPeriodDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16478,"src":"7006:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:35:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6981:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":16542,"name":"uint40","nodeType":"ElementaryTypeName","src":"6981:6:50","typeDescriptions":{}}},"id":16548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6981:43:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"6966:58:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":16550,"nodeType":"ExpressionStatement","src":"6966:58:50"}]},{"expression":{"arguments":[{"id":16553,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16471,"src":"7136:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16552,"name":"_transferFromCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16636,"src":"7116:19:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":16554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7116:27:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16555,"nodeType":"ExpressionStatement","src":"7116:27:50"},{"eventCall":{"arguments":[{"id":16557,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16471,"src":"7171:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16556,"name":"RewardAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16326,"src":"7159:11:50","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":16558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7159:19:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16559,"nodeType":"EmitStatement","src":"7154:24:50"}]},"documentation":{"id":16469,"nodeType":"StructuredDocumentation","src":"4763:153:50","text":" @notice External restricted function to fund the contract.\n @param amount The amount of reward tokens to add to the contract."},"functionSelector":"74de4ec4","id":16561,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":16474,"name":"FUNDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16318,"src":"4975:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16475,"kind":"modifierInvocation","modifierName":{"id":16473,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"4966:8:50"},"nodeType":"ModifierInvocation","src":"4966:21:50"}],"name":"addReward","nameLocation":"4931:9:50","nodeType":"FunctionDefinition","parameters":{"id":16472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16471,"mutability":"mutable","name":"amount","nameLocation":"4949:6:50","nodeType":"VariableDeclaration","scope":16561,"src":"4941:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16470,"name":"uint256","nodeType":"ElementaryTypeName","src":"4941:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4940:16:50"},"returnParameters":{"id":16476,"nodeType":"ParameterList","parameters":[],"src":"4988:0:50"},"scope":16688,"src":"4922:2264:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16575,"nodeType":"Block","src":"7410:74:50","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16567,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"7428:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":16568,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7443:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7443:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7428:30:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":16572,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16273,"src":"7465:11:50","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"id":16573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7428:48:50","trueExpression":{"hexValue":"30","id":16571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7461:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":16566,"id":16574,"nodeType":"Return","src":"7421:55:50"}]},"documentation":{"id":16562,"nodeType":"StructuredDocumentation","src":"7194:158:50","text":" @notice Public view function to return the total rewards distributed per second.\n @return The reward per second being distributed."},"functionSelector":"7b0a47ee","id":16576,"implemented":true,"kind":"function","modifiers":[],"name":"rewardRate","nameLocation":"7367:10:50","nodeType":"FunctionDefinition","parameters":{"id":16563,"nodeType":"ParameterList","parameters":[],"src":"7377:2:50"},"returnParameters":{"id":16566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16576,"src":"7401:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16564,"name":"uint256","nodeType":"ElementaryTypeName","src":"7401:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7400:9:50"},"scope":16688,"src":"7358:126:50","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16595,"nodeType":"Block","src":"7779:209:50","statements":[{"expression":{"id":16585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16582,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16580,"src":"7868:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":16583,"name":"_pendingRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16687,"src":"7877:15:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":16584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7877:17:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7868:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16586,"nodeType":"ExpressionStatement","src":"7868:26:50"},{"expression":{"id":16593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16587,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16276,"src":"7944:10:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":16590,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"7964:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7964:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7957:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":16588,"name":"uint40","nodeType":"ElementaryTypeName","src":"7957:6:50","typeDescriptions":{}}},"id":16592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7957:23:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"7944:36:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"id":16594,"nodeType":"ExpressionStatement","src":"7944:36:50"}]},"documentation":{"id":16577,"nodeType":"StructuredDocumentation","src":"7492:229:50","text":" @notice Internal function to get the amount of reward tokens to distribute since last call\n         to this function.\n @return reward The amount of reward tokens that is marked for distribution."},"id":16596,"implemented":true,"kind":"function","modifiers":[],"name":"_claim","nameLocation":"7736:6:50","nodeType":"FunctionDefinition","parameters":{"id":16578,"nodeType":"ParameterList","parameters":[],"src":"7742:2:50"},"returnParameters":{"id":16581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16580,"mutability":"mutable","name":"reward","nameLocation":"7771:6:50","nodeType":"VariableDeclaration","scope":16596,"src":"7763:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16579,"name":"uint256","nodeType":"ElementaryTypeName","src":"7763:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7762:16:50"},"scope":16688,"src":"7727:261:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16613,"nodeType":"Block","src":"8212:90:50","statements":[{"condition":{"id":16608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8227:42:50","subExpression":{"arguments":[{"expression":{"id":16604,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8250:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8250:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16606,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16599,"src":"8262:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16602,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8228:12:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":16603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1469,"src":"8228:21:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":16607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8228:41:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16612,"nodeType":"IfStatement","src":"8223:71:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16609,"name":"FailedTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12025,"src":"8278:14:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8278:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16611,"nodeType":"RevertStatement","src":"8271:23:50"}}]},"documentation":{"id":16597,"nodeType":"StructuredDocumentation","src":"7996:158:50","text":" @notice Internal function to transfer `rewardsToken` from the contract to caller.\n @param amount The amount of tokens to transfer."},"id":16614,"implemented":true,"kind":"function","modifiers":[],"name":"_transferToCaller","nameLocation":"8169:17:50","nodeType":"FunctionDefinition","parameters":{"id":16600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16599,"mutability":"mutable","name":"amount","nameLocation":"8195:6:50","nodeType":"VariableDeclaration","scope":16614,"src":"8187:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16598,"name":"uint256","nodeType":"ElementaryTypeName","src":"8187:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8186:16:50"},"returnParameters":{"id":16601,"nodeType":"ParameterList","parameters":[],"src":"8212:0:50"},"scope":16688,"src":"8160:142:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16635,"nodeType":"Block","src":"8528:109:50","statements":[{"condition":{"id":16630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8543:61:50","subExpression":{"arguments":[{"expression":{"id":16622,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8570:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8570:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16626,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8590:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_PangolinStakingPositionsFunding_$16688","typeString":"contract PangolinStakingPositionsFunding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PangolinStakingPositionsFunding_$16688","typeString":"contract PangolinStakingPositionsFunding"}],"id":16625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8582:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16624,"name":"address","nodeType":"ElementaryTypeName","src":"8582:7:50","typeDescriptions":{}}},"id":16627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8582:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16628,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"8597:6:50","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":16620,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8544:12:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":16621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":1501,"src":"8544:25:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":16629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8544:60:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16634,"nodeType":"IfStatement","src":"8539:90:50","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16631,"name":"FailedTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12025,"src":"8613:14:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8613:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16633,"nodeType":"RevertStatement","src":"8606:23:50"}}]},"documentation":{"id":16615,"nodeType":"StructuredDocumentation","src":"8310:158:50","text":" @notice Internal function to transfer `rewardsToken` from caller to the contract.\n @param amount The amount of tokens to transfer."},"id":16636,"implemented":true,"kind":"function","modifiers":[],"name":"_transferFromCaller","nameLocation":"8483:19:50","nodeType":"FunctionDefinition","parameters":{"id":16618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16617,"mutability":"mutable","name":"amount","nameLocation":"8511:6:50","nodeType":"VariableDeclaration","scope":16636,"src":"8503:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16616,"name":"uint256","nodeType":"ElementaryTypeName","src":"8503:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8502:16:50"},"returnParameters":{"id":16619,"nodeType":"ParameterList","parameters":[],"src":"8528:0:50"},"scope":16688,"src":"8474:163:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16686,"nodeType":"Block","src":"8953:1083:50","statements":[{"assignments":[16643],"declarations":[{"constant":false,"id":16643,"mutability":"mutable","name":"tmpPeriodFinish","nameLocation":"9039:15:50","nodeType":"VariableDeclaration","scope":16686,"src":"9031:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16642,"name":"uint256","nodeType":"ElementaryTypeName","src":"9031:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16645,"initialValue":{"id":16644,"name":"periodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"9057:12:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"9031:38:50"},{"assignments":[16647],"declarations":[{"constant":false,"id":16647,"mutability":"mutable","name":"lastTimeRewardApplicable","nameLocation":"9314:24:50","nodeType":"VariableDeclaration","scope":16686,"src":"9306:32:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16646,"name":"uint256","nodeType":"ElementaryTypeName","src":"9306:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16656,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16648,"name":"tmpPeriodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16643,"src":"9341:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":16649,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9359:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9359:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9341:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":16653,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9421:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9421:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9341:95:50","trueExpression":{"id":16652,"name":"tmpPeriodFinish","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16643,"src":"9390:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9306:130:50"},{"assignments":[16658],"declarations":[{"constant":false,"id":16658,"mutability":"mutable","name":"tmpLastUpdate","nameLocation":"9630:13:50","nodeType":"VariableDeclaration","scope":16686,"src":"9622:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16657,"name":"uint256","nodeType":"ElementaryTypeName","src":"9622:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16660,"initialValue":{"id":16659,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16276,"src":"9646:10:50","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"nodeType":"VariableDeclarationStatement","src":"9622:34:50"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16661,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"9802:24:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16662,"name":"tmpLastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"9829:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9802:40:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16675,"nodeType":"IfStatement","src":"9798:183:50","trueBody":{"id":16674,"nodeType":"Block","src":"9844:137:50","statements":[{"id":16673,"nodeType":"UncheckedBlock","src":"9859:111:50","statements":[{"expression":{"id":16671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16664,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16640,"src":"9888:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16665,"name":"lastTimeRewardApplicable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"9899:24:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":16666,"name":"tmpLastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"9926:13:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9899:40:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16668,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9898:42:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":16669,"name":"_rewardRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16273,"src":"9943:11:50","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"9898:56:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9888:66:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16672,"nodeType":"ExpressionStatement","src":"9888:66:50"}]}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16677,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16640,"src":"10000:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10016:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":16679,"name":"uint96","nodeType":"ElementaryTypeName","src":"10016:6:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":16678,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10011:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10011:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":16682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10011:16:50","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"10000:27:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16676,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"9993:6:50","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9993:35:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16685,"nodeType":"ExpressionStatement","src":"9993:35:50"}]},"documentation":{"id":16637,"nodeType":"StructuredDocumentation","src":"8645:235:50","text":" @notice Internal view function to get the amount of accumulated reward tokens since last\n         update time.\n @return rewards The amount of reward tokens that has been accumulated since last update."},"id":16687,"implemented":true,"kind":"function","modifiers":[],"name":"_pendingRewards","nameLocation":"8895:15:50","nodeType":"FunctionDefinition","parameters":{"id":16638,"nodeType":"ParameterList","parameters":[],"src":"8910:2:50"},"returnParameters":{"id":16641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16640,"mutability":"mutable","name":"rewards","nameLocation":"8944:7:50","nodeType":"VariableDeclaration","scope":16687,"src":"8936:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16639,"name":"uint256","nodeType":"ElementaryTypeName","src":"8936:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8935:17:50"},"scope":16688,"src":"8886:1150:50","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":16689,"src":"743:9296:50","usedErrors":[12001,12003,12005,12007,12009,12011,12013,12015,12017,12019,12021,12023,12025,12027,12029,12031,12033]}],"src":"35:10006:50"},"id":50},"contracts/staking-positions/ReentrancyGuard.sol":{"ast":{"absolutePath":"contracts/staking-positions/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[16730]},"id":16731,"license":"AGPLv3","nodeType":"SourceUnit","nodes":[{"id":16690,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"36:23:51"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":16691,"nodeType":"StructuredDocumentation","src":"63:194:51","text":" @title ReentrancyGuard\n @author Shung for Pangolin\n @author Modified from Solmate\n         (https://github.com/Rari-Capital/solmate/blob/main/src/utils/ReentrancyGuard.sol)"},"fullyImplemented":true,"id":16730,"linearizedBaseContracts":[16730],"name":"ReentrancyGuard","nameLocation":"277:15:51","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":16694,"mutability":"mutable","name":"locked","nameLocation":"316:6:51","nodeType":"VariableDeclaration","scope":16730,"src":"300:26:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16692,"name":"uint256","nodeType":"ElementaryTypeName","src":"300:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":16693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"325:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"errorSelector":"ab143c06","id":16696,"name":"Reentrancy","nameLocation":"341:10:51","nodeType":"ErrorDefinition","parameters":{"id":16695,"nodeType":"ParameterList","parameters":[],"src":"351:2:51"},"src":"335:19:51"},{"body":{"id":16706,"nodeType":"Block","src":"399:55:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16699,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16694,"src":"414:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":16700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"424:1:51","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"414:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16705,"nodeType":"IfStatement","src":"410:36:51","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16702,"name":"Reentrancy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16696,"src":"434:10:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":16703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"434:12:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16704,"nodeType":"RevertStatement","src":"427:19:51"}}]},"id":16707,"implemented":true,"kind":"function","modifiers":[],"name":"_notEntered","nameLocation":"371:11:51","nodeType":"FunctionDefinition","parameters":{"id":16697,"nodeType":"ParameterList","parameters":[],"src":"382:2:51"},"returnParameters":{"id":16698,"nodeType":"ParameterList","parameters":[],"src":"399:0:51"},"scope":16730,"src":"362:92:51","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16721,"nodeType":"Block","src":"486:86:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16709,"name":"_notEntered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16707,"src":"497:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":16710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"497:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16711,"nodeType":"ExpressionStatement","src":"497:13:51"},{"expression":{"id":16714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16712,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16694,"src":"521:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":16713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"530:1:51","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"521:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16715,"nodeType":"ExpressionStatement","src":"521:10:51"},{"id":16716,"nodeType":"PlaceholderStatement","src":"542:1:51"},{"expression":{"id":16719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16717,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16694,"src":"554:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":16718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"563:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"554:10:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16720,"nodeType":"ExpressionStatement","src":"554:10:51"}]},"id":16722,"name":"nonReentrant","nameLocation":"471:12:51","nodeType":"ModifierDefinition","parameters":{"id":16708,"nodeType":"ParameterList","parameters":[],"src":"483:2:51"},"src":"462:110:51","virtual":false,"visibility":"internal"},{"body":{"id":16728,"nodeType":"Block","src":"602:44:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16724,"name":"_notEntered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16707,"src":"613:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"613:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16726,"nodeType":"ExpressionStatement","src":"613:13:51"},{"id":16727,"nodeType":"PlaceholderStatement","src":"637:1:51"}]},"id":16729,"name":"notEntered","nameLocation":"589:10:51","nodeType":"ModifierDefinition","parameters":{"id":16723,"nodeType":"ParameterList","parameters":[],"src":"599:2:51"},"src":"580:66:51","virtual":false,"visibility":"internal"}],"scope":16731,"src":"259:390:51","usedErrors":[16696]}],"src":"36:615:51"},"id":51},"contracts/staking-positions/RewardFundingForwarder.sol":{"ast":{"absolutePath":"contracts/staking-positions/RewardFundingForwarder.sol","exportedSymbols":{"IERC20":[1502],"IPangoChef":[16753],"RewardFundingForwarder":[16877]},"id":16878,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":16732,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"35:23:52"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":16733,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16878,"sourceUnit":1503,"src":"62:56:52","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPangoChef","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":16753,"linearizedBaseContracts":[16753],"name":"IPangoChef","nameLocation":"132:10:52","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d1af0c7d","id":16738,"implemented":false,"kind":"function","modifiers":[],"name":"rewardsToken","nameLocation":"159:12:52","nodeType":"FunctionDefinition","parameters":{"id":16734,"nodeType":"ParameterList","parameters":[],"src":"171:2:52"},"returnParameters":{"id":16737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16738,"src":"197:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16735,"name":"address","nodeType":"ElementaryTypeName","src":"197:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"196:9:52"},"scope":16753,"src":"150:56:52","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"74de4ec4","id":16743,"implemented":false,"kind":"function","modifiers":[],"name":"addReward","nameLocation":"223:9:52","nodeType":"FunctionDefinition","parameters":{"id":16741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16740,"mutability":"mutable","name":"amount","nameLocation":"241:6:52","nodeType":"VariableDeclaration","scope":16743,"src":"233:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16739,"name":"uint256","nodeType":"ElementaryTypeName","src":"233:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"232:16:52"},"returnParameters":{"id":16742,"nodeType":"ParameterList","parameters":[],"src":"257:0:52"},"scope":16753,"src":"214:44:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"91d14854","id":16752,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"275:7:52","nodeType":"FunctionDefinition","parameters":{"id":16748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16745,"mutability":"mutable","name":"role","nameLocation":"291:4:52","nodeType":"VariableDeclaration","scope":16752,"src":"283:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16747,"mutability":"mutable","name":"account","nameLocation":"305:7:52","nodeType":"VariableDeclaration","scope":16752,"src":"297:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16746,"name":"address","nodeType":"ElementaryTypeName","src":"297:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"282:31:52"},"returnParameters":{"id":16751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16752,"src":"337:4:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16749,"name":"bool","nodeType":"ElementaryTypeName","src":"337:4:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"336:6:52"},"scope":16753,"src":"266:77:52","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":16878,"src":"122:224:52","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"RewardFundingForwarder","contractDependencies":[],"contractKind":"contract","documentation":{"id":16754,"nodeType":"StructuredDocumentation","src":"350:370:52","text":" @author shung for Pangolin\n @notice\n Funder -> RewardFundingForwarder -> PangoChef\n               OR\n Funder -> RewardFundingForwarder -> PangolinStakingPositions\n Funder is any contract that was written for Synthetix' StakingRewards, or for MiniChef.\n RewardFundingForwarder provides compatibility for these old funding contracts."},"fullyImplemented":true,"id":16877,"linearizedBaseContracts":[16877],"name":"RewardFundingForwarder","nameLocation":"731:22:52","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"1870510b","id":16757,"mutability":"immutable","name":"pangoChef","nameLocation":"789:9:52","nodeType":"VariableDeclaration","scope":16877,"src":"761:37:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"},"typeName":{"id":16756,"nodeType":"UserDefinedTypeName","pathNode":{"id":16755,"name":"IPangoChef","nodeType":"IdentifierPath","referencedDeclaration":16753,"src":"761:10:52"},"referencedDeclaration":16753,"src":"761:10:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"visibility":"public"},{"constant":false,"functionSelector":"d1af0c7d","id":16759,"mutability":"immutable","name":"rewardsToken","nameLocation":"830:12:52","nodeType":"VariableDeclaration","scope":16877,"src":"805:37:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16758,"name":"address","nodeType":"ElementaryTypeName","src":"805:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"id":16764,"mutability":"constant","name":"FUNDER_ROLE","nameLocation":"874:11:52","nodeType":"VariableDeclaration","scope":16877,"src":"849:63:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"849:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"46554e4445525f524f4c45","id":16762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"898:13:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""},"value":"FUNDER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb","typeString":"literal_string \"FUNDER_ROLE\""}],"id":16761,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"888:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"888:24:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"body":{"id":16777,"nodeType":"Block","src":"943:98:52","statements":[{"expression":{"arguments":[{"arguments":[{"id":16769,"name":"FUNDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16764,"src":"980:11:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":16770,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"993:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"993:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16767,"name":"pangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"962:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"id":16768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":16752,"src":"962:17:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":16772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"962:42:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e617574686f72697a6564","id":16773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1006:14:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348","typeString":"literal_string \"unauthorized\""},"value":"unauthorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348","typeString":"literal_string \"unauthorized\""}],"id":16766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"954:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"954:67:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16775,"nodeType":"ExpressionStatement","src":"954:67:52"},{"id":16776,"nodeType":"PlaceholderStatement","src":"1032:1:52"}]},"id":16778,"name":"onlyFunder","nameLocation":"930:10:52","nodeType":"ModifierDefinition","parameters":{"id":16765,"nodeType":"ParameterList","parameters":[],"src":"940:2:52"},"src":"921:120:52","virtual":false,"visibility":"internal"},{"body":{"id":16822,"nodeType":"Block","src":"1083:314:52","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":16784,"name":"newPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16780,"src":"1102:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1102:17:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1102:24:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1130:1:52","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1102:29:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"656d70747920636f6e7472616374","id":16789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1133:16:52","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5","typeString":"literal_string \"empty contract\""},"value":"empty contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5","typeString":"literal_string \"empty contract\""}],"id":16783,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1094:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:56:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16791,"nodeType":"ExpressionStatement","src":"1094:56:52"},{"assignments":[16793],"declarations":[{"constant":false,"id":16793,"mutability":"mutable","name":"newRewardsToken","nameLocation":"1169:15:52","nodeType":"VariableDeclaration","scope":16822,"src":"1161:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16792,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":16799,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":16795,"name":"newPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16780,"src":"1198:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16794,"name":"IPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16753,"src":"1187:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangoChef_$16753_$","typeString":"type(contract IPangoChef)"}},"id":16796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1187:24:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"id":16797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rewardsToken","nodeType":"MemberAccess","referencedDeclaration":16738,"src":"1187:37:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":16798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1187:39:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1161:65:52"},{"expression":{"arguments":[{"id":16804,"name":"newPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16780,"src":"1269:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":16807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1288:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1288:7:52","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":16805,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1283:4:52","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1283:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":16809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"1283:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":16801,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16793,"src":"1244:15:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16800,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1237:6:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":16802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1237:23:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":16803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"1237:31:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":16810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1237:64:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16811,"nodeType":"ExpressionStatement","src":"1237:64:52"},{"expression":{"id":16816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16812,"name":"pangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"1312:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":16814,"name":"newPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16780,"src":"1335:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16813,"name":"IPangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16753,"src":"1324:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPangoChef_$16753_$","typeString":"type(contract IPangoChef)"}},"id":16815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1324:24:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"src":"1312:36:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"id":16817,"nodeType":"ExpressionStatement","src":"1312:36:52"},{"expression":{"id":16820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16818,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16759,"src":"1359:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16819,"name":"newRewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16793,"src":"1374:15:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1359:30:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16821,"nodeType":"ExpressionStatement","src":"1359:30:52"}]},"id":16823,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16780,"mutability":"mutable","name":"newPangoChef","nameLocation":"1069:12:52","nodeType":"VariableDeclaration","scope":16823,"src":"1061:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16779,"name":"address","nodeType":"ElementaryTypeName","src":"1061:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1060:22:52"},"returnParameters":{"id":16782,"nodeType":"ParameterList","parameters":[],"src":"1083:0:52"},"scope":16877,"src":"1049:348:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":16836,"nodeType":"Block","src":"1469:46:52","statements":[{"expression":{"arguments":[{"id":16833,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"1500:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16830,"name":"pangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"1480:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"id":16832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addReward","nodeType":"MemberAccess","referencedDeclaration":16743,"src":"1480:19:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":16834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1480:27:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16835,"nodeType":"ExpressionStatement","src":"1480:27:52"}]},"functionSelector":"3c6b16ab","id":16837,"implemented":true,"kind":"function","modifiers":[{"id":16828,"kind":"modifierInvocation","modifierName":{"id":16827,"name":"onlyFunder","nodeType":"IdentifierPath","referencedDeclaration":16778,"src":"1458:10:52"},"nodeType":"ModifierInvocation","src":"1458:10:52"}],"name":"notifyRewardAmount","nameLocation":"1414:18:52","nodeType":"FunctionDefinition","parameters":{"id":16826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16825,"mutability":"mutable","name":"amount","nameLocation":"1441:6:52","nodeType":"VariableDeclaration","scope":16837,"src":"1433:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16824,"name":"uint256","nodeType":"ElementaryTypeName","src":"1433:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1432:16:52"},"returnParameters":{"id":16829,"nodeType":"ParameterList","parameters":[],"src":"1469:0:52"},"scope":16877,"src":"1405:110:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16848,"nodeType":"Block","src":"1578:36:52","statements":[{"expression":{"arguments":[{"id":16845,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16839,"src":"1599:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16844,"name":"addReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16876,"src":"1589:9:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":16846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1589:17:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16847,"nodeType":"ExpressionStatement","src":"1589:17:52"}]},"functionSelector":"28662551","id":16849,"implemented":true,"kind":"function","modifiers":[],"name":"fundRewards","nameLocation":"1532:11:52","nodeType":"FunctionDefinition","parameters":{"id":16842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16839,"mutability":"mutable","name":"amount","nameLocation":"1552:6:52","nodeType":"VariableDeclaration","scope":16849,"src":"1544:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16838,"name":"uint256","nodeType":"ElementaryTypeName","src":"1544:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16849,"src":"1560:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16840,"name":"uint256","nodeType":"ElementaryTypeName","src":"1560:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1543:25:52"},"returnParameters":{"id":16843,"nodeType":"ParameterList","parameters":[],"src":"1578:0:52"},"scope":16877,"src":"1523:91:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16875,"nodeType":"Block","src":"1675:125:52","statements":[{"expression":{"arguments":[{"expression":{"id":16860,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1720:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1720:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16864,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1740:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_RewardFundingForwarder_$16877","typeString":"contract RewardFundingForwarder"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RewardFundingForwarder_$16877","typeString":"contract RewardFundingForwarder"}],"id":16863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1732:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16862,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:52","typeDescriptions":{}}},"id":16865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1732:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16866,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16851,"src":"1747:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":16857,"name":"rewardsToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16759,"src":"1693:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16856,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1686:6:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$1502_$","typeString":"type(contract IERC20)"}},"id":16858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1686:20:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$1502","typeString":"contract IERC20"}},"id":16859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":1501,"src":"1686:33:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1686:68:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16868,"nodeType":"ExpressionStatement","src":"1686:68:52"},{"expression":{"arguments":[{"id":16872,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16851,"src":"1785:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16869,"name":"pangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16757,"src":"1765:9:52","typeDescriptions":{"typeIdentifier":"t_contract$_IPangoChef_$16753","typeString":"contract IPangoChef"}},"id":16871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addReward","nodeType":"MemberAccess","referencedDeclaration":16743,"src":"1765:19:52","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":16873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1765:27:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16874,"nodeType":"ExpressionStatement","src":"1765:27:52"}]},"functionSelector":"74de4ec4","id":16876,"implemented":true,"kind":"function","modifiers":[{"id":16854,"kind":"modifierInvocation","modifierName":{"id":16853,"name":"onlyFunder","nodeType":"IdentifierPath","referencedDeclaration":16778,"src":"1664:10:52"},"nodeType":"ModifierInvocation","src":"1664:10:52"}],"name":"addReward","nameLocation":"1631:9:52","nodeType":"FunctionDefinition","parameters":{"id":16852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16851,"mutability":"mutable","name":"amount","nameLocation":"1649:6:52","nodeType":"VariableDeclaration","scope":16876,"src":"1641:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16850,"name":"uint256","nodeType":"ElementaryTypeName","src":"1641:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1640:16:52"},"returnParameters":{"id":16855,"nodeType":"ParameterList","parameters":[],"src":"1675:0:52"},"scope":16877,"src":"1622:178:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":16878,"src":"722:1081:52","usedErrors":[]}],"src":"35:1770:52"},"id":52},"contracts/staking-positions/RewarderViaMultiplierForPangoChefOnSongbird.sol":{"ast":{"absolutePath":"contracts/staking-positions/RewarderViaMultiplierForPangoChefOnSongbird.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Context":[4686],"ERC165":[5976],"ERC20":[9395],"EnumerableSet":[9007],"GenericErrors":[12034],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"IPangolinFactory":[18099],"IPangolinPair":[18128],"IRewarder":[18144],"IWAVAX":[18150],"Math":[6853],"PangoChef":[14244],"PangoChefFunding":[15015],"ReentrancyGuard":[16730],"RewarderViaMultiplierForPangoChefOnSongbird":[17390],"SafeExternalCalls":[12066],"SafeTransferLib":[9480],"Strings":[4935]},"id":17391,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16879,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"33:23:53"},{"absolutePath":"contracts/staking-positions/PangoChef.sol","file":"./PangoChef.sol","id":16880,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17391,"sourceUnit":14245,"src":"60:25:53","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16881,"name":"IRewarder","nodeType":"IdentifierPath","referencedDeclaration":18144,"src":"145:9:53"},"id":16882,"nodeType":"InheritanceSpecifier","src":"145:9:53"}],"canonicalName":"RewarderViaMultiplierForPangoChefOnSongbird","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":17390,"linearizedBaseContracts":[17390,18144],"name":"RewarderViaMultiplierForPangoChefOnSongbird","nameLocation":"98:43:53","nodeType":"ContractDefinition","nodes":[{"global":false,"id":16886,"libraryName":{"id":16883,"name":"SafeTransferLib","nodeType":"IdentifierPath","referencedDeclaration":9480,"src":"168:15:53"},"nodeType":"UsingForDirective","src":"162:32:53","typeName":{"id":16885,"nodeType":"UserDefinedTypeName","pathNode":{"id":16884,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"188:5:53"},"referencedDeclaration":9395,"src":"188:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}},{"constant":false,"functionSelector":"7bb7bed1","id":16890,"mutability":"mutable","name":"rewardTokens","nameLocation":"217:12:53","nodeType":"VariableDeclaration","scope":17390,"src":"202:27:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[]"},"typeName":{"baseType":{"id":16888,"nodeType":"UserDefinedTypeName","pathNode":{"id":16887,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"202:5:53"},"referencedDeclaration":9395,"src":"202:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":16889,"nodeType":"ArrayTypeName","src":"202:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage_ptr","typeString":"contract ERC20[]"}},"visibility":"public"},{"constant":false,"functionSelector":"981962a7","id":16893,"mutability":"mutable","name":"rewardMultipliers","nameLocation":"253:17:53","nodeType":"VariableDeclaration","scope":17390,"src":"236:34:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":16891,"name":"uint256","nodeType":"ElementaryTypeName","src":"236:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16892,"nodeType":"ArrayTypeName","src":"236:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"public"},{"constant":false,"id":16895,"mutability":"immutable","name":"CHEF_V2","nameLocation":"303:7:53","nodeType":"VariableDeclaration","scope":17390,"src":"277:33:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16894,"name":"address","nodeType":"ElementaryTypeName","src":"277:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":16897,"mutability":"immutable","name":"BASE_REWARD_TOKEN_DIVISOR","nameLocation":"343:25:53","nodeType":"VariableDeclaration","scope":17390,"src":"317:51:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16896,"name":"uint256","nodeType":"ElementaryTypeName","src":"317:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":true,"id":16900,"mutability":"constant","name":"MAX_REWARDS","nameLocation":"508:11:53","nodeType":"VariableDeclaration","scope":17390,"src":"483:42:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16898,"name":"uint256","nodeType":"ElementaryTypeName","src":"483:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":16899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"522:3:53","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"private"},{"constant":false,"documentation":{"id":16901,"nodeType":"StructuredDocumentation","src":"534:113:53","text":"@dev Additional reward quantities that might be owed to users trying to claim after funds have been exhausted"},"id":16907,"mutability":"mutable","name":"rewardDebts","nameLocation":"709:11:53","nodeType":"VariableDeclaration","scope":17390,"src":"653:67:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":16906,"keyType":{"id":16902,"name":"address","nodeType":"ElementaryTypeName","src":"661:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"653:47:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":16905,"keyType":{"id":16903,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"672:27:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":16904,"name":"uint256","nodeType":"ElementaryTypeName","src":"691:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"documentation":{"id":16908,"nodeType":"StructuredDocumentation","src":"729:76:53","text":"@dev Previous sum of entry times to check if staking duration was reset."},"id":16915,"mutability":"mutable","name":"usersValueVariables","nameLocation":"884:19:53","nodeType":"VariableDeclaration","scope":17390,"src":"811:92:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_ValueVariables_$12097_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct PangoChef.ValueVariables))"},"typeName":{"id":16914,"keyType":{"id":16909,"name":"uint256","nodeType":"ElementaryTypeName","src":"819:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"811:64:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_ValueVariables_$12097_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct PangoChef.ValueVariables))"},"valueType":{"id":16913,"keyType":{"id":16910,"name":"address","nodeType":"ElementaryTypeName","src":"838:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"830:44:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValueVariables_$12097_storage_$","typeString":"mapping(address => struct PangoChef.ValueVariables)"},"valueType":{"id":16912,"nodeType":"UserDefinedTypeName","pathNode":{"id":16911,"name":"PangoChef.ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"849:24:53"},"referencedDeclaration":12097,"src":"849:24:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}}}},"visibility":"private"},{"body":{"id":17019,"nodeType":"Block","src":"1597:1003:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16931,"name":"_rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16920,"src":"1630:13:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[] memory"}},"id":16932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1630:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1653:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1630:24:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16935,"name":"_rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16920,"src":"1671:13:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[] memory"}},"id":16936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1671:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":16937,"name":"MAX_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16900,"src":"1695:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1671:35:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1630:76:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16940,"name":"_rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16920,"src":"1723:13:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[] memory"}},"id":16941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1723:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16942,"name":"_rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16923,"src":"1747:18:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":16943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1747:25:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1723:49:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1630:142:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c696420696e707574206c656e67746873","id":16946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1787:46:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c1b2670b1c034bdc586d4c4c2027d826cf6e20c0858290dabfc75b746ac9e9b","typeString":"literal_string \"RewarderViaMultiplier::Invalid input lengths\""},"value":"RewarderViaMultiplier::Invalid input lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c1b2670b1c034bdc586d4c4c2027d826cf6e20c0858290dabfc75b746ac9e9b","typeString":"literal_string \"RewarderViaMultiplier::Invalid input lengths\""}],"id":16930,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1608:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1608:236:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16948,"nodeType":"ExpressionStatement","src":"1608:236:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16950,"name":"_baseRewardTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16925,"src":"1879:24:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3737","id":16951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1907:2:53","typeDescriptions":{"typeIdentifier":"t_rational_77_by_1","typeString":"int_const 77"},"value":"77"},"src":"1879:30:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c696420626173652072657761726420746f6b656e20646563696d616c73","id":16953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1924:59:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ad21c71912dab131d520aa785e1e91d59501c9a6c3922905ac25a032fdbe0c8","typeString":"literal_string \"RewarderViaMultiplier::Invalid base reward token decimals\""},"value":"RewarderViaMultiplier::Invalid base reward token decimals"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2ad21c71912dab131d520aa785e1e91d59501c9a6c3922905ac25a032fdbe0c8","typeString":"literal_string \"RewarderViaMultiplier::Invalid base reward token decimals\""}],"id":16949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1857:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1857:137:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16955,"nodeType":"ExpressionStatement","src":"1857:137:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16957,"name":"_chefV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16927,"src":"2029:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":16960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2048:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2040:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16958,"name":"address","nodeType":"ElementaryTypeName","src":"2040:7:53","typeDescriptions":{}}},"id":16961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2040:10:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2029:21:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c696420636865662061646472657373","id":16963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2065:45:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4e78b74300fa63485578eb710a08b46cf09c7db2c43b33da296feadee82c030","typeString":"literal_string \"RewarderViaMultiplier::Invalid chef address\""},"value":"RewarderViaMultiplier::Invalid chef address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4e78b74300fa63485578eb710a08b46cf09c7db2c43b33da296feadee82c030","typeString":"literal_string \"RewarderViaMultiplier::Invalid chef address\""}],"id":16956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2007:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2007:114:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16965,"nodeType":"ExpressionStatement","src":"2007:114:53"},{"body":{"id":16999,"nodeType":"Block","src":"2181:225:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"baseExpression":{"id":16979,"name":"_rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16920,"src":"2212:13:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[] memory"}},"id":16981,"indexExpression":{"id":16980,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16967,"src":"2226:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2212:16:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}],"id":16978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2204:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16977,"name":"address","nodeType":"ElementaryTypeName","src":"2204:7:53","typeDescriptions":{}}},"id":16982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2204:25:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"2204:30:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":16984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2204:37:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2245:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2204:42:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a43616e6e6f7420726577617264207a65726f2061646472657373","id":16987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2248:51:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_44553d1def395a1d46a38ccd648dbb9ebf8e03d1167d802f3fc2cb1984dff866","typeString":"literal_string \"RewarderViaMultiplier::Cannot reward zero address\""},"value":"RewarderViaMultiplier::Cannot reward zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44553d1def395a1d46a38ccd648dbb9ebf8e03d1167d802f3fc2cb1984dff866","typeString":"literal_string \"RewarderViaMultiplier::Cannot reward zero address\""}],"id":16976,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2196:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2196:104:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16989,"nodeType":"ExpressionStatement","src":"2196:104:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16991,"name":"_rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16923,"src":"2323:18:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":16993,"indexExpression":{"id":16992,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16967,"src":"2342:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2323:21:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2347:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2323:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c6964206d756c7469706c696572","id":16996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2350:43:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_fce1791cbc48c3c3c1d27e19f2328ab885b99a698504b450b8f9c19adc8111b5","typeString":"literal_string \"RewarderViaMultiplier::Invalid multiplier\""},"value":"RewarderViaMultiplier::Invalid multiplier"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fce1791cbc48c3c3c1d27e19f2328ab885b99a698504b450b8f9c19adc8111b5","typeString":"literal_string \"RewarderViaMultiplier::Invalid multiplier\""}],"id":16990,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2315:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2315:79:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16998,"nodeType":"ExpressionStatement","src":"2315:79:53"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16969,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16967,"src":"2150:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":16970,"name":"_rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16920,"src":"2154:13:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[] memory"}},"id":16971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2154:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2150:24:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17000,"initializationExpression":{"assignments":[16967],"declarations":[{"constant":false,"id":16967,"mutability":"mutable","name":"i","nameLocation":"2147:1:53","nodeType":"VariableDeclaration","scope":17000,"src":"2139:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16966,"name":"uint256","nodeType":"ElementaryTypeName","src":"2139:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16968,"nodeType":"VariableDeclarationStatement","src":"2139:9:53"},"loopExpression":{"expression":{"id":16974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2176:3:53","subExpression":{"id":16973,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16967,"src":"2178:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16975,"nodeType":"ExpressionStatement","src":"2176:3:53"},"nodeType":"ForStatement","src":"2134:272:53"},{"expression":{"id":17003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17001,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"2418:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17002,"name":"_rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16920,"src":"2433:13:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[] memory"}},"src":"2418:28:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17004,"nodeType":"ExpressionStatement","src":"2418:28:53"},{"expression":{"id":17007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17005,"name":"rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16893,"src":"2457:17:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17006,"name":"_rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16923,"src":"2477:18:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2457:38:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":17008,"nodeType":"ExpressionStatement","src":"2457:38:53"},{"expression":{"id":17013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17009,"name":"BASE_REWARD_TOKEN_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16897,"src":"2506:25:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":17010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2534:2:53","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":17011,"name":"_baseRewardTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16925,"src":"2540:24:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2534:30:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2506:58:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17014,"nodeType":"ExpressionStatement","src":"2506:58:53"},{"expression":{"id":17017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17015,"name":"CHEF_V2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"2575:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17016,"name":"_chefV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16927,"src":"2585:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2575:17:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17018,"nodeType":"ExpressionStatement","src":"2575:17:53"}]},"documentation":{"id":16916,"nodeType":"StructuredDocumentation","src":"912:505:53","text":"@param _rewardTokens The address of each additional reward token\n @param _rewardMultipliers The amount of each additional reward token to be claimable for every 1 base reward (PNG) being claimed\n @param _baseRewardTokenDecimals The decimal precision of the base reward (PNG) being emitted\n @param _chefV2 The address of the chef contract where the base reward (PNG) is being emitted\n @notice Each reward multiplier should have a precision matching that individual token"},"id":17020,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":16928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16920,"mutability":"mutable","name":"_rewardTokens","nameLocation":"1461:13:53","nodeType":"VariableDeclaration","scope":17020,"src":"1446:28:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[]"},"typeName":{"baseType":{"id":16918,"nodeType":"UserDefinedTypeName","pathNode":{"id":16917,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"1446:5:53"},"referencedDeclaration":9395,"src":"1446:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":16919,"nodeType":"ArrayTypeName","src":"1446:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage_ptr","typeString":"contract ERC20[]"}},"visibility":"internal"},{"constant":false,"id":16923,"mutability":"mutable","name":"_rewardMultipliers","nameLocation":"1502:18:53","nodeType":"VariableDeclaration","scope":17020,"src":"1485:35:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16921,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16922,"nodeType":"ArrayTypeName","src":"1485:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":16925,"mutability":"mutable","name":"_baseRewardTokenDecimals","nameLocation":"1539:24:53","nodeType":"VariableDeclaration","scope":17020,"src":"1531:32:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16924,"name":"uint256","nodeType":"ElementaryTypeName","src":"1531:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16927,"mutability":"mutable","name":"_chefV2","nameLocation":"1582:7:53","nodeType":"VariableDeclaration","scope":17020,"src":"1574:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16926,"name":"address","nodeType":"ElementaryTypeName","src":"1574:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1435:161:53"},"returnParameters":{"id":16929,"nodeType":"ParameterList","parameters":[],"src":"1597:0:53"},"scope":17390,"src":"1423:1177:53","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[18143],"body":{"id":17199,"nodeType":"Block","src":"2798:1650:53","statements":[{"assignments":[17040],"declarations":[{"constant":false,"id":17040,"mutability":"mutable","name":"newUserValueVariables","nameLocation":"3080:21:53","nodeType":"VariableDeclaration","scope":17199,"src":"3048:53:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":17039,"nodeType":"UserDefinedTypeName","pathNode":{"id":17038,"name":"PangoChef.ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"3048:24:53"},"referencedDeclaration":12097,"src":"3048:24:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":17049,"initialValue":{"expression":{"arguments":[{"id":17045,"name":"pid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17022,"src":"3131:3:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17046,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"3136:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":17042,"name":"CHEF_V2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"3114:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17041,"name":"PangoChef","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14244,"src":"3104:9:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PangoChef_$14244_$","typeString":"type(contract PangoChef)"}},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3104:18:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PangoChef_$14244","typeString":"contract PangoChef"}},"id":17044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getUser","nodeType":"MemberAccess","referencedDeclaration":12586,"src":"3104:26:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_address_$returns$_t_struct$_User_$12117_memory_ptr_$","typeString":"function (uint256,address) view external returns (struct PangoChef.User memory)"}},"id":17047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3104:37:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_User_$12117_memory_ptr","typeString":"struct PangoChef.User memory"}},"id":17048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":12105,"src":"3104:52:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables memory"}},"nodeType":"VariableDeclarationStatement","src":"3048:108:53"},{"assignments":[17054],"declarations":[{"constant":false,"id":17054,"mutability":"mutable","name":"previousUserValueVariables","nameLocation":"3199:26:53","nodeType":"VariableDeclaration","scope":17199,"src":"3167:58:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables"},"typeName":{"id":17053,"nodeType":"UserDefinedTypeName","pathNode":{"id":17052,"name":"PangoChef.ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":12097,"src":"3167:24:53"},"referencedDeclaration":12097,"src":"3167:24:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage_ptr","typeString":"struct PangoChef.ValueVariables"}},"visibility":"internal"}],"id":17060,"initialValue":{"baseExpression":{"baseExpression":{"id":17055,"name":"usersValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16915,"src":"3228:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_ValueVariables_$12097_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct PangoChef.ValueVariables storage ref))"}},"id":17057,"indexExpression":{"id":17056,"name":"pid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17022,"src":"3248:3:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3228:24:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValueVariables_$12097_storage_$","typeString":"mapping(address => struct PangoChef.ValueVariables storage ref)"}},"id":17059,"indexExpression":{"id":17058,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"3253:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3228:30:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3167:91:53"},{"expression":{"id":17067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":17061,"name":"usersValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16915,"src":"3269:19:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_ValueVariables_$12097_storage_$_$","typeString":"mapping(uint256 => mapping(address => struct PangoChef.ValueVariables storage ref))"}},"id":17064,"indexExpression":{"id":17062,"name":"pid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17022,"src":"3289:3:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3269:24:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValueVariables_$12097_storage_$","typeString":"mapping(address => struct PangoChef.ValueVariables storage ref)"}},"id":17065,"indexExpression":{"id":17063,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"3294:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3269:30:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17066,"name":"newUserValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17040,"src":"3302:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables memory"}},"src":"3269:54:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_storage","typeString":"struct PangoChef.ValueVariables storage ref"}},"id":17068,"nodeType":"ExpressionStatement","src":"3269:54:53"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17069,"name":"destructiveAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17026,"src":"3338:17:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17070,"name":"newBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17030,"src":"3359:10:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3373:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3359:15:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3338:36:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17105,"nodeType":"IfStatement","src":"3334:409:53","trueBody":{"id":17104,"nodeType":"Block","src":"3376:367:53","statements":[{"assignments":[17075],"declarations":[{"constant":false,"id":17075,"mutability":"mutable","name":"equalBalance","nameLocation":"3396:12:53","nodeType":"VariableDeclaration","scope":17104,"src":"3391:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17074,"name":"bool","nodeType":"ElementaryTypeName","src":"3391:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":17081,"initialValue":{"commonType":{"typeIdentifier":"t_uint104","typeString":"uint104"},"id":17080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17076,"name":"newUserValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17040,"src":"3411:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables memory"}},"id":17077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"3411:29:53","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17078,"name":"previousUserValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"3444:26:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables memory"}},"id":17079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"3444:34:53","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"3411:67:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3391:87:53"},{"assignments":[17083],"declarations":[{"constant":false,"id":17083,"mutability":"mutable","name":"equalSumOfEntryTimes","nameLocation":"3498:20:53","nodeType":"VariableDeclaration","scope":17104,"src":"3493:25:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17082,"name":"bool","nodeType":"ElementaryTypeName","src":"3493:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":17089,"initialValue":{"commonType":{"typeIdentifier":"t_uint152","typeString":"uint152"},"id":17088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17084,"name":"newUserValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17040,"src":"3521:21:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables memory"}},"id":17085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"3521:37:53","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17086,"name":"previousUserValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"3562:26:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables memory"}},"id":17087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":12096,"src":"3562:42:53","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"3521:83:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3493:111:53"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint104","typeString":"uint104"},"id":17093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17090,"name":"previousUserValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"3623:26:53","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$12097_memory_ptr","typeString":"struct PangoChef.ValueVariables memory"}},"id":17091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":12094,"src":"3623:34:53","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3661:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3623:39:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17094,"name":"equalBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17075,"src":"3667:12:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":17095,"name":"equalSumOfEntryTimes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17083,"src":"3683:20:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3667:36:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17097,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3666:38:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3623:81:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17103,"nodeType":"IfStatement","src":"3619:112:53","trueBody":{"expression":{"id":17101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17099,"name":"destructiveAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17026,"src":"3706:17:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":17100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3726:5:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3706:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17102,"nodeType":"ExpressionStatement","src":"3706:25:53"}}]}},{"body":{"id":17197,"nodeType":"Block","src":"3801:640:53","statements":[{"assignments":[17117],"declarations":[{"constant":false,"id":17117,"mutability":"mutable","name":"pendingReward","nameLocation":"3824:13:53","nodeType":"VariableDeclaration","scope":17197,"src":"3816:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17116,"name":"uint256","nodeType":"ElementaryTypeName","src":"3816:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17132,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":17118,"name":"rewardDebts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16907,"src":"3840:11:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":17120,"indexExpression":{"id":17119,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"3852:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3840:17:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17122,"indexExpression":{"id":17121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"3858:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3840:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17123,"name":"rewardAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"3864:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":17124,"name":"rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16893,"src":"3879:17:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":17126,"indexExpression":{"id":17125,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"3897:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3879:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3864:35:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17128,"name":"BASE_REWARD_TOKEN_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16897,"src":"3902:25:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3864:63:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17130,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3863:65:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3840:88:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3816:112:53"},{"assignments":[17134],"declarations":[{"constant":false,"id":17134,"mutability":"mutable","name":"rewardBal","nameLocation":"3951:9:53","nodeType":"VariableDeclaration","scope":17197,"src":"3943:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17133,"name":"uint256","nodeType":"ElementaryTypeName","src":"3943:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17144,"initialValue":{"arguments":[{"arguments":[{"id":17141,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3997:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_RewarderViaMultiplierForPangoChefOnSongbird_$17390","typeString":"contract RewarderViaMultiplierForPangoChefOnSongbird"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RewarderViaMultiplierForPangoChefOnSongbird_$17390","typeString":"contract RewarderViaMultiplierForPangoChefOnSongbird"}],"id":17140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3989:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17139,"name":"address","nodeType":"ElementaryTypeName","src":"3989:7:53","typeDescriptions":{}}},"id":17142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3989:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":17135,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"3963:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17137,"indexExpression":{"id":17136,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"3976:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3963:15:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":17138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":9038,"src":"3963:25:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":17143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3963:40:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3943:60:53"},{"condition":{"id":17146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4022:18:53","subExpression":{"id":17145,"name":"destructiveAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17026,"src":"4023:17:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17156,"name":"pendingReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"4123:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":17157,"name":"rewardBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17134,"src":"4139:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4123:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17194,"nodeType":"Block","src":"4303:127:53","statements":[{"expression":{"id":17184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":17178,"name":"rewardDebts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16907,"src":"4322:11:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":17181,"indexExpression":{"id":17179,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"4334:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4322:17:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17182,"indexExpression":{"id":17180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"4340:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4322:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":17183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4345:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4322:24:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17185,"nodeType":"ExpressionStatement","src":"4322:24:53"},{"expression":{"arguments":[{"id":17190,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"4394:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17191,"name":"pendingReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"4400:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":17186,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"4365:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17188,"indexExpression":{"id":17187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"4378:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4365:15:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":17189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"4365:28:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":17192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4365:49:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17193,"nodeType":"ExpressionStatement","src":"4365:49:53"}]},"id":17195,"nodeType":"IfStatement","src":"4119:311:53","trueBody":{"id":17177,"nodeType":"Block","src":"4150:147:53","statements":[{"expression":{"id":17167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":17159,"name":"rewardDebts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16907,"src":"4169:11:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":17162,"indexExpression":{"id":17160,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"4181:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4169:17:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17163,"indexExpression":{"id":17161,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"4187:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4169:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17164,"name":"pendingReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"4192:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":17165,"name":"rewardBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17134,"src":"4208:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4192:25:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4169:48:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17168,"nodeType":"ExpressionStatement","src":"4169:48:53"},{"expression":{"arguments":[{"id":17173,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"4265:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17174,"name":"rewardBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17134,"src":"4271:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":17169,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"4236:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17171,"indexExpression":{"id":17170,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"4249:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4236:15:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":17172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":9459,"src":"4236:28:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$9395_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9395_$","typeString":"function (contract ERC20,address,uint256)"}},"id":17175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4236:45:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17176,"nodeType":"ExpressionStatement","src":"4236:45:53"}]}},"id":17196,"nodeType":"IfStatement","src":"4018:412:53","trueBody":{"id":17155,"nodeType":"Block","src":"4042:71:53","statements":[{"expression":{"id":17153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":17147,"name":"rewardDebts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16907,"src":"4061:11:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":17150,"indexExpression":{"id":17148,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17024,"src":"4073:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4061:17:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17151,"indexExpression":{"id":17149,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"4079:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4061:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17152,"name":"pendingReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17117,"src":"4084:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4061:36:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17154,"nodeType":"ExpressionStatement","src":"4061:36:53"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"3771:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17110,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"3775:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3775:19:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3771:23:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17198,"initializationExpression":{"assignments":[17107],"declarations":[{"constant":false,"id":17107,"mutability":"mutable","name":"i","nameLocation":"3768:1:53","nodeType":"VariableDeclaration","scope":17198,"src":"3760:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17106,"name":"uint256","nodeType":"ElementaryTypeName","src":"3760:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17108,"nodeType":"VariableDeclarationStatement","src":"3760:9:53"},"loopExpression":{"expression":{"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3796:3:53","subExpression":{"id":17113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17107,"src":"3798:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17115,"nodeType":"ExpressionStatement","src":"3796:3:53"},"nodeType":"ForStatement","src":"3755:686:53"}]},"functionSelector":"ba782bee","id":17200,"implemented":true,"kind":"function","modifiers":[{"id":17033,"kind":"modifierInvocation","modifierName":{"id":17032,"name":"onlyMCV2","nodeType":"IdentifierPath","referencedDeclaration":17389,"src":"2771:8:53"},"nodeType":"ModifierInvocation","src":"2771:8:53"}],"name":"onReward","nameLocation":"2617:8:53","nodeType":"FunctionDefinition","overrides":{"id":17034,"nodeType":"OverrideSpecifier","overrides":[],"src":"2780:8:53"},"parameters":{"id":17031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17022,"mutability":"mutable","name":"pid","nameLocation":"2644:3:53","nodeType":"VariableDeclaration","scope":17200,"src":"2636:11:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17021,"name":"uint256","nodeType":"ElementaryTypeName","src":"2636:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17024,"mutability":"mutable","name":"user","nameLocation":"2666:4:53","nodeType":"VariableDeclaration","scope":17200,"src":"2658:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17023,"name":"address","nodeType":"ElementaryTypeName","src":"2658:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17026,"mutability":"mutable","name":"destructiveAction","nameLocation":"2686:17:53","nodeType":"VariableDeclaration","scope":17200,"src":"2681:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17025,"name":"bool","nodeType":"ElementaryTypeName","src":"2681:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17028,"mutability":"mutable","name":"rewardAmount","nameLocation":"2722:12:53","nodeType":"VariableDeclaration","scope":17200,"src":"2714:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17027,"name":"uint256","nodeType":"ElementaryTypeName","src":"2714:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17030,"mutability":"mutable","name":"newBalance","nameLocation":"2753:10:53","nodeType":"VariableDeclaration","scope":17200,"src":"2745:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17029,"name":"uint256","nodeType":"ElementaryTypeName","src":"2745:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2625:145:53"},"returnParameters":{"id":17035,"nodeType":"ParameterList","parameters":[],"src":"2798:0:53"},"scope":17390,"src":"2608:1840:53","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17289,"nodeType":"Block","src":"4664:543:53","statements":[{"expression":{"id":17224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17217,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17215,"src":"4675:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":17221,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"4699:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4699:19:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4685:13:53","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":17218,"name":"uint256","nodeType":"ElementaryTypeName","src":"4689:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17219,"nodeType":"ArrayTypeName","src":"4689:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":17223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4685:34:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4675:44:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17225,"nodeType":"ExpressionStatement","src":"4675:44:53"},{"body":{"id":17283,"nodeType":"Block","src":"4776:383:53","statements":[{"assignments":[17237],"declarations":[{"constant":false,"id":17237,"mutability":"mutable","name":"pendingReward","nameLocation":"4799:13:53","nodeType":"VariableDeclaration","scope":17283,"src":"4791:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17236,"name":"uint256","nodeType":"ElementaryTypeName","src":"4791:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17252,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":17238,"name":"rewardDebts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16907,"src":"4815:11:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":17240,"indexExpression":{"id":17239,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17205,"src":"4827:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4815:17:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17242,"indexExpression":{"id":17241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"4833:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4815:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17243,"name":"rewardAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17207,"src":"4839:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":17244,"name":"rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16893,"src":"4854:17:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":17246,"indexExpression":{"id":17245,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"4872:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4854:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4839:35:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17248,"name":"BASE_REWARD_TOKEN_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16897,"src":"4877:25:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4839:63:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4838:65:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4815:88:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4791:112:53"},{"assignments":[17254],"declarations":[{"constant":false,"id":17254,"mutability":"mutable","name":"rewardBal","nameLocation":"4926:9:53","nodeType":"VariableDeclaration","scope":17283,"src":"4918:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17253,"name":"uint256","nodeType":"ElementaryTypeName","src":"4918:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17264,"initialValue":{"arguments":[{"arguments":[{"id":17261,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4972:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_RewarderViaMultiplierForPangoChefOnSongbird_$17390","typeString":"contract RewarderViaMultiplierForPangoChefOnSongbird"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RewarderViaMultiplierForPangoChefOnSongbird_$17390","typeString":"contract RewarderViaMultiplierForPangoChefOnSongbird"}],"id":17260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4964:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17259,"name":"address","nodeType":"ElementaryTypeName","src":"4964:7:53","typeDescriptions":{}}},"id":17262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4964:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":17255,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"4938:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17257,"indexExpression":{"id":17256,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"4951:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4938:15:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":17258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":9038,"src":"4938:25:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":17263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4938:40:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4918:60:53"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17265,"name":"pendingReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17237,"src":"4997:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":17266,"name":"rewardBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17254,"src":"5013:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4997:25:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17281,"nodeType":"Block","src":"5087:61:53","statements":[{"expression":{"id":17279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17275,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17215,"src":"5106:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17277,"indexExpression":{"id":17276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"5114:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5106:10:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17278,"name":"pendingReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17237,"src":"5119:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5106:26:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17280,"nodeType":"ExpressionStatement","src":"5106:26:53"}]},"id":17282,"nodeType":"IfStatement","src":"4993:155:53","trueBody":{"id":17274,"nodeType":"Block","src":"5024:57:53","statements":[{"expression":{"id":17272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17268,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17215,"src":"5043:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17270,"indexExpression":{"id":17269,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"5051:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5043:10:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17271,"name":"rewardBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17254,"src":"5056:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5043:22:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17273,"nodeType":"ExpressionStatement","src":"5043:22:53"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"4746:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17230,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"4750:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4750:19:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4746:23:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17284,"initializationExpression":{"assignments":[17227],"declarations":[{"constant":false,"id":17227,"mutability":"mutable","name":"i","nameLocation":"4743:1:53","nodeType":"VariableDeclaration","scope":17284,"src":"4735:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17226,"name":"uint256","nodeType":"ElementaryTypeName","src":"4735:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17228,"nodeType":"VariableDeclarationStatement","src":"4735:9:53"},"loopExpression":{"expression":{"id":17234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4771:3:53","subExpression":{"id":17233,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"4773:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17235,"nodeType":"ExpressionStatement","src":"4771:3:53"},"nodeType":"ForStatement","src":"4730:429:53"},{"expression":{"components":[{"id":17285,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"5177:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},{"id":17286,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17215,"src":"5191:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":17287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5176:23:53","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_contract$_ERC20_$9395_$dyn_storage_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(contract ERC20[] storage ref,uint256[] memory)"}},"functionReturnParameters":17216,"id":17288,"nodeType":"Return","src":"5169:30:53"}]},"documentation":{"id":17201,"nodeType":"StructuredDocumentation","src":"4456:62:53","text":"@notice Shows pending tokens that can be currently claimed"},"functionSelector":"d63b3c49","id":17290,"implemented":true,"kind":"function","modifiers":[],"name":"pendingTokens","nameLocation":"4533:13:53","nodeType":"FunctionDefinition","parameters":{"id":17208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17290,"src":"4547:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17202,"name":"uint256","nodeType":"ElementaryTypeName","src":"4547:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17205,"mutability":"mutable","name":"user","nameLocation":"4564:4:53","nodeType":"VariableDeclaration","scope":17290,"src":"4556:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17204,"name":"address","nodeType":"ElementaryTypeName","src":"4556:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17207,"mutability":"mutable","name":"rewardAmount","nameLocation":"4578:12:53","nodeType":"VariableDeclaration","scope":17290,"src":"4570:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17206,"name":"uint256","nodeType":"ElementaryTypeName","src":"4570:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4546:45:53"},"returnParameters":{"id":17216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17212,"mutability":"mutable","name":"tokens","nameLocation":"4630:6:53","nodeType":"VariableDeclaration","scope":17290,"src":"4615:21:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[]"},"typeName":{"baseType":{"id":17210,"nodeType":"UserDefinedTypeName","pathNode":{"id":17209,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"4615:5:53"},"referencedDeclaration":9395,"src":"4615:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":17211,"nodeType":"ArrayTypeName","src":"4615:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage_ptr","typeString":"contract ERC20[]"}},"visibility":"internal"},{"constant":false,"id":17215,"mutability":"mutable","name":"amounts","nameLocation":"4655:7:53","nodeType":"VariableDeclaration","scope":17290,"src":"4638:24:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":17213,"name":"uint256","nodeType":"ElementaryTypeName","src":"4638:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17214,"nodeType":"ArrayTypeName","src":"4638:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4614:49:53"},"scope":17390,"src":"4524:683:53","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17355,"nodeType":"Block","src":"5555:340:53","statements":[{"expression":{"id":17314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17307,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17305,"src":"5566:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":17311,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"5590:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5590:19:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5576:13:53","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":17308,"name":"uint256","nodeType":"ElementaryTypeName","src":"5580:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17309,"nodeType":"ArrayTypeName","src":"5580:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":17313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5576:34:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"5566:44:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17315,"nodeType":"ExpressionStatement","src":"5566:44:53"},{"body":{"id":17349,"nodeType":"Block","src":"5667:180:53","statements":[{"assignments":[17327],"declarations":[{"constant":false,"id":17327,"mutability":"mutable","name":"pendingReward","nameLocation":"5690:13:53","nodeType":"VariableDeclaration","scope":17349,"src":"5682:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17326,"name":"uint256","nodeType":"ElementaryTypeName","src":"5682:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17342,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":17328,"name":"rewardDebts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16907,"src":"5706:11:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":17330,"indexExpression":{"id":17329,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17295,"src":"5718:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5706:17:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17332,"indexExpression":{"id":17331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17317,"src":"5724:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5706:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17333,"name":"rewardAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17297,"src":"5730:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":17334,"name":"rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16893,"src":"5745:17:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":17336,"indexExpression":{"id":17335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17317,"src":"5763:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5745:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5730:35:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17338,"name":"BASE_REWARD_TOKEN_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16897,"src":"5768:25:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5730:63:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5729:65:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5706:88:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5682:112:53"},{"expression":{"id":17347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17343,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17305,"src":"5809:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":17345,"indexExpression":{"id":17344,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17317,"src":"5817:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5809:10:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17346,"name":"pendingReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17327,"src":"5822:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5809:26:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17348,"nodeType":"ExpressionStatement","src":"5809:26:53"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17319,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17317,"src":"5637:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17320,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"5641:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"id":17321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5641:19:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5637:23:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17350,"initializationExpression":{"assignments":[17317],"declarations":[{"constant":false,"id":17317,"mutability":"mutable","name":"i","nameLocation":"5634:1:53","nodeType":"VariableDeclaration","scope":17350,"src":"5626:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17316,"name":"uint256","nodeType":"ElementaryTypeName","src":"5626:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17318,"nodeType":"VariableDeclarationStatement","src":"5626:9:53"},"loopExpression":{"expression":{"id":17324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5662:3:53","subExpression":{"id":17323,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17317,"src":"5664:1:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17325,"nodeType":"ExpressionStatement","src":"5662:3:53"},"nodeType":"ForStatement","src":"5621:226:53"},{"expression":{"components":[{"id":17351,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"5865:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},{"id":17352,"name":"amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17305,"src":"5879:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":17353,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5864:23:53","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_contract$_ERC20_$9395_$dyn_storage_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(contract ERC20[] storage ref,uint256[] memory)"}},"functionReturnParameters":17306,"id":17354,"nodeType":"Return","src":"5857:30:53"}]},"documentation":{"id":17291,"nodeType":"StructuredDocumentation","src":"5215:190:53","text":"@notice Shows pending tokens including rewards accrued after the funding has been exhausted\n @notice these extra rewards could be claimed if more funding is added to the contract"},"functionSelector":"f2f3e82d","id":17356,"implemented":true,"kind":"function","modifiers":[],"name":"pendingTokensDebt","nameLocation":"5420:17:53","nodeType":"FunctionDefinition","parameters":{"id":17298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17356,"src":"5438:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17292,"name":"uint256","nodeType":"ElementaryTypeName","src":"5438:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17295,"mutability":"mutable","name":"user","nameLocation":"5455:4:53","nodeType":"VariableDeclaration","scope":17356,"src":"5447:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17294,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17297,"mutability":"mutable","name":"rewardAmount","nameLocation":"5469:12:53","nodeType":"VariableDeclaration","scope":17356,"src":"5461:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17296,"name":"uint256","nodeType":"ElementaryTypeName","src":"5461:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5437:45:53"},"returnParameters":{"id":17306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17302,"mutability":"mutable","name":"tokens","nameLocation":"5521:6:53","nodeType":"VariableDeclaration","scope":17356,"src":"5506:21:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[]"},"typeName":{"baseType":{"id":17300,"nodeType":"UserDefinedTypeName","pathNode":{"id":17299,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"5506:5:53"},"referencedDeclaration":9395,"src":"5506:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":17301,"nodeType":"ArrayTypeName","src":"5506:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage_ptr","typeString":"contract ERC20[]"}},"visibility":"internal"},{"constant":false,"id":17305,"mutability":"mutable","name":"amounts","nameLocation":"5546:7:53","nodeType":"VariableDeclaration","scope":17356,"src":"5529:24:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":17303,"name":"uint256","nodeType":"ElementaryTypeName","src":"5529:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17304,"nodeType":"ArrayTypeName","src":"5529:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5505:49:53"},"scope":17390,"src":"5411:484:53","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17366,"nodeType":"Block","src":"6041:38:53","statements":[{"expression":{"id":17364,"name":"rewardTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"6059:12:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage","typeString":"contract ERC20[] storage ref"}},"functionReturnParameters":17363,"id":17365,"nodeType":"Return","src":"6052:19:53"}]},"documentation":{"id":17357,"nodeType":"StructuredDocumentation","src":"5903:66:53","text":"@notice Overloaded getter for easy access to the reward tokens"},"functionSelector":"c4f59f9b","id":17367,"implemented":true,"kind":"function","modifiers":[],"name":"getRewardTokens","nameLocation":"5984:15:53","nodeType":"FunctionDefinition","parameters":{"id":17358,"nodeType":"ParameterList","parameters":[],"src":"5999:2:53"},"returnParameters":{"id":17363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17367,"src":"6025:14:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr","typeString":"contract ERC20[]"},"typeName":{"baseType":{"id":17360,"nodeType":"UserDefinedTypeName","pathNode":{"id":17359,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":9395,"src":"6025:5:53"},"referencedDeclaration":9395,"src":"6025:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$9395","typeString":"contract ERC20"}},"id":17361,"nodeType":"ArrayTypeName","src":"6025:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_ERC20_$9395_$dyn_storage_ptr","typeString":"contract ERC20[]"}},"visibility":"internal"}],"src":"6024:16:53"},"scope":17390,"src":"5975:104:53","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17376,"nodeType":"Block","src":"6237:43:53","statements":[{"expression":{"id":17374,"name":"rewardMultipliers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16893,"src":"6255:17:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"functionReturnParameters":17373,"id":17375,"nodeType":"Return","src":"6248:24:53"}]},"documentation":{"id":17368,"nodeType":"StructuredDocumentation","src":"6087:71:53","text":"@notice Overloaded getter for easy access to the reward multipliers"},"functionSelector":"37e211ba","id":17377,"implemented":true,"kind":"function","modifiers":[],"name":"getRewardMultipliers","nameLocation":"6173:20:53","nodeType":"FunctionDefinition","parameters":{"id":17369,"nodeType":"ParameterList","parameters":[],"src":"6193:2:53"},"returnParameters":{"id":17373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17377,"src":"6219:16:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":17370,"name":"uint256","nodeType":"ElementaryTypeName","src":"6219:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17371,"nodeType":"ArrayTypeName","src":"6219:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6218:18:53"},"scope":17390,"src":"6164:116:53","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17388,"nodeType":"Block","src":"6306:135:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17380,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6339:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6339:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17382,"name":"CHEF_V2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16895,"src":"6353:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6339:21:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e2e","id":17384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6375:35:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_3119d70f54e65f7fc05dc3fff78f1ae1d0c82eaf50b477c40260718556fca1cd","typeString":"literal_string \"Only MCV2 can call this function.\""},"value":"Only MCV2 can call this function."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3119d70f54e65f7fc05dc3fff78f1ae1d0c82eaf50b477c40260718556fca1cd","typeString":"literal_string \"Only MCV2 can call this function.\""}],"id":17379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6317:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6317:104:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17386,"nodeType":"ExpressionStatement","src":"6317:104:53"},{"id":17387,"nodeType":"PlaceholderStatement","src":"6432:1:53"}]},"id":17389,"name":"onlyMCV2","nameLocation":"6297:8:53","nodeType":"ModifierDefinition","parameters":{"id":17378,"nodeType":"ParameterList","parameters":[],"src":"6306:0:53"},"src":"6288:153:53","virtual":false,"visibility":"internal"}],"scope":17391,"src":"89:6357:53","usedErrors":[]}],"src":"33:6415:53"},"id":53},"contracts/staking-positions/TokenMetadata.sol":{"ast":{"absolutePath":"contracts/staking-positions/TokenMetadata.sol","exportedSymbols":{"AccessControl":[315],"AccessControlEnumerable":[440],"Base64":[4664],"Context":[4686],"ERC165":[5976],"EnumerableSet":[9007],"IAccessControl":[513],"IAccessControlEnumerable":[538],"IERC165":[5988],"IPangolinStakingPositions":[17441],"Math":[6853],"Strings":[4935],"TokenMetadata":[18087]},"id":18088,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":17392,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"35:23:54"},{"absolutePath":"@openzeppelin/contracts/utils/Base64.sol","file":"@openzeppelin/contracts/utils/Base64.sol","id":17393,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18088,"sourceUnit":4665,"src":"62:50:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":17394,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18088,"sourceUnit":4936,"src":"114:51:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","id":17395,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18088,"sourceUnit":441,"src":"167:68:54","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinStakingPositions","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":17441,"linearizedBaseContracts":[17441],"name":"IPangolinStakingPositions","nameLocation":"249:25:54","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IPangolinStakingPositions.ValueVariables","id":17400,"members":[{"constant":false,"id":17397,"mutability":"mutable","name":"balance","nameLocation":"322:7:54","nodeType":"VariableDeclaration","scope":17400,"src":"315:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":17396,"name":"uint96","nodeType":"ElementaryTypeName","src":"315:6:54","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":17399,"mutability":"mutable","name":"sumOfEntryTimes","nameLocation":"348:15:54","nodeType":"VariableDeclaration","scope":17400,"src":"340:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":17398,"name":"uint160","nodeType":"ElementaryTypeName","src":"340:7:54","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"name":"ValueVariables","nameLocation":"289:14:54","nodeType":"StructDefinition","scope":17441,"src":"282:89:54","visibility":"public"},{"canonicalName":"IPangolinStakingPositions.RewardSummations","id":17405,"members":[{"constant":false,"id":17402,"mutability":"mutable","name":"idealPosition","nameLocation":"422:13:54","nodeType":"VariableDeclaration","scope":17405,"src":"414:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17401,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17404,"mutability":"mutable","name":"rewardPerValue","nameLocation":"454:14:54","nodeType":"VariableDeclaration","scope":17405,"src":"446:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17403,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"RewardSummations","nameLocation":"386:16:54","nodeType":"StructDefinition","scope":17441,"src":"379:97:54","visibility":"public"},{"canonicalName":"IPangolinStakingPositions.Position","id":17418,"members":[{"constant":false,"id":17408,"mutability":"mutable","name":"valueVariables","nameLocation":"526:14:54","nodeType":"VariableDeclaration","scope":17418,"src":"511:29:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$17400_storage_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables"},"typeName":{"id":17407,"nodeType":"UserDefinedTypeName","pathNode":{"id":17406,"name":"ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":17400,"src":"511:14:54"},"referencedDeclaration":17400,"src":"511:14:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$17400_storage_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables"}},"visibility":"internal"},{"constant":false,"id":17411,"mutability":"mutable","name":"rewardSummationsPaid","nameLocation":"568:20:54","nodeType":"VariableDeclaration","scope":17418,"src":"551:37:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$17405_storage_ptr","typeString":"struct IPangolinStakingPositions.RewardSummations"},"typeName":{"id":17410,"nodeType":"UserDefinedTypeName","pathNode":{"id":17409,"name":"RewardSummations","nodeType":"IdentifierPath","referencedDeclaration":17405,"src":"551:16:54"},"referencedDeclaration":17405,"src":"551:16:54","typeDescriptions":{"typeIdentifier":"t_struct$_RewardSummations_$17405_storage_ptr","typeString":"struct IPangolinStakingPositions.RewardSummations"}},"visibility":"internal"},{"constant":false,"id":17413,"mutability":"mutable","name":"previousValues","nameLocation":"607:14:54","nodeType":"VariableDeclaration","scope":17418,"src":"599:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":17412,"name":"uint160","nodeType":"ElementaryTypeName","src":"599:7:54","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":17415,"mutability":"mutable","name":"lastUpdate","nameLocation":"639:10:54","nodeType":"VariableDeclaration","scope":17418,"src":"632:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":17414,"name":"uint48","nodeType":"ElementaryTypeName","src":"632:6:54","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":17417,"mutability":"mutable","name":"lastDevaluation","nameLocation":"667:15:54","nodeType":"VariableDeclaration","scope":17418,"src":"660:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":17416,"name":"uint48","nodeType":"ElementaryTypeName","src":"660:6:54","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"Position","nameLocation":"491:8:54","nodeType":"StructDefinition","scope":17441,"src":"484:206:54","visibility":"public"},{"functionSelector":"99fbab88","id":17426,"implemented":false,"kind":"function","modifiers":[],"name":"positions","nameLocation":"707:9:54","nodeType":"FunctionDefinition","parameters":{"id":17421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17420,"mutability":"mutable","name":"positionId","nameLocation":"725:10:54","nodeType":"VariableDeclaration","scope":17426,"src":"717:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17419,"name":"uint256","nodeType":"ElementaryTypeName","src":"717:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"716:20:54"},"returnParameters":{"id":17425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17426,"src":"760:15:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$17418_memory_ptr","typeString":"struct IPangolinStakingPositions.Position"},"typeName":{"id":17423,"nodeType":"UserDefinedTypeName","pathNode":{"id":17422,"name":"Position","nodeType":"IdentifierPath","referencedDeclaration":17418,"src":"760:8:54"},"referencedDeclaration":17418,"src":"760:8:54","typeDescriptions":{"typeIdentifier":"t_struct$_Position_$17418_storage_ptr","typeString":"struct IPangolinStakingPositions.Position"}},"visibility":"internal"}],"src":"759:17:54"},"scope":17441,"src":"698:79:54","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"496cea98","id":17433,"implemented":false,"kind":"function","modifiers":[],"name":"positionPendingRewards","nameLocation":"794:22:54","nodeType":"FunctionDefinition","parameters":{"id":17429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17428,"mutability":"mutable","name":"positionId","nameLocation":"825:10:54","nodeType":"VariableDeclaration","scope":17433,"src":"817:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17427,"name":"uint256","nodeType":"ElementaryTypeName","src":"817:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"816:20:54"},"returnParameters":{"id":17432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17433,"src":"860:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17430,"name":"uint256","nodeType":"ElementaryTypeName","src":"860:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"859:9:54"},"scope":17441,"src":"785:84:54","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"468cc41e","id":17440,"implemented":false,"kind":"function","modifiers":[],"name":"positionRewardRate","nameLocation":"886:18:54","nodeType":"FunctionDefinition","parameters":{"id":17436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17435,"mutability":"mutable","name":"positionId","nameLocation":"913:10:54","nodeType":"VariableDeclaration","scope":17440,"src":"905:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17434,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"904:20:54"},"returnParameters":{"id":17439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17440,"src":"948:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17437,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"947:9:54"},"scope":17441,"src":"877:80:54","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":18088,"src":"239:721:54","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":17442,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":440,"src":"990:23:54"},"id":17443,"nodeType":"InheritanceSpecifier","src":"990:23:54"}],"canonicalName":"TokenMetadata","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":18087,"linearizedBaseContracts":[18087,440,315,5976,5988,538,513,4686],"name":"TokenMetadata","nameLocation":"973:13:54","nodeType":"ContractDefinition","nodes":[{"global":false,"id":17446,"libraryName":{"id":17444,"name":"Strings","nodeType":"IdentifierPath","referencedDeclaration":4935,"src":"1027:7:54"},"nodeType":"UsingForDirective","src":"1021:26:54","typeName":{"id":17445,"name":"uint256","nodeType":"ElementaryTypeName","src":"1039:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"functionSelector":"38841782","id":17451,"mutability":"constant","name":"METADATA_ROLE","nameLocation":"1079:13:54","nodeType":"VariableDeclaration","scope":18087,"src":"1055:66:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1055:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d455441444154415f524f4c45","id":17449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1105:15:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f80","typeString":"literal_string \"METADATA_ROLE\""},"value":"METADATA_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f80","typeString":"literal_string \"METADATA_ROLE\""}],"id":17448,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1095:9:54","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1095:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":17466,"mutability":"mutable","name":"exponents","nameLocation":"1148:9:54","nodeType":"VariableDeclaration","scope":18087,"src":"1128:115:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10]"},"typeName":{"baseType":{"id":17452,"name":"uint256","nodeType":"ElementaryTypeName","src":"1128:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17454,"length":{"hexValue":"3130","id":17453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1136:2:54","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"ArrayTypeName","src":"1128:11:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage_ptr","typeString":"uint256[10]"}},"value":{"components":[{"hexValue":"30","id":17455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1162:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"325f373138","id":17456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1165:5:54","typeDescriptions":{"typeIdentifier":"t_rational_2718_by_1","typeString":"int_const 2718"},"value":"2_718"},{"hexValue":"375f333839","id":17457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1172:5:54","typeDescriptions":{"typeIdentifier":"t_rational_7389_by_1","typeString":"int_const 7389"},"value":"7_389"},{"hexValue":"32305f303836","id":17458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1179:6:54","typeDescriptions":{"typeIdentifier":"t_rational_20086_by_1","typeString":"int_const 20086"},"value":"20_086"},{"hexValue":"35345f353938","id":17459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1187:6:54","typeDescriptions":{"typeIdentifier":"t_rational_54598_by_1","typeString":"int_const 54598"},"value":"54_598"},{"hexValue":"3134385f343133","id":17460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1195:7:54","typeDescriptions":{"typeIdentifier":"t_rational_148413_by_1","typeString":"int_const 148413"},"value":"148_413"},{"hexValue":"3430335f343239","id":17461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1204:7:54","typeDescriptions":{"typeIdentifier":"t_rational_403429_by_1","typeString":"int_const 403429"},"value":"403_429"},{"hexValue":"313039365f363333","id":17462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1213:8:54","typeDescriptions":{"typeIdentifier":"t_rational_1096633_by_1","typeString":"int_const 1096633"},"value":"1096_633"},{"hexValue":"323938305f393538","id":17463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1223:8:54","typeDescriptions":{"typeIdentifier":"t_rational_2980958_by_1","typeString":"int_const 2980958"},"value":"2980_958"},{"hexValue":"383130335f303834","id":17464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:8:54","typeDescriptions":{"typeIdentifier":"t_rational_8103084_by_1","typeString":"int_const 8103084"},"value":"8103_084"}],"id":17465,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1160:83:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint24_$10_memory_ptr","typeString":"uint24[10] memory"}},"visibility":"private"},{"constant":true,"id":17469,"mutability":"constant","name":"DENOMINATOR","nameLocation":"1275:11:54","nodeType":"VariableDeclaration","scope":18087,"src":"1250:44:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1250:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":17468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1289:5:54","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"constant":false,"functionSelector":"0dde8d27","id":17472,"mutability":"mutable","name":"thousandSeparator","nameLocation":"1317:17:54","nodeType":"VariableDeclaration","scope":18087,"src":"1303:37:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":17470,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1303:6:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"value":{"hexValue":"2c","id":17471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1337:3:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e7a35b97029f9e0cf6effd71c1a7958822e9a217d3a3aec886668a7dd8231cb","typeString":"literal_string \",\""},"value":","},"visibility":"public"},{"constant":false,"functionSelector":"7284e416","id":17475,"mutability":"mutable","name":"description","nameLocation":"1361:11:54","nodeType":"VariableDeclaration","scope":18087,"src":"1347:209:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17473,"name":"string","nodeType":"ElementaryTypeName","src":"1347:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"54686973204e46542070657270657475616c6c792072656365697665732073686172652066726f6d2074686520726576656e75652067656e6572617465642062792050616e676f6c696e2e20546865207368617265206f662074686520706f736974696f6e20697320706f7369746976656c7920636f7272656c6174656420746f20697473207374616b65642062616c616e636520616e64207374616b696e67206475726174696f6e2e","id":17474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1384:172:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_29d99fb61193d5e3646d611341a540a271c67e8a7f2f709ea05f55df403b8a8d","typeString":"literal_string \"This NFT perpetually receives share from the revenue generated by Pangolin. The share of the position is positively correlated to its staked balance and staking duration.\""},"value":"This NFT perpetually receives share from the revenue generated by Pangolin. The share of the position is positively correlated to its staked balance and staking duration."},"visibility":"public"},{"constant":false,"functionSelector":"e89e6075","id":17478,"mutability":"mutable","name":"externalUri","nameLocation":"1577:11:54","nodeType":"VariableDeclaration","scope":18087,"src":"1563:69:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17476,"name":"string","nodeType":"ElementaryTypeName","src":"1563:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"68747470733a2f2f6170702e70616e676f6c696e2e65786368616e67652f232f7374616b657632","id":17477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1591:41:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bd89846f457f6d2c20dce273e1ec739ac2ab1b1d1f10a45a5b60749d3cc0917","typeString":"literal_string \"https://app.pangolin.exchange/#/stakev2\""},"value":"https://app.pangolin.exchange/#/stakev2"},"visibility":"public"},{"constant":false,"functionSelector":"4c226e9b","id":17481,"mutability":"mutable","name":"regularFontUri","nameLocation":"1653:14:54","nodeType":"VariableDeclaration","scope":18087,"src":"1639:110:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17479,"name":"string","nodeType":"ElementaryTypeName","src":"1639:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"68747470733a2f2f666f6e74732e677374617469632e636f6d2f732f706f7070696e732f7632302f707869457970386b76384a48674656724a4a666563672e776f666632","id":17480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1679:70:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_198043547d926020e1dbaa6f3740894aad1628576bff66495a134a843573e038","typeString":"literal_string \"https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecg.woff2\""},"value":"https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecg.woff2"},"visibility":"public"},{"constant":false,"functionSelector":"364a9b5f","id":17484,"mutability":"mutable","name":"boldFontUri","nameLocation":"1770:11:54","nodeType":"VariableDeclaration","scope":18087,"src":"1756:111:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17482,"name":"string","nodeType":"ElementaryTypeName","src":"1756:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"68747470733a2f2f666f6e74732e677374617469632e636f6d2f732f706f7070696e732f7632302f707869427970386b76384a48674656724c437a375a31786c46512e776f666632","id":17483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1793:74:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0d2dab0ffb74ad3665bf0f29eadec499c43336ba2d2f7f22da19cde03c1c46a","typeString":"literal_string \"https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2\""},"value":"https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2"},"visibility":"public"},{"constant":false,"functionSelector":"2c9ea242","id":17487,"mutability":"mutable","name":"imageBaseUri","nameLocation":"1888:12:54","nodeType":"VariableDeclaration","scope":18087,"src":"1874:76:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17485,"name":"string","nodeType":"ElementaryTypeName","src":"1874:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"68747470733a2f2f7374617469632e70616e676f6c696e2e65786368616e67652f70616e677561726469616e2f","id":17486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1903:47:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_0270490fb4b7c695566de0d92724fdfe3cbd90b0c83660ba415578532fd050b8","typeString":"literal_string \"https://static.pangolin.exchange/panguardian/\""},"value":"https://static.pangolin.exchange/panguardian/"},"visibility":"public"},{"constant":false,"functionSelector":"a9ef3aeb","id":17490,"mutability":"mutable","name":"imageExtension","nameLocation":"1971:14:54","nodeType":"VariableDeclaration","scope":18087,"src":"1957:37:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17488,"name":"string","nodeType":"ElementaryTypeName","src":"1957:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"2e706e67","id":17489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1988:6:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_37dc0bc31da9c9a2987f66319867b061a881cc348000601df903375b9187e0c8","typeString":"literal_string \".png\""},"value":".png"},"visibility":"public"},{"constant":false,"functionSelector":"7b61c320","id":17492,"mutability":"mutable","name":"tokenSymbol","nameLocation":"2015:11:54","nodeType":"VariableDeclaration","scope":18087,"src":"2001:25:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":17491,"name":"string","nodeType":"ElementaryTypeName","src":"2001:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"body":{"id":17532,"nodeType":"Block","src":"2095:240:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17500,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17494,"src":"2114:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2134:1:54","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":17502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2126:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17501,"name":"address","nodeType":"ElementaryTypeName","src":"2126:7:54","typeDescriptions":{}}},"id":17504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2126:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2114:22:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2106:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2106:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17507,"nodeType":"ExpressionStatement","src":"2106:31:54"},{"expression":{"arguments":[{"id":17509,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"2159:18:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":17510,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17494,"src":"2179:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17508,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"2148:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2148:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17512,"nodeType":"ExpressionStatement","src":"2148:40:54"},{"expression":{"arguments":[{"id":17514,"name":"METADATA_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"2210:13:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":17515,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17494,"src":"2225:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17513,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[415],"referencedDeclaration":415,"src":"2199:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":17516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2199:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17517,"nodeType":"ExpressionStatement","src":"2199:35:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":17521,"name":"newTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17496,"src":"2259:14:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2253:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17519,"name":"bytes","nodeType":"ElementaryTypeName","src":"2253:5:54","typeDescriptions":{}}},"id":17522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2253:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2253:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":17524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:2:54","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2253:34:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17518,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2245:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2245:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17527,"nodeType":"ExpressionStatement","src":"2245:43:54"},{"expression":{"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17528,"name":"tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"2299:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17529,"name":"newTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17496,"src":"2313:14:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2299:28:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17531,"nodeType":"ExpressionStatement","src":"2299:28:54"}]},"id":17533,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17494,"mutability":"mutable","name":"newAdmin","nameLocation":"2055:8:54","nodeType":"VariableDeclaration","scope":17533,"src":"2047:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17493,"name":"address","nodeType":"ElementaryTypeName","src":"2047:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17496,"mutability":"mutable","name":"newTokenSymbol","nameLocation":"2079:14:54","nodeType":"VariableDeclaration","scope":17533,"src":"2065:28:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17495,"name":"string","nodeType":"ElementaryTypeName","src":"2065:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2046:48:54"},"returnParameters":{"id":17498,"nodeType":"ParameterList","parameters":[],"src":"2095:0:54"},"scope":18087,"src":"2035:300:54","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":17545,"nodeType":"Block","src":"2435:59:54","statements":[{"expression":{"id":17543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17541,"name":"thousandSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17472,"src":"2446:17:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17542,"name":"newThousandSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17535,"src":"2466:20:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2446:40:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":17544,"nodeType":"ExpressionStatement","src":"2446:40:54"}]},"functionSelector":"a33eb2eb","id":17546,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17538,"name":"METADATA_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"2420:13:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17539,"kind":"modifierInvocation","modifierName":{"id":17537,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"2411:8:54"},"nodeType":"ModifierInvocation","src":"2411:23:54"}],"name":"setThousandSeparator","nameLocation":"2352:20:54","nodeType":"FunctionDefinition","parameters":{"id":17536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17535,"mutability":"mutable","name":"newThousandSeparator","nameLocation":"2380:20:54","nodeType":"VariableDeclaration","scope":17546,"src":"2373:27:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":17534,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2373:6:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"2372:29:54"},"returnParameters":{"id":17540,"nodeType":"ParameterList","parameters":[],"src":"2435:0:54"},"scope":18087,"src":"2343:151:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17558,"nodeType":"Block","src":"2589:47:54","statements":[{"expression":{"id":17556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17554,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17475,"src":"2600:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17555,"name":"newDescription","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17548,"src":"2614:14:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2600:28:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17557,"nodeType":"ExpressionStatement","src":"2600:28:54"}]},"functionSelector":"90c3f38f","id":17559,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17551,"name":"METADATA_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"2574:13:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17552,"kind":"modifierInvocation","modifierName":{"id":17550,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"2565:8:54"},"nodeType":"ModifierInvocation","src":"2565:23:54"}],"name":"setDescription","nameLocation":"2511:14:54","nodeType":"FunctionDefinition","parameters":{"id":17549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17548,"mutability":"mutable","name":"newDescription","nameLocation":"2540:14:54","nodeType":"VariableDeclaration","scope":17559,"src":"2526:28:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17547,"name":"string","nodeType":"ElementaryTypeName","src":"2526:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2525:30:54"},"returnParameters":{"id":17553,"nodeType":"ParameterList","parameters":[],"src":"2589:0:54"},"scope":18087,"src":"2502:134:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17571,"nodeType":"Block","src":"2731:47:54","statements":[{"expression":{"id":17569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17567,"name":"externalUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17478,"src":"2742:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17568,"name":"newExternalUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17561,"src":"2756:14:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2742:28:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17570,"nodeType":"ExpressionStatement","src":"2742:28:54"}]},"functionSelector":"1bf671c2","id":17572,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17564,"name":"METADATA_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"2716:13:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17565,"kind":"modifierInvocation","modifierName":{"id":17563,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"2707:8:54"},"nodeType":"ModifierInvocation","src":"2707:23:54"}],"name":"setExternalUri","nameLocation":"2653:14:54","nodeType":"FunctionDefinition","parameters":{"id":17562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17561,"mutability":"mutable","name":"newExternalUri","nameLocation":"2682:14:54","nodeType":"VariableDeclaration","scope":17572,"src":"2668:28:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17560,"name":"string","nodeType":"ElementaryTypeName","src":"2668:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2667:30:54"},"returnParameters":{"id":17566,"nodeType":"ParameterList","parameters":[],"src":"2731:0:54"},"scope":18087,"src":"2644:134:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17590,"nodeType":"Block","src":"2922:92:54","statements":[{"expression":{"id":17584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17582,"name":"regularFontUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17481,"src":"2933:14:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17583,"name":"newRegularFontUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17574,"src":"2950:17:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2933:34:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17585,"nodeType":"ExpressionStatement","src":"2933:34:54"},{"expression":{"id":17588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17586,"name":"boldFontUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17484,"src":"2978:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17587,"name":"newBoldFontUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17576,"src":"2992:14:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2978:28:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17589,"nodeType":"ExpressionStatement","src":"2978:28:54"}]},"functionSelector":"96a3be7a","id":17591,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17579,"name":"METADATA_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"2902:13:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17580,"kind":"modifierInvocation","modifierName":{"id":17578,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"2893:8:54"},"nodeType":"ModifierInvocation","src":"2893:23:54"}],"name":"setFont","nameLocation":"2795:7:54","nodeType":"FunctionDefinition","parameters":{"id":17577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17574,"mutability":"mutable","name":"newRegularFontUri","nameLocation":"2817:17:54","nodeType":"VariableDeclaration","scope":17591,"src":"2803:31:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17573,"name":"string","nodeType":"ElementaryTypeName","src":"2803:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17576,"mutability":"mutable","name":"newBoldFontUri","nameLocation":"2850:14:54","nodeType":"VariableDeclaration","scope":17591,"src":"2836:28:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17575,"name":"string","nodeType":"ElementaryTypeName","src":"2836:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2802:63:54"},"returnParameters":{"id":17581,"nodeType":"ParameterList","parameters":[],"src":"2922:0:54"},"scope":18087,"src":"2786:228:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17609,"nodeType":"Block","src":"3160:94:54","statements":[{"expression":{"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17601,"name":"imageBaseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17487,"src":"3171:12:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17602,"name":"newImageBaseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17593,"src":"3186:15:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3171:30:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17604,"nodeType":"ExpressionStatement","src":"3171:30:54"},{"expression":{"id":17607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17605,"name":"imageExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"3212:14:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17606,"name":"newImageExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17595,"src":"3229:17:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3212:34:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":17608,"nodeType":"ExpressionStatement","src":"3212:34:54"}]},"functionSelector":"c4e1750b","id":17610,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":17598,"name":"METADATA_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"3140:13:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17599,"kind":"modifierInvocation","modifierName":{"id":17597,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":38,"src":"3131:8:54"},"nodeType":"ModifierInvocation","src":"3131:23:54"}],"name":"setImage","nameLocation":"3031:8:54","nodeType":"FunctionDefinition","parameters":{"id":17596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17593,"mutability":"mutable","name":"newImageBaseUri","nameLocation":"3054:15:54","nodeType":"VariableDeclaration","scope":17610,"src":"3040:29:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17592,"name":"string","nodeType":"ElementaryTypeName","src":"3040:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17595,"mutability":"mutable","name":"newImageExtension","nameLocation":"3085:17:54","nodeType":"VariableDeclaration","scope":17610,"src":"3071:31:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17594,"name":"string","nodeType":"ElementaryTypeName","src":"3071:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3039:64:54"},"returnParameters":{"id":17600,"nodeType":"ParameterList","parameters":[],"src":"3160:0:54"},"scope":18087,"src":"3022:232:54","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17805,"nodeType":"Block","src":"3422:3935:54","statements":[{"assignments":[17624],"declarations":[{"constant":false,"id":17624,"mutability":"mutable","name":"positionValueVariables","nameLocation":"3494:22:54","nodeType":"VariableDeclaration","scope":17805,"src":"3433:83:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$17400_memory_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables"},"typeName":{"id":17623,"nodeType":"UserDefinedTypeName","pathNode":{"id":17622,"name":"IPangolinStakingPositions.ValueVariables","nodeType":"IdentifierPath","referencedDeclaration":17400,"src":"3433:40:54"},"referencedDeclaration":17400,"src":"3433:40:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$17400_storage_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables"}},"visibility":"internal"}],"id":17630,"initialValue":{"expression":{"arguments":[{"id":17627,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17615,"src":"3572:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17625,"name":"pangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17613,"src":"3519:24:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$17441","typeString":"contract IPangolinStakingPositions"}},"id":17626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"positions","nodeType":"MemberAccess","referencedDeclaration":17426,"src":"3519:52:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Position_$17418_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPangolinStakingPositions.Position memory)"}},"id":17628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3519:64:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Position_$17418_memory_ptr","typeString":"struct IPangolinStakingPositions.Position memory"}},"id":17629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"valueVariables","nodeType":"MemberAccess","referencedDeclaration":17408,"src":"3519:97:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$17400_memory_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables memory"}},"nodeType":"VariableDeclarationStatement","src":"3433:183:54"},{"assignments":[17632],"declarations":[{"constant":false,"id":17632,"mutability":"mutable","name":"balance","nameLocation":"3637:7:54","nodeType":"VariableDeclaration","scope":17805,"src":"3629:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17631,"name":"uint256","nodeType":"ElementaryTypeName","src":"3629:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17635,"initialValue":{"expression":{"id":17633,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17624,"src":"3647:22:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$17400_memory_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables memory"}},"id":17634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":17397,"src":"3647:30:54","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"3629:48:54"},{"assignments":[17637],"declarations":[{"constant":false,"id":17637,"mutability":"mutable","name":"entryTime","nameLocation":"3696:9:54","nodeType":"VariableDeclaration","scope":17805,"src":"3688:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17636,"name":"uint256","nodeType":"ElementaryTypeName","src":"3688:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17648,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17638,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"3708:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3719:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3708:12:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17643,"name":"positionValueVariables","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17624,"src":"3741:22:54","typeDescriptions":{"typeIdentifier":"t_struct$_ValueVariables_$17400_memory_ptr","typeString":"struct IPangolinStakingPositions.ValueVariables memory"}},"id":17644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfEntryTimes","nodeType":"MemberAccess","referencedDeclaration":17399,"src":"3741:38:54","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17645,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"3782:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:48:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3708:81:54","trueExpression":{"expression":{"id":17641,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3723:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3723:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3688:101:54"},{"assignments":[17650],"declarations":[{"constant":false,"id":17650,"mutability":"mutable","name":"apr","nameLocation":"3808:3:54","nodeType":"VariableDeclaration","scope":17805,"src":"3800:11:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17649,"name":"uint256","nodeType":"ElementaryTypeName","src":"3800:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17667,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17651,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"3814:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3825:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3814:12:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":17657,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17615,"src":"3904:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17655,"name":"pangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17613,"src":"3860:24:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$17441","typeString":"contract IPangolinStakingPositions"}},"id":17656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"positionRewardRate","nodeType":"MemberAccess","referencedDeclaration":17440,"src":"3860:43:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":17658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:55:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"333635","id":17659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3918:8:54","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"},"value":"365"},"src":"3860:66:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"313030","id":17661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3929:3:54","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3860:72:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17663,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3859:74:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17664,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"3936:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3859:84:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3814:129:54","trueExpression":{"hexValue":"30","id":17654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3800:143:54"},{"assignments":[17669],"declarations":[{"constant":false,"id":17669,"mutability":"mutable","name":"earned","nameLocation":"3962:6:54","nodeType":"VariableDeclaration","scope":17805,"src":"3954:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17668,"name":"uint256","nodeType":"ElementaryTypeName","src":"3954:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17676,"initialValue":{"arguments":[{"arguments":[{"id":17673,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17615,"src":"4030:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17671,"name":"pangolinStakingPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17613,"src":"3982:24:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$17441","typeString":"contract IPangolinStakingPositions"}},"id":17672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"positionPendingRewards","nodeType":"MemberAccess","referencedDeclaration":17433,"src":"3982:47:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":17674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3982:59:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17670,"name":"parseEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18086,"src":"3971:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":17675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3971:71:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3954:88:54"},{"expression":{"id":17681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17677,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"4053:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17679,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"4074:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17678,"name":"parseEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18086,"src":"4063:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":17680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4063:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4053:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17682,"nodeType":"ExpressionStatement","src":"4053:29:54"},{"assignments":[17684],"declarations":[{"constant":false,"id":17684,"mutability":"mutable","name":"balanceLevel","nameLocation":"4103:12:54","nodeType":"VariableDeclaration","scope":17805,"src":"4095:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17683,"name":"uint256","nodeType":"ElementaryTypeName","src":"4095:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17689,"initialValue":{"arguments":[{"id":17686,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"4130:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"343034","id":17687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4139:3:54","typeDescriptions":{"typeIdentifier":"t_rational_404_by_1","typeString":"int_const 404"},"value":"404"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_404_by_1","typeString":"int_const 404"}],"id":17685,"name":"getExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18061,"src":"4118:11:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":17688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4118:25:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4095:48:54"},{"assignments":[17691],"declarations":[{"constant":false,"id":17691,"mutability":"mutable","name":"durationLevel","nameLocation":"4197:13:54","nodeType":"VariableDeclaration","scope":17805,"src":"4189:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17690,"name":"uint256","nodeType":"ElementaryTypeName","src":"4189:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17702,"initialValue":{"arguments":[{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17693,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4226:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4226:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":17695,"name":"entryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17637,"src":"4244:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4226:27:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4225:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_rational_9600_by_1","typeString":"int_const 9600"},"id":17700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":17698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4256:7:54","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_7200_by_1","typeString":"int_const 7200"},"value":"2"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3430","id":17699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4266:10:54","subdenomination":"minutes","typeDescriptions":{"typeIdentifier":"t_rational_2400_by_1","typeString":"int_const 2400"},"value":"40"},"src":"4256:20:54","typeDescriptions":{"typeIdentifier":"t_rational_9600_by_1","typeString":"int_const 9600"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_9600_by_1","typeString":"int_const 9600"}],"id":17692,"name":"getExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18061,"src":"4213:11:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":17701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4213:64:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4189:88:54"},{"assignments":[17704],"declarations":[{"constant":false,"id":17704,"mutability":"mutable","name":"svg","nameLocation":"4341:3:54","nodeType":"VariableDeclaration","scope":17805,"src":"4327:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17703,"name":"string","nodeType":"ElementaryTypeName","src":"4327:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17705,"nodeType":"VariableDeclarationStatement","src":"4327:17:54"},{"id":17755,"nodeType":"Block","src":"4355:1834:54","statements":[{"assignments":[17707],"declarations":[{"constant":false,"id":17707,"mutability":"mutable","name":"svgPart1","nameLocation":"4383:8:54","nodeType":"VariableDeclaration","scope":17755,"src":"4370:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17706,"name":"bytes","nodeType":"ElementaryTypeName","src":"4370:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":17716,"initialValue":{"arguments":[{"hexValue":"3c7376672077696474683d2236363322206865696768743d2231303830222076696577626f783d223020302036363320313038302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b223e203c7374796c6520747970653d22746578742f637373223e2040666f6e742d66616365207b20666f6e742d66616d696c793a2022506f7070696e73223b207372633a2075726c28","id":17710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4429:205:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec3b898d1750454430826289f081b24a57051cc258a4f2a50d9b65e96410f989","typeString":"literal_string \"<svg width=\"663\" height=\"1080\" viewbox=\"0 0 663 1080\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"> <style type=\"text/css\"> @font-face { font-family: \"Poppins\"; src: url(\""},"value":"<svg width=\"663\" height=\"1080\" viewbox=\"0 0 663 1080\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"> <style type=\"text/css\"> @font-face { font-family: \"Poppins\"; src: url("},{"id":17711,"name":"regularFontUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17481,"src":"4653:14:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"2920666f726d61742822776f66663222293b207d2040666f6e742d66616365207b20666f6e742d66616d696c793a2022506f7070696e73223b20666f6e742d7765696768743a20626f6c643b207372633a2075726c28","id":17712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:88:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_85bb1728d9d30adc45f34d75d3b5ae3a82445483cf22e70449812b9c25089bcf","typeString":"literal_string \") format(\"woff2\"); } @font-face { font-family: \"Poppins\"; font-weight: bold; src: url(\""},"value":") format(\"woff2\"); } @font-face { font-family: \"Poppins\"; font-weight: bold; src: url("},{"id":17713,"name":"boldFontUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17484,"src":"4793:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"2920666f726d61742822776f66663222293b207d2074657874207b20636f6c6f723a233161316131613b20666f6e742d66616d696c793a506f7070696e732c2073616e732d73657269663b20666f6e742d73697a653a32342e373370783b207d202e646174615f7370616e207b20666f6e742d7765696768743a626f6c643b20666f6e742d73697a653a33372e30397078207d202e746578745f626f74746f6d202e696e666f5f7370616e207b20666f6e742d73697a653a2032382e38317078207d202e746578745f626f74746f6d202e646174615f7370616e207b20666f6e742d73697a653a2034332e32317078207d203c2f7374796c653e203c696d616765207072657365727665417370656374526174696f3d22784d6964594d696420736c696365222077696474683d223130302522206865696768743d22313030252220786c696e6b3a687265663d22","id":17714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4823:336:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ddfc767b89a5297b7bc6b4077a7181152d7e4a2ac6cb5e988b4f3c73f8c2065","typeString":"literal_string \") format(\"woff2\"); } text { color:#1a1a1a; font-family:Poppins, sans-serif; font-size:24.73px; } .data_span { font-weight:bold; font-size:37.09px } .text_bottom .info_span { font-size: 28.81px } .text_bottom .data_span { font-size: 43.21px } </style> <image preserveAspectRatio=\"xMidYMid slice\" width=\"100%\" height=\"100%\" xlink:href=\"\""},"value":") format(\"woff2\"); } text { color:#1a1a1a; font-family:Poppins, sans-serif; font-size:24.73px; } .data_span { font-weight:bold; font-size:37.09px } .text_bottom .info_span { font-size: 28.81px } .text_bottom .data_span { font-size: 43.21px } </style> <image preserveAspectRatio=\"xMidYMid slice\" width=\"100%\" height=\"100%\" xlink:href=\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec3b898d1750454430826289f081b24a57051cc258a4f2a50d9b65e96410f989","typeString":"literal_string \"<svg width=\"663\" height=\"1080\" viewbox=\"0 0 663 1080\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"> <style type=\"text/css\"> @font-face { font-family: \"Poppins\"; src: url(\""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_85bb1728d9d30adc45f34d75d3b5ae3a82445483cf22e70449812b9c25089bcf","typeString":"literal_string \") format(\"woff2\"); } @font-face { font-family: \"Poppins\"; font-weight: bold; src: url(\""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_7ddfc767b89a5297b7bc6b4077a7181152d7e4a2ac6cb5e988b4f3c73f8c2065","typeString":"literal_string \") format(\"woff2\"); } text { color:#1a1a1a; font-family:Poppins, sans-serif; font-size:24.73px; } .data_span { font-weight:bold; font-size:37.09px } .text_bottom .info_span { font-size: 28.81px } .text_bottom .data_span { font-size: 43.21px } </style> <image preserveAspectRatio=\"xMidYMid slice\" width=\"100%\" height=\"100%\" xlink:href=\"\""}],"expression":{"id":17708,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4394:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4394:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4394:780:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4370:804:54"},{"assignments":[17718],"declarations":[{"constant":false,"id":17718,"mutability":"mutable","name":"svgPart2","nameLocation":"5202:8:54","nodeType":"VariableDeclaration","scope":17755,"src":"5189:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17717,"name":"bytes","nodeType":"ElementaryTypeName","src":"5189:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":17743,"initialValue":{"arguments":[{"arguments":[{"id":17722,"name":"balanceLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17684,"src":"5260:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17723,"name":"durationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17691,"src":"5274:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17721,"name":"getImageUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17941,"src":"5248:11:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) view returns (string memory)"}},"id":17724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5248:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"223e3c2f696d6167653e203c7465787420783d2232372e332220793d2235342e392220746578742d616e63686f723d2273746172742220636c6173733d22746578745f746f70223e3c747370616e20636c6173733d22696e666f5f7370616e223e262333363b","id":17725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5307:104:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_126e987cb53e9e978d2b6808a31a5dabcc9ade817848aa8224230df7b024f7a1","typeString":"literal_string \"\"></image> <text x=\"27.3\" y=\"54.9\" text-anchor=\"start\" class=\"text_top\"><tspan class=\"info_span\">&#36;\""},"value":"\"></image> <text x=\"27.3\" y=\"54.9\" text-anchor=\"start\" class=\"text_top\"><tspan class=\"info_span\">&#36;"},{"id":17726,"name":"tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"5430:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"3a203c2f747370616e3e3c747370616e20636c6173733d22646174615f7370616e223e","id":17727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5460:37:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_86751ac112c8bd0ae01ed6f5f965b45154e9a942a13b0461fee321be26fab98c","typeString":"literal_string \": </tspan><tspan class=\"data_span\">\""},"value":": </tspan><tspan class=\"data_span\">"},{"arguments":[{"id":17729,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"5537:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17728,"name":"addThousandSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"5516:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":17730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5516:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f747370616e3e3c2f746578743e203c7465787420783d223633352e372220793d2235342e392220746578742d616e63686f723d22656e642220636c6173733d22746578745f746f70223e3c747370616e20636c6173733d22696e666f5f7370616e223e4150523a203c2f747370616e3e3c747370616e20636c6173733d22646174615f7370616e223e","id":17731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5564:141:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_637d8234fbae871b6717a67ca5e765d25997fab608e6f7d402a8517d1b2934d3","typeString":"literal_string \"</tspan></text> <text x=\"635.7\" y=\"54.9\" text-anchor=\"end\" class=\"text_top\"><tspan class=\"info_span\">APR: </tspan><tspan class=\"data_span\">\""},"value":"</tspan></text> <text x=\"635.7\" y=\"54.9\" text-anchor=\"end\" class=\"text_top\"><tspan class=\"info_span\">APR: </tspan><tspan class=\"data_span\">"},{"arguments":[{"id":17733,"name":"apr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17650,"src":"5745:3:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17732,"name":"addThousandSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"5724:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":17734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5724:25:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"253c2f747370616e3e3c2f746578743e203c7465787420783d223333312e352220793d22313030312e39372220746578742d616e63686f723d226d6964646c652220636c6173733d22746578745f626f74746f6d223e3c747370616e20636c6173733d22696e666f5f7370616e223e4541524e45443a203c2f747370616e3e3c747370616e20636c6173733d22646174615f7370616e2220783d223333312e35222064793d2235312e3835223e262333363b","id":17735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5768:180:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_71fbda23d91b84717b91e7e4d3c431d4704a76fb8430203edf0acff8b0d9b2b9","typeString":"literal_string \"%</tspan></text> <text x=\"331.5\" y=\"1001.97\" text-anchor=\"middle\" class=\"text_bottom\"><tspan class=\"info_span\">EARNED: </tspan><tspan class=\"data_span\" x=\"331.5\" dy=\"51.85\">&#36;\""},"value":"%</tspan></text> <text x=\"331.5\" y=\"1001.97\" text-anchor=\"middle\" class=\"text_bottom\"><tspan class=\"info_span\">EARNED: </tspan><tspan class=\"data_span\" x=\"331.5\" dy=\"51.85\">&#36;"},{"id":17736,"name":"tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"5967:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"20","id":17737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5997:3:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a","typeString":"literal_string \" \""},"value":" "},{"arguments":[{"id":17739,"name":"earned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17669,"src":"6040:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17738,"name":"addThousandSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"6019:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":17740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6019:28:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f747370616e3e3c2f746578743e203c2f7376673e","id":17741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6066:24:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_7607d31c6a4a9d8a907bf0a596a0b66f726b0ae204d30d513f71769ba03a9586","typeString":"literal_string \"</tspan></text> </svg>\""},"value":"</tspan></text> </svg>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_126e987cb53e9e978d2b6808a31a5dabcc9ade817848aa8224230df7b024f7a1","typeString":"literal_string \"\"></image> <text x=\"27.3\" y=\"54.9\" text-anchor=\"start\" class=\"text_top\"><tspan class=\"info_span\">&#36;\""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_86751ac112c8bd0ae01ed6f5f965b45154e9a942a13b0461fee321be26fab98c","typeString":"literal_string \": </tspan><tspan class=\"data_span\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_637d8234fbae871b6717a67ca5e765d25997fab608e6f7d402a8517d1b2934d3","typeString":"literal_string \"</tspan></text> <text x=\"635.7\" y=\"54.9\" text-anchor=\"end\" class=\"text_top\"><tspan class=\"info_span\">APR: </tspan><tspan class=\"data_span\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_71fbda23d91b84717b91e7e4d3c431d4704a76fb8430203edf0acff8b0d9b2b9","typeString":"literal_string \"%</tspan></text> <text x=\"331.5\" y=\"1001.97\" text-anchor=\"middle\" class=\"text_bottom\"><tspan class=\"info_span\">EARNED: </tspan><tspan class=\"data_span\" x=\"331.5\" dy=\"51.85\">&#36;\""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a","typeString":"literal_string \" \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_7607d31c6a4a9d8a907bf0a596a0b66f726b0ae204d30d513f71769ba03a9586","typeString":"literal_string \"</tspan></text> </svg>\""}],"expression":{"id":17719,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5213:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5213:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:892:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5189:916:54"},{"expression":{"id":17753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17744,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17704,"src":"6120:3:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":17749,"name":"svgPart1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17707,"src":"6157:8:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":17750,"name":"svgPart2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17718,"src":"6167:8:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17747,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6140:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6140:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6140:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17745,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4664,"src":"6126:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$4664_$","typeString":"type(library Base64)"}},"id":17746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":4663,"src":"6126:13:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":17752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6126:51:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"6120:57:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17754,"nodeType":"ExpressionStatement","src":"6120:57:54"}]},{"assignments":[17757],"declarations":[{"constant":false,"id":17757,"mutability":"mutable","name":"json","nameLocation":"6215:4:54","nodeType":"VariableDeclaration","scope":17805,"src":"6201:18:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17756,"name":"string","nodeType":"ElementaryTypeName","src":"6201:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":17758,"nodeType":"VariableDeclarationStatement","src":"6201:18:54"},{"id":17795,"nodeType":"Block","src":"6230:1037:54","statements":[{"expression":{"id":17793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17759,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17757,"src":"6245:4:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"7b226e616d65223a2250616e676f6c696e205374616b696e6720506f736974696f6e2023","id":17764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6323:38:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_92dbaf40f9706d2b597b386be95e10fa691cc1efcd1ea5168aeb9a5b1a0617e7","typeString":"literal_string \"{\"name\":\"Pangolin Staking Position #\""},"value":"{\"name\":\"Pangolin Staking Position #"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17765,"name":"positionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17615,"src":"6384:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"6384:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6384:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222c226465736372697074696f6e223a22","id":17768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6428:19:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c216c0cacb2979ab2fa64169618dff639cb413b3341193391c2734a2cc9c17d","typeString":"literal_string \"\",\"description\":\"\""},"value":"\",\"description\":\""},{"id":17769,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17475,"src":"6470:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"222c2265787465726e616c5f75726c223a22","id":17770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6504:20:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_183a274fb9786dd6ae964fc99afc6a718b130a0fb2dc308fd55c8ad4e85e406f","typeString":"literal_string \"\",\"external_url\":\"\""},"value":"\",\"external_url\":\""},{"id":17771,"name":"externalUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17478,"src":"6547:11:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"222c2261747472696275746573223a5b7b2274726169745f74797065223a2242616c616e6365222c2276616c7565223a","id":17772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6581:50:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_b829c54deee6024f4fa91ed5017266784331ef97933f654b85db88fe01baaf8d","typeString":"literal_string \"\",\"attributes\":[{\"trait_type\":\"Balance\",\"value\":\""},"value":"\",\"attributes\":[{\"trait_type\":\"Balance\",\"value\":"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17773,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"6654:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"6654:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6654:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7d2c7b22646973706c61795f74797065223a2264617465222c2274726169745f74797065223a22456e7472792054696d65222c2276616c7565223a","id":17776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6695:61:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_d50fcf646cea104ad238e6de7b6827a2b6606ec72e8db9322fccb4f5a07d1e58","typeString":"literal_string \"},{\"display_type\":\"date\",\"trait_type\":\"Entry Time\",\"value\":\""},"value":"},{\"display_type\":\"date\",\"trait_type\":\"Entry Time\",\"value\":"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17777,"name":"entryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17637,"src":"6779:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"6779:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6779:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f76616c7565223a2239222c2274726169745f74797065223a2242616c616e6365204c6576656c222c2276616c7565223a","id":17780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6822:82:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ca42eadce1df16387bc81ad68fab938e98dd01c0b7bc001f3e1e14d11329c9d","typeString":"literal_string \"},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Balance Level\",\"value\":\""},"value":"},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Balance Level\",\"value\":"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17781,"name":"balanceLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17684,"src":"6927:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"6927:21:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6927:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f76616c7565223a2239222c2274726169745f74797065223a224475726174696f6e204c6576656c222c2276616c7565223a","id":17784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6973:83:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_19ab5e81ebf345e2bd2ab6dc40a164c9472240a793cc475733cdb36ff503bd27","typeString":"literal_string \"},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Duration Level\",\"value\":\""},"value":"},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Duration Level\",\"value\":"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17785,"name":"durationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17691,"src":"7079:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"7079:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7079:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7d5d2c22696d616765223a22646174613a696d6167652f7376672b786d6c3b6261736536342c","id":17788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7126:40:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c7dd93b963919fee8b26c45310fc9a39dced1698a9189a666fe49aaeb2a476b4","typeString":"literal_string \"}],\"image\":\"data:image/svg+xml;base64,\""},"value":"}],\"image\":\"data:image/svg+xml;base64,"},{"id":17789,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17704,"src":"7189:3:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"227d0a","id":17790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7215:6:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_16b4dd963f5e31b977c360b753d919414d2417f3859f98a1987c53bd5d752167","typeString":"literal_string hex\"227d0a\""},"value":"\"}\n"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_92dbaf40f9706d2b597b386be95e10fa691cc1efcd1ea5168aeb9a5b1a0617e7","typeString":"literal_string \"{\"name\":\"Pangolin Staking Position #\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_4c216c0cacb2979ab2fa64169618dff639cb413b3341193391c2734a2cc9c17d","typeString":"literal_string \"\",\"description\":\"\""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_183a274fb9786dd6ae964fc99afc6a718b130a0fb2dc308fd55c8ad4e85e406f","typeString":"literal_string \"\",\"external_url\":\"\""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_b829c54deee6024f4fa91ed5017266784331ef97933f654b85db88fe01baaf8d","typeString":"literal_string \"\",\"attributes\":[{\"trait_type\":\"Balance\",\"value\":\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_d50fcf646cea104ad238e6de7b6827a2b6606ec72e8db9322fccb4f5a07d1e58","typeString":"literal_string \"},{\"display_type\":\"date\",\"trait_type\":\"Entry Time\",\"value\":\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_2ca42eadce1df16387bc81ad68fab938e98dd01c0b7bc001f3e1e14d11329c9d","typeString":"literal_string \"},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Balance Level\",\"value\":\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_19ab5e81ebf345e2bd2ab6dc40a164c9472240a793cc475733cdb36ff503bd27","typeString":"literal_string \"},{\"display_type\":\"number\",\"max_value\":\"9\",\"trait_type\":\"Duration Level\",\"value\":\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c7dd93b963919fee8b26c45310fc9a39dced1698a9189a666fe49aaeb2a476b4","typeString":"literal_string \"}],\"image\":\"data:image/svg+xml;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_16b4dd963f5e31b977c360b753d919414d2417f3859f98a1987c53bd5d752167","typeString":"literal_string hex\"227d0a\""}],"expression":{"id":17762,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6284:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6284:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6284:956:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17760,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4664,"src":"6252:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$4664_$","typeString":"type(library Base64)"}},"id":17761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":4663,"src":"6252:13:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":17792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6252:1003:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"6245:1010:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":17794,"nodeType":"ExpressionStatement","src":"6245:1010:54"}]},{"expression":{"arguments":[{"arguments":[{"hexValue":"646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c","id":17800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7310:31:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa","typeString":"literal_string \"data:application/json;base64,\""},"value":"data:application/json;base64,"},{"id":17801,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17757,"src":"7343:4:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa","typeString":"literal_string \"data:application/json;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7293:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7293:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7293:55:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7286:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17796,"name":"string","nodeType":"ElementaryTypeName","src":"7286:6:54","typeDescriptions":{}}},"id":17803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7286:63:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":17619,"id":17804,"nodeType":"Return","src":"7279:70:54"}]},"functionSelector":"e9dc6375","id":17806,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"3271:8:54","nodeType":"FunctionDefinition","parameters":{"id":17616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17613,"mutability":"mutable","name":"pangolinStakingPositions","nameLocation":"3306:24:54","nodeType":"VariableDeclaration","scope":17806,"src":"3280:50:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$17441","typeString":"contract IPangolinStakingPositions"},"typeName":{"id":17612,"nodeType":"UserDefinedTypeName","pathNode":{"id":17611,"name":"IPangolinStakingPositions","nodeType":"IdentifierPath","referencedDeclaration":17441,"src":"3280:25:54"},"referencedDeclaration":17441,"src":"3280:25:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPangolinStakingPositions_$17441","typeString":"contract IPangolinStakingPositions"}},"visibility":"internal"},{"constant":false,"id":17615,"mutability":"mutable","name":"positionId","nameLocation":"3340:10:54","nodeType":"VariableDeclaration","scope":17806,"src":"3332:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17614,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3279:72:54"},"returnParameters":{"id":17619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17806,"src":"3402:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17617,"name":"string","nodeType":"ElementaryTypeName","src":"3402:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3401:15:54"},"scope":18087,"src":"3262:4095:54","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17915,"nodeType":"Block","src":"7447:678:54","statements":[{"assignments":[17814],"declarations":[{"constant":false,"id":17814,"mutability":"mutable","name":"digits","nameLocation":"7471:6:54","nodeType":"VariableDeclaration","scope":17915,"src":"7458:19:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17813,"name":"bytes","nodeType":"ElementaryTypeName","src":"7458:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":17821,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17808,"src":"7486:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"7486:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7486:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":17816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7480:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":17815,"name":"bytes","nodeType":"ElementaryTypeName","src":"7480:5:54","typeDescriptions":{}}},"id":17820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7480:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7458:45:54"},{"assignments":[17823],"declarations":[{"constant":false,"id":17823,"mutability":"mutable","name":"digitsLength","nameLocation":"7522:12:54","nodeType":"VariableDeclaration","scope":17915,"src":"7514:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17822,"name":"uint256","nodeType":"ElementaryTypeName","src":"7514:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17826,"initialValue":{"expression":{"id":17824,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"7537:6:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7537:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7514:36:54"},{"assignments":[17828],"declarations":[{"constant":false,"id":17828,"mutability":"mutable","name":"separatorsLength","nameLocation":"7569:16:54","nodeType":"VariableDeclaration","scope":17915,"src":"7561:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17827,"name":"uint256","nodeType":"ElementaryTypeName","src":"7561:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17840,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17829,"name":"digitsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17823,"src":"7588:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":17830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7604:1:54","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"7588:17:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17833,"name":"digitsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17823,"src":"7613:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7628:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7613:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17836,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7612:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33","id":17837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7633:1:54","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"7612:22:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7588:46:54","trueExpression":{"hexValue":"30","id":17832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7608:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7561:73:54"},{"assignments":[17842],"declarations":[{"constant":false,"id":17842,"mutability":"mutable","name":"shift","nameLocation":"7653:5:54","nodeType":"VariableDeclaration","scope":17915,"src":"7645:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17841,"name":"uint256","nodeType":"ElementaryTypeName","src":"7645:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17846,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17843,"name":"digitsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17823,"src":"7661:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"33","id":17844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7676:1:54","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"7661:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7645:32:54"},{"assignments":[17848],"declarations":[{"constant":false,"id":17848,"mutability":"mutable","name":"separatorCount","nameLocation":"7696:14:54","nodeType":"VariableDeclaration","scope":17915,"src":"7688:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17847,"name":"uint256","nodeType":"ElementaryTypeName","src":"7688:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17850,"initialValue":{"hexValue":"30","id":17849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7713:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7688:26:54"},{"assignments":[17852],"declarations":[{"constant":false,"id":17852,"mutability":"mutable","name":"buffer","nameLocation":"7738:6:54","nodeType":"VariableDeclaration","scope":17915,"src":"7725:19:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17851,"name":"bytes","nodeType":"ElementaryTypeName","src":"7725:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":17859,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17855,"name":"digitsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17823,"src":"7757:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":17856,"name":"separatorsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17828,"src":"7772:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7757:31:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7747:9:54","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":17853,"name":"bytes","nodeType":"ElementaryTypeName","src":"7751:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":17858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7747:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7725:64:54"},{"body":{"id":17908,"nodeType":"Block","src":"7843:243:54","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"7862:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":17871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7867:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7862:6:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"7872:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":17874,"name":"shift","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17842,"src":"7877:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7872:10:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7862:20:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17877,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"7886:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"33","id":17878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7890:1:54","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"7886:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17880,"name":"shift","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17842,"src":"7895:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7886:14:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7862:38:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17897,"nodeType":"IfStatement","src":"7858:164:54","trueBody":{"id":17896,"nodeType":"Block","src":"7902:120:54","statements":[{"expression":{"id":17884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7921:16:54","subExpression":{"id":17883,"name":"separatorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17848,"src":"7923:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17885,"nodeType":"ExpressionStatement","src":"7921:16:54"},{"expression":{"id":17894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17886,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"7956:6:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17892,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"7963:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":17888,"name":"separatorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17848,"src":"7967:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7963:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7984:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7963:22:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7956:30:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17893,"name":"thousandSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17472,"src":"7989:17:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"7956:50:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":17895,"nodeType":"ExpressionStatement","src":"7956:50:54"}]}},{"expression":{"id":17906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17898,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"8036:6:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17902,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17899,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"8043:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":17900,"name":"separatorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17848,"src":"8047:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8043:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8036:26:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17903,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"8065:6:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17905,"indexExpression":{"id":17904,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"8072:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8065:9:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"8036:38:54","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":17907,"nodeType":"ExpressionStatement","src":"8036:38:54"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"7820:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17865,"name":"digitsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17823,"src":"7824:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7820:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17909,"initializationExpression":{"assignments":[17861],"declarations":[{"constant":false,"id":17861,"mutability":"mutable","name":"i","nameLocation":"7813:1:54","nodeType":"VariableDeclaration","scope":17909,"src":"7805:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17860,"name":"uint256","nodeType":"ElementaryTypeName","src":"7805:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17863,"initialValue":{"hexValue":"30","id":17862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7817:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7805:13:54"},"loopExpression":{"expression":{"id":17868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7838:3:54","subExpression":{"id":17867,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17861,"src":"7840:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17869,"nodeType":"ExpressionStatement","src":"7838:3:54"},"nodeType":"ForStatement","src":"7800:286:54"},{"expression":{"arguments":[{"id":17912,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"8110:6:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8103:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17910,"name":"string","nodeType":"ElementaryTypeName","src":"8103:6:54","typeDescriptions":{}}},"id":17913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8103:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":17812,"id":17914,"nodeType":"Return","src":"8096:21:54"}]},"id":17916,"implemented":true,"kind":"function","modifiers":[],"name":"addThousandSeparator","nameLocation":"7374:20:54","nodeType":"FunctionDefinition","parameters":{"id":17809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17808,"mutability":"mutable","name":"value","nameLocation":"7403:5:54","nodeType":"VariableDeclaration","scope":17916,"src":"7395:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17807,"name":"uint256","nodeType":"ElementaryTypeName","src":"7395:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7394:15:54"},"returnParameters":{"id":17812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17916,"src":"7432:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17810,"name":"string","nodeType":"ElementaryTypeName","src":"7432:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7431:15:54"},"scope":18087,"src":"7365:760:54","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":17940,"nodeType":"Block","src":"8268:279:54","statements":[{"expression":{"arguments":[{"arguments":[{"id":17929,"name":"imageBaseUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17487,"src":"8363:12:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17930,"name":"balanceLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17918,"src":"8398:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"8398:21:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8398:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17933,"name":"durationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17920,"src":"8444:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"8444:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":17935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8444:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17936,"name":"imageExtension","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"8491:14:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":17927,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8324:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"8324:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8324:200:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8299:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":17925,"name":"string","nodeType":"ElementaryTypeName","src":"8299:6:54","typeDescriptions":{}}},"id":17938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8299:240:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":17924,"id":17939,"nodeType":"Return","src":"8279:260:54"}]},"id":17941,"implemented":true,"kind":"function","modifiers":[],"name":"getImageUri","nameLocation":"8142:11:54","nodeType":"FunctionDefinition","parameters":{"id":17921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17918,"mutability":"mutable","name":"balanceLevel","nameLocation":"8162:12:54","nodeType":"VariableDeclaration","scope":17941,"src":"8154:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17917,"name":"uint256","nodeType":"ElementaryTypeName","src":"8154:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17920,"mutability":"mutable","name":"durationLevel","nameLocation":"8184:13:54","nodeType":"VariableDeclaration","scope":17941,"src":"8176:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17919,"name":"uint256","nodeType":"ElementaryTypeName","src":"8176:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8153:45:54"},"returnParameters":{"id":17924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17941,"src":"8248:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17922,"name":"string","nodeType":"ElementaryTypeName","src":"8248:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8247:15:54"},"scope":18087,"src":"8133:414:54","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":18060,"nodeType":"Block","src":"8642:684:54","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"8657:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17951,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"8665:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8657:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17953,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"8680:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":17955,"indexExpression":{"hexValue":"39","id":17954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8690:1:54","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8680:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17956,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"8695:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8680:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8657:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17961,"nodeType":"IfStatement","src":"8653:62:54","trueBody":{"expression":{"hexValue":"39","id":17959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8714:1:54","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"functionReturnParameters":17949,"id":17960,"nodeType":"Return","src":"8707:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"8730:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17963,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"8738:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8730:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17965,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"8753:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":17967,"indexExpression":{"hexValue":"38","id":17966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8763:1:54","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8753:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17968,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"8768:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8753:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8730:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17973,"nodeType":"IfStatement","src":"8726:62:54","trueBody":{"expression":{"hexValue":"38","id":17971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8787:1:54","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":17949,"id":17972,"nodeType":"Return","src":"8780:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17974,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"8803:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17975,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"8811:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8803:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17977,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"8826:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":17979,"indexExpression":{"hexValue":"37","id":17978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8836:1:54","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8826:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17980,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"8841:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8826:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8803:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17985,"nodeType":"IfStatement","src":"8799:62:54","trueBody":{"expression":{"hexValue":"37","id":17983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8860:1:54","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":17949,"id":17984,"nodeType":"Return","src":"8853:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"8876:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17987,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"8884:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8876:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17989,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"8899:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":17991,"indexExpression":{"hexValue":"36","id":17990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8909:1:54","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8899:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17992,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"8914:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8876:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17997,"nodeType":"IfStatement","src":"8872:62:54","trueBody":{"expression":{"hexValue":"36","id":17995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8933:1:54","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"functionReturnParameters":17949,"id":17996,"nodeType":"Return","src":"8926:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17998,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"8949:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":17999,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"8957:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8949:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":18001,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"8972:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":18003,"indexExpression":{"hexValue":"35","id":18002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8982:1:54","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8972:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18004,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"8987:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8972:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8949:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18009,"nodeType":"IfStatement","src":"8945:62:54","trueBody":{"expression":{"hexValue":"35","id":18007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9006:1:54","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"functionReturnParameters":17949,"id":18008,"nodeType":"Return","src":"8999:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18010,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"9022:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18011,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"9030:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9022:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":18013,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"9045:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":18015,"indexExpression":{"hexValue":"34","id":18014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9055:1:54","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9045:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18016,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"9060:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9045:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9022:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18021,"nodeType":"IfStatement","src":"9018:62:54","trueBody":{"expression":{"hexValue":"34","id":18019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9079:1:54","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"functionReturnParameters":17949,"id":18020,"nodeType":"Return","src":"9072:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18022,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"9095:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18023,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"9103:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9095:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":18025,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"9118:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":18027,"indexExpression":{"hexValue":"33","id":18026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9128:1:54","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9118:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18028,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"9133:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9095:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18033,"nodeType":"IfStatement","src":"9091:62:54","trueBody":{"expression":{"hexValue":"33","id":18031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9152:1:54","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"functionReturnParameters":17949,"id":18032,"nodeType":"Return","src":"9145:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"9168:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18035,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"9176:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9168:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":18037,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"9191:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":18039,"indexExpression":{"hexValue":"32","id":18038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9201:1:54","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9191:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18040,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"9206:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9191:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9168:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18045,"nodeType":"IfStatement","src":"9164:62:54","trueBody":{"expression":{"hexValue":"32","id":18043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9225:1:54","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"functionReturnParameters":17949,"id":18044,"nodeType":"Return","src":"9218:8:54"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18046,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17943,"src":"9241:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18047,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17469,"src":"9249:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9241:19:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":18049,"name":"exponents","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17466,"src":"9264:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$10_storage","typeString":"uint256[10] storage ref"}},"id":18051,"indexExpression":{"hexValue":"31","id":18050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9274:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9264:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18052,"name":"multiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17945,"src":"9279:10:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9264:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9241:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18057,"nodeType":"IfStatement","src":"9237:62:54","trueBody":{"expression":{"hexValue":"31","id":18055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9298:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":17949,"id":18056,"nodeType":"Return","src":"9291:8:54"}},{"expression":{"hexValue":"30","id":18058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9317:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":17949,"id":18059,"nodeType":"Return","src":"9310:8:54"}]},"id":18061,"implemented":true,"kind":"function","modifiers":[],"name":"getExponent","nameLocation":"8564:11:54","nodeType":"FunctionDefinition","parameters":{"id":17946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17943,"mutability":"mutable","name":"value","nameLocation":"8584:5:54","nodeType":"VariableDeclaration","scope":18061,"src":"8576:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17942,"name":"uint256","nodeType":"ElementaryTypeName","src":"8576:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17945,"mutability":"mutable","name":"multiplier","nameLocation":"8599:10:54","nodeType":"VariableDeclaration","scope":18061,"src":"8591:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17944,"name":"uint256","nodeType":"ElementaryTypeName","src":"8591:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8575:35:54"},"returnParameters":{"id":17949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18061,"src":"8633:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17947,"name":"uint256","nodeType":"ElementaryTypeName","src":"8633:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8632:9:54"},"scope":18087,"src":"8555:771:54","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":18085,"nodeType":"Block","src":"9396:84:54","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18068,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18063,"src":"9414:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"31","id":18069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9418:7:54","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"9414:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"id":18073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":18071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9429:7:54","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":18072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9439:1:54","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9429:11:54","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"}},"src":"9414:26:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18080,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18063,"src":"9461:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31","id":18081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9465:7:54","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"9461:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9414:58:54","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18075,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18063,"src":"9443:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31","id":18076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9447:7:54","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"9443:11:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":18078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9457:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9443:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18067,"id":18084,"nodeType":"Return","src":"9407:65:54"}]},"id":18086,"implemented":true,"kind":"function","modifiers":[],"name":"parseEther","nameLocation":"9343:10:54","nodeType":"FunctionDefinition","parameters":{"id":18064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18063,"mutability":"mutable","name":"a","nameLocation":"9362:1:54","nodeType":"VariableDeclaration","scope":18086,"src":"9354:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18062,"name":"uint256","nodeType":"ElementaryTypeName","src":"9354:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9353:11:54"},"returnParameters":{"id":18067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18086,"src":"9387:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18065,"name":"uint256","nodeType":"ElementaryTypeName","src":"9387:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9386:9:54"},"scope":18087,"src":"9334:146:54","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":18088,"src":"964:8519:54","usedErrors":[]}],"src":"35:9450:54"},"id":54},"contracts/staking-positions/interfaces/IPangolinFactory.sol":{"ast":{"absolutePath":"contracts/staking-positions/interfaces/IPangolinFactory.sol","exportedSymbols":{"IPangolinFactory":[18099]},"id":18100,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":18089,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"35:23:55"},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinFactory","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":18099,"linearizedBaseContracts":[18099],"name":"IPangolinFactory","nameLocation":"72:16:55","nodeType":"ContractDefinition","nodes":[{"functionSelector":"e6a43905","id":18098,"implemented":false,"kind":"function","modifiers":[],"name":"getPair","nameLocation":"105:7:55","nodeType":"FunctionDefinition","parameters":{"id":18094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18091,"mutability":"mutable","name":"tokenA","nameLocation":"121:6:55","nodeType":"VariableDeclaration","scope":18098,"src":"113:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18090,"name":"address","nodeType":"ElementaryTypeName","src":"113:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18093,"mutability":"mutable","name":"tokenB","nameLocation":"137:6:55","nodeType":"VariableDeclaration","scope":18098,"src":"129:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18092,"name":"address","nodeType":"ElementaryTypeName","src":"129:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"112:32:55"},"returnParameters":{"id":18097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18096,"mutability":"mutable","name":"pair","nameLocation":"176:4:55","nodeType":"VariableDeclaration","scope":18098,"src":"168:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18095,"name":"address","nodeType":"ElementaryTypeName","src":"168:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"167:14:55"},"scope":18099,"src":"96:86:55","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":18100,"src":"62:123:55","usedErrors":[]}],"src":"35:152:55"},"id":55},"contracts/staking-positions/interfaces/IPangolinPair.sol":{"ast":{"absolutePath":"contracts/staking-positions/interfaces/IPangolinPair.sol","exportedSymbols":{"IPangolinPair":[18128]},"id":18129,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":18101,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"35:23:56"},{"abstract":false,"baseContracts":[],"canonicalName":"IPangolinPair","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":18128,"linearizedBaseContracts":[18128],"name":"IPangolinPair","nameLocation":"72:13:56","nodeType":"ContractDefinition","nodes":[{"functionSelector":"0dfe1681","id":18106,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nameLocation":"102:6:56","nodeType":"FunctionDefinition","parameters":{"id":18102,"nodeType":"ParameterList","parameters":[],"src":"108:2:56"},"returnParameters":{"id":18105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18106,"src":"134:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18103,"name":"address","nodeType":"ElementaryTypeName","src":"134:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"133:9:56"},"scope":18128,"src":"93:50:56","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d21220a7","id":18111,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nameLocation":"160:6:56","nodeType":"FunctionDefinition","parameters":{"id":18107,"nodeType":"ParameterList","parameters":[],"src":"166:2:56"},"returnParameters":{"id":18110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18111,"src":"192:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18108,"name":"address","nodeType":"ElementaryTypeName","src":"192:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"191:9:56"},"scope":18128,"src":"151:50:56","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0902f1ac","id":18120,"implemented":false,"kind":"function","modifiers":[],"name":"getReserves","nameLocation":"218:11:56","nodeType":"FunctionDefinition","parameters":{"id":18112,"nodeType":"ParameterList","parameters":[],"src":"229:2:56"},"returnParameters":{"id":18119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18114,"mutability":"mutable","name":"reserve0","nameLocation":"263:8:56","nodeType":"VariableDeclaration","scope":18120,"src":"255:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":18113,"name":"uint112","nodeType":"ElementaryTypeName","src":"255:7:56","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":18116,"mutability":"mutable","name":"reserve1","nameLocation":"281:8:56","nodeType":"VariableDeclaration","scope":18120,"src":"273:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":18115,"name":"uint112","nodeType":"ElementaryTypeName","src":"273:7:56","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"},{"constant":false,"id":18118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18120,"src":"291:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":18117,"name":"uint32","nodeType":"ElementaryTypeName","src":"291:6:56","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"254:44:56"},"scope":18128,"src":"209:90:56","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6a627842","id":18127,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"316:4:56","nodeType":"FunctionDefinition","parameters":{"id":18123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18122,"mutability":"mutable","name":"to","nameLocation":"329:2:56","nodeType":"VariableDeclaration","scope":18127,"src":"321:10:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18121,"name":"address","nodeType":"ElementaryTypeName","src":"321:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"320:12:56"},"returnParameters":{"id":18126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18125,"mutability":"mutable","name":"liquidity","nameLocation":"359:9:56","nodeType":"VariableDeclaration","scope":18127,"src":"351:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18124,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"350:19:56"},"scope":18128,"src":"307:63:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":18129,"src":"62:311:56","usedErrors":[]}],"src":"35:340:56"},"id":56},"contracts/staking-positions/interfaces/IRewarder.sol":{"ast":{"absolutePath":"contracts/staking-positions/interfaces/IRewarder.sol","exportedSymbols":{"IRewarder":[18144]},"id":18145,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":18130,"literals":["solidity",">=","0.6",".0"],"nodeType":"PragmaDirective","src":"35:24:57"},{"abstract":false,"baseContracts":[],"canonicalName":"IRewarder","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":18144,"linearizedBaseContracts":[18144],"name":"IRewarder","nameLocation":"73:9:57","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ba782bee","id":18143,"implemented":false,"kind":"function","modifiers":[],"name":"onReward","nameLocation":"99:8:57","nodeType":"FunctionDefinition","parameters":{"id":18141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18132,"mutability":"mutable","name":"pid","nameLocation":"126:3:57","nodeType":"VariableDeclaration","scope":18143,"src":"118:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18131,"name":"uint256","nodeType":"ElementaryTypeName","src":"118:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18134,"mutability":"mutable","name":"user","nameLocation":"148:4:57","nodeType":"VariableDeclaration","scope":18143,"src":"140:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18133,"name":"address","nodeType":"ElementaryTypeName","src":"140:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18136,"mutability":"mutable","name":"destructiveAction","nameLocation":"168:17:57","nodeType":"VariableDeclaration","scope":18143,"src":"163:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18135,"name":"bool","nodeType":"ElementaryTypeName","src":"163:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18138,"mutability":"mutable","name":"rewardAmount","nameLocation":"204:12:57","nodeType":"VariableDeclaration","scope":18143,"src":"196:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18137,"name":"uint256","nodeType":"ElementaryTypeName","src":"196:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18140,"mutability":"mutable","name":"newLpAmount","nameLocation":"235:11:57","nodeType":"VariableDeclaration","scope":18143,"src":"227:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18139,"name":"uint256","nodeType":"ElementaryTypeName","src":"227:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"107:146:57"},"returnParameters":{"id":18142,"nodeType":"ParameterList","parameters":[],"src":"262:0:57"},"scope":18144,"src":"90:173:57","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":18145,"src":"63:203:57","usedErrors":[]}],"src":"35:233:57"},"id":57},"contracts/staking-positions/interfaces/IWAVAX.sol":{"ast":{"absolutePath":"contracts/staking-positions/interfaces/IWAVAX.sol","exportedSymbols":{"IWAVAX":[18150]},"id":18151,"license":"GPLv3","nodeType":"SourceUnit","nodes":[{"id":18146,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"35:23:58"},{"abstract":false,"baseContracts":[],"canonicalName":"IWAVAX","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":18150,"linearizedBaseContracts":[18150],"name":"IWAVAX","nameLocation":"72:6:58","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d0e30db0","id":18149,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"95:7:58","nodeType":"FunctionDefinition","parameters":{"id":18147,"nodeType":"ParameterList","parameters":[],"src":"102:2:58"},"returnParameters":{"id":18148,"nodeType":"ParameterList","parameters":[],"src":"121:0:58"},"scope":18150,"src":"86:36:58","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":18151,"src":"62:63:58","usedErrors":[]}],"src":"35:92:58"},"id":58},"contracts/treasury-vester/TreasuryVesterLinear.sol":{"ast":{"absolutePath":"contracts/treasury-vester/TreasuryVesterLinear.sol","exportedSymbols":{"Address":[4617],"Context":[4686],"IERC20":[1502],"IERC20Permit":[2533],"IMiniChefV2":[18162],"IPng":[18172],"Ownable":[651],"SafeERC20":[2814],"TreasuryVesterLinear":[18512]},"id":18513,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":18152,"literals":["solidity","0.8",".15"],"nodeType":"PragmaDirective","src":"33:23:59"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":18153,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18513,"sourceUnit":2815,"src":"60:65:59","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":18154,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18513,"sourceUnit":652,"src":"127:52:59","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IMiniChefV2","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":18162,"linearizedBaseContracts":[18162],"name":"IMiniChefV2","nameLocation":"193:11:59","nodeType":"ContractDefinition","nodes":[{"functionSelector":"28662551","id":18161,"implemented":false,"kind":"function","modifiers":[],"name":"fundRewards","nameLocation":"221:11:59","nodeType":"FunctionDefinition","parameters":{"id":18159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18156,"mutability":"mutable","name":"newFunding","nameLocation":"241:10:59","nodeType":"VariableDeclaration","scope":18161,"src":"233:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18155,"name":"uint256","nodeType":"ElementaryTypeName","src":"233:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18158,"mutability":"mutable","name":"duration","nameLocation":"261:8:59","nodeType":"VariableDeclaration","scope":18161,"src":"253:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18157,"name":"uint256","nodeType":"ElementaryTypeName","src":"253:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"232:38:59"},"returnParameters":{"id":18160,"nodeType":"ParameterList","parameters":[],"src":"279:0:59"},"scope":18162,"src":"212:68:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":18513,"src":"183:100:59","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":18163,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":1502,"src":"305:6:59"},"id":18164,"nodeType":"InheritanceSpecifier","src":"305:6:59"}],"canonicalName":"IPng","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":18172,"linearizedBaseContracts":[18172,1502],"name":"IPng","nameLocation":"297:4:59","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40c10f19","id":18171,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"328:4:59","nodeType":"FunctionDefinition","parameters":{"id":18169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18166,"mutability":"mutable","name":"dst","nameLocation":"341:3:59","nodeType":"VariableDeclaration","scope":18171,"src":"333:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18165,"name":"address","nodeType":"ElementaryTypeName","src":"333:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18168,"mutability":"mutable","name":"rawAmount","nameLocation":"351:9:59","nodeType":"VariableDeclaration","scope":18171,"src":"346:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18167,"name":"uint","nodeType":"ElementaryTypeName","src":"346:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"332:29:59"},"returnParameters":{"id":18170,"nodeType":"ParameterList","parameters":[],"src":"370:0:59"},"scope":18172,"src":"319:52:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":18513,"src":"287:87:59","usedErrors":[]},{"abstract":false,"baseContracts":[{"baseName":{"id":18174,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":651,"src":"540:7:59"},"id":18175,"nodeType":"InheritanceSpecifier","src":"540:7:59"}],"canonicalName":"TreasuryVesterLinear","contractDependencies":[],"contractKind":"contract","documentation":{"id":18173,"nodeType":"StructuredDocumentation","src":"378:127:59","text":" @notice A contract that vests & distributes tokens.\n It only distributes a single token with a `mint` function."},"fullyImplemented":true,"id":18512,"linearizedBaseContracts":[18512,651,4686],"name":"TreasuryVesterLinear","nameLocation":"516:20:59","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18179,"libraryName":{"id":18176,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":2814,"src":"561:9:59"},"nodeType":"UsingForDirective","src":"555:25:59","typeName":{"id":18178,"nodeType":"UserDefinedTypeName","pathNode":{"id":18177,"name":"IPng","nodeType":"IdentifierPath","referencedDeclaration":18172,"src":"575:4:59"},"referencedDeclaration":18172,"src":"575:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}}},{"canonicalName":"TreasuryVesterLinear.Recipient","id":18186,"members":[{"constant":false,"id":18181,"mutability":"mutable","name":"account","nameLocation":"623:7:59","nodeType":"VariableDeclaration","scope":18186,"src":"615:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18180,"name":"address","nodeType":"ElementaryTypeName","src":"615:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18183,"mutability":"mutable","name":"allocation","nameLocation":"646:10:59","nodeType":"VariableDeclaration","scope":18186,"src":"641:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18182,"name":"uint","nodeType":"ElementaryTypeName","src":"641:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18185,"mutability":"mutable","name":"isMiniChef","nameLocation":"672:10:59","nodeType":"VariableDeclaration","scope":18186,"src":"667:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18184,"name":"bool","nodeType":"ElementaryTypeName","src":"667:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Recipient","nameLocation":"595:9:59","nodeType":"StructDefinition","scope":18512,"src":"588:102:59","visibility":"public"},{"constant":false,"documentation":{"id":18187,"nodeType":"StructuredDocumentation","src":"698:57:59","text":"@notice The list of recipients who have an allocation"},"functionSelector":"d1bc76a1","id":18191,"mutability":"mutable","name":"recipients","nameLocation":"780:10:59","nodeType":"VariableDeclaration","scope":18512,"src":"761:29:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage","typeString":"struct TreasuryVesterLinear.Recipient[]"},"typeName":{"baseType":{"id":18189,"nodeType":"UserDefinedTypeName","pathNode":{"id":18188,"name":"Recipient","nodeType":"IdentifierPath","referencedDeclaration":18186,"src":"761:9:59"},"referencedDeclaration":18186,"src":"761:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient"}},"id":18190,"nodeType":"ArrayTypeName","src":"761:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient[]"}},"visibility":"public"},{"constant":false,"documentation":{"id":18192,"nodeType":"StructuredDocumentation","src":"799:55:59","text":"@notice The multisig who can initialize the vesting"},"functionSelector":"452a9320","id":18194,"mutability":"mutable","name":"guardian","nameLocation":"875:8:59","nodeType":"VariableDeclaration","scope":18512,"src":"860:23:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18193,"name":"address","nodeType":"ElementaryTypeName","src":"860:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":18195,"nodeType":"StructuredDocumentation","src":"892:41:59","text":"@notice The token to be vested/minted"},"functionSelector":"5de29741","id":18198,"mutability":"immutable","name":"vestedToken","nameLocation":"961:11:59","nodeType":"VariableDeclaration","scope":18512,"src":"939:33:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"},"typeName":{"id":18197,"nodeType":"UserDefinedTypeName","pathNode":{"id":18196,"name":"IPng","nodeType":"IdentifierPath","referencedDeclaration":18172,"src":"939:4:59"},"referencedDeclaration":18172,"src":"939:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}},"visibility":"public"},{"constant":false,"documentation":{"id":18199,"nodeType":"StructuredDocumentation","src":"981:49:59","text":"@notice Whether the vesting is enabled or not"},"functionSelector":"7f87bbd6","id":18201,"mutability":"mutable","name":"vestingEnabled","nameLocation":"1048:14:59","nodeType":"VariableDeclaration","scope":18512,"src":"1036:26:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18200,"name":"bool","nodeType":"ElementaryTypeName","src":"1036:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"constant":false,"documentation":{"id":18202,"nodeType":"StructuredDocumentation","src":"1071:46:59","text":"@notice The time stamp of the last vesting"},"functionSelector":"c0463711","id":18204,"mutability":"mutable","name":"lastUpdate","nameLocation":"1135:10:59","nodeType":"VariableDeclaration","scope":18512,"src":"1123:22:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18203,"name":"uint","nodeType":"ElementaryTypeName","src":"1123:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":18205,"nodeType":"StructuredDocumentation","src":"1154:60:59","text":"@notice The amount of tokens distributed on each vesting"},"functionSelector":"0d8f82fd","id":18207,"mutability":"immutable","name":"dailyVestingAmount","nameLocation":"1242:18:59","nodeType":"VariableDeclaration","scope":18512,"src":"1220:40:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18206,"name":"uint","nodeType":"ElementaryTypeName","src":"1220:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":true,"documentation":{"id":18208,"nodeType":"StructuredDocumentation","src":"1269:80:59","text":"@notice The denominator for both the allocations and the vesting percentages"},"id":18211,"mutability":"constant","name":"DENOMINATOR","nameLocation":"1377:11:59","nodeType":"VariableDeclaration","scope":18512,"src":"1355:41:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18209,"name":"uint","nodeType":"ElementaryTypeName","src":"1355:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030","id":18210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1391:5:59","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"visibility":"private"},{"constant":true,"documentation":{"id":18212,"nodeType":"StructuredDocumentation","src":"1405:67:59","text":"@notice The minimum duration between two vestings (i.e.: 1 day)"},"id":18215,"mutability":"constant","name":"VESTING_CLIFF","nameLocation":"1500:13:59","nodeType":"VariableDeclaration","scope":18512,"src":"1478:43:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18213,"name":"uint","nodeType":"ElementaryTypeName","src":"1478:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3836343030","id":18214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1516:5:59","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"86400"},"visibility":"private"},{"body":{"id":18273,"nodeType":"Block","src":"2063:490:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18230,"name":"newDailyVestingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18226,"src":"2082:21:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":18231,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"2106:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2082:35:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a436f6e7374727563746f723a206c6f772076657374696e6720616d6f756e74","id":18233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2119:49:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd6da1a76a3c4917dd482549ae7e1bc7a12eef2df6f859ac2425059dfef89282","typeString":"literal_string \"TreasuryVester::Constructor: low vesting amount\""},"value":"TreasuryVester::Constructor: low vesting amount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fd6da1a76a3c4917dd482549ae7e1bc7a12eef2df6f859ac2425059dfef89282","typeString":"literal_string \"TreasuryVester::Constructor: low vesting amount\""}],"id":18229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2074:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2074:95:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18235,"nodeType":"ExpressionStatement","src":"2074:95:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18237,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18224,"src":"2188:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2211:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2203:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18238,"name":"address","nodeType":"ElementaryTypeName","src":"2203:7:59","typeDescriptions":{}}},"id":18241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2203:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2188:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a436f6e7374727563746f723a20696e76616c696420677561726469616e2061646472657373","id":18243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2215:55:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fd2324a2ffeeca26bb5a7899f7b17b617ba13cffb0fa8a49bcc701d67dc6426","typeString":"literal_string \"TreasuryVester::Constructor: invalid guardian address\""},"value":"TreasuryVester::Constructor: invalid guardian address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0fd2324a2ffeeca26bb5a7899f7b17b617ba13cffb0fa8a49bcc701d67dc6426","typeString":"literal_string \"TreasuryVester::Constructor: invalid guardian address\""}],"id":18236,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2180:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2180:91:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18245,"nodeType":"ExpressionStatement","src":"2180:91:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":18247,"name":"newVestedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18218,"src":"2290:14:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"2290:19:59","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":18249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2290:26:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2319:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2290:30:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a436f6e7374727563746f723a20696e76616c696420746f6b656e2061646472657373","id":18252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2322:52:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_4802f48874e7ccd34416d6409692387aed59c9966d421c77b823e38e339bb797","typeString":"literal_string \"TreasuryVester::Constructor: invalid token address\""},"value":"TreasuryVester::Constructor: invalid token address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4802f48874e7ccd34416d6409692387aed59c9966d421c77b823e38e339bb797","typeString":"literal_string \"TreasuryVester::Constructor: invalid token address\""}],"id":18246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2282:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2282:93:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18254,"nodeType":"ExpressionStatement","src":"2282:93:59"},{"expression":{"id":18257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18255,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18194,"src":"2386:8:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18256,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18224,"src":"2397:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2386:22:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18258,"nodeType":"ExpressionStatement","src":"2386:22:59"},{"expression":{"id":18263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18259,"name":"vestedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18198,"src":"2419:11:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18261,"name":"newVestedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18218,"src":"2438:14:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18260,"name":"IPng","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18172,"src":"2433:4:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPng_$18172_$","typeString":"type(contract IPng)"}},"id":18262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2433:20:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}},"src":"2419:34:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}},"id":18264,"nodeType":"ExpressionStatement","src":"2419:34:59"},{"expression":{"id":18267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18265,"name":"dailyVestingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18207,"src":"2464:18:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18266,"name":"newDailyVestingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18226,"src":"2485:21:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2464:42:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18268,"nodeType":"ExpressionStatement","src":"2464:42:59"},{"expression":{"arguments":[{"id":18270,"name":"newRecipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18222,"src":"2531:13:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory[] memory"}],"id":18269,"name":"setRecipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18466,"src":"2517:13:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct TreasuryVesterLinear.Recipient memory[] memory)"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2517:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18272,"nodeType":"ExpressionStatement","src":"2517:28:59"}]},"documentation":{"id":18216,"nodeType":"StructuredDocumentation","src":"1530:365:59","text":" @notice Construct a new TreasuryVester contract\n @param newVestedToken The token that is being vested & distributed\n @param newRecipients Recipients with an allocation\n @param newGuardian An authorized address that can initialize the vesting\n @param newDailyVestingAmount The total number of tokens to be distributed"},"id":18274,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18218,"mutability":"mutable","name":"newVestedToken","nameLocation":"1931:14:59","nodeType":"VariableDeclaration","scope":18274,"src":"1923:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18217,"name":"address","nodeType":"ElementaryTypeName","src":"1923:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18222,"mutability":"mutable","name":"newRecipients","nameLocation":"1975:13:59","nodeType":"VariableDeclaration","scope":18274,"src":"1956:32:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient[]"},"typeName":{"baseType":{"id":18220,"nodeType":"UserDefinedTypeName","pathNode":{"id":18219,"name":"Recipient","nodeType":"IdentifierPath","referencedDeclaration":18186,"src":"1956:9:59"},"referencedDeclaration":18186,"src":"1956:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient"}},"id":18221,"nodeType":"ArrayTypeName","src":"1956:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient[]"}},"visibility":"internal"},{"constant":false,"id":18224,"mutability":"mutable","name":"newGuardian","nameLocation":"2007:11:59","nodeType":"VariableDeclaration","scope":18274,"src":"1999:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18223,"name":"address","nodeType":"ElementaryTypeName","src":"1999:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18226,"mutability":"mutable","name":"newDailyVestingAmount","nameLocation":"2034:21:59","nodeType":"VariableDeclaration","scope":18274,"src":"2029:26:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18225,"name":"uint","nodeType":"ElementaryTypeName","src":"2029:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1912:150:59"},"returnParameters":{"id":18228,"nodeType":"ParameterList","parameters":[],"src":"2063:0:59"},"scope":18512,"src":"1901:652:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18373,"nodeType":"Block","src":"2780:1154:59","statements":[{"expression":{"arguments":[{"id":18279,"name":"vestingEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18201,"src":"2799:14:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a646973747269627574653a2076657374696e67206973206e6f7420656e61626c6564","id":18280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2815:52:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_77243531fc44ff4ed9fca6d2ebd8511252683c1dc604273b03638450ba77e36e","typeString":"literal_string \"TreasuryVester::distribute: vesting is not enabled\""},"value":"TreasuryVester::distribute: vesting is not enabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77243531fc44ff4ed9fca6d2ebd8511252683c1dc604273b03638450ba77e36e","typeString":"literal_string \"TreasuryVester::distribute: vesting is not enabled\""}],"id":18278,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2791:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2791:77:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18282,"nodeType":"ExpressionStatement","src":"2791:77:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18284,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2901:5:59","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"2901:15:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18286,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18204,"src":"2920:10:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18287,"name":"VESTING_CLIFF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18215,"src":"2933:13:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2920:26:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2901:45:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a646973747269627574653a20697420697320746f6f206561726c7920746f2064697374726962757465","id":18290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2961:59:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_d9988717070b3568d7998e686694b9786045d53924bc0958f4c21d04364083b1","typeString":"literal_string \"TreasuryVester::distribute: it is too early to distribute\""},"value":"TreasuryVester::distribute: it is too early to distribute"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d9988717070b3568d7998e686694b9786045d53924bc0958f4c21d04364083b1","typeString":"literal_string \"TreasuryVester::distribute: it is too early to distribute\""}],"id":18283,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2879:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2879:152:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18292,"nodeType":"ExpressionStatement","src":"2879:152:59"},{"expression":{"id":18296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18293,"name":"lastUpdate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18204,"src":"3042:10:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18294,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3055:5:59","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"3055:15:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3042:28:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18297,"nodeType":"ExpressionStatement","src":"3042:28:59"},{"assignments":[18299],"declarations":[{"constant":false,"id":18299,"mutability":"mutable","name":"length","nameLocation":"3176:6:59","nodeType":"VariableDeclaration","scope":18373,"src":"3171:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18298,"name":"uint","nodeType":"ElementaryTypeName","src":"3171:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18302,"initialValue":{"expression":{"id":18300,"name":"recipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18191,"src":"3185:10:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage","typeString":"struct TreasuryVesterLinear.Recipient storage ref[] storage ref"}},"id":18301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3185:17:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3171:31:59"},{"body":{"id":18368,"nodeType":"Block","src":"3243:654:59","statements":[{"assignments":[18314],"declarations":[{"constant":false,"id":18314,"mutability":"mutable","name":"recipient","nameLocation":"3275:9:59","nodeType":"VariableDeclaration","scope":18368,"src":"3258:26:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient"},"typeName":{"id":18313,"nodeType":"UserDefinedTypeName","pathNode":{"id":18312,"name":"Recipient","nodeType":"IdentifierPath","referencedDeclaration":18186,"src":"3258:9:59"},"referencedDeclaration":18186,"src":"3258:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient"}},"visibility":"internal"}],"id":18318,"initialValue":{"baseExpression":{"id":18315,"name":"recipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18191,"src":"3287:10:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage","typeString":"struct TreasuryVesterLinear.Recipient storage ref[] storage ref"}},"id":18317,"indexExpression":{"id":18316,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18304,"src":"3298:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3287:13:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_storage","typeString":"struct TreasuryVesterLinear.Recipient storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3258:42:59"},{"assignments":[18320],"declarations":[{"constant":false,"id":18320,"mutability":"mutable","name":"amount","nameLocation":"3320:6:59","nodeType":"VariableDeclaration","scope":18368,"src":"3315:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18319,"name":"uint","nodeType":"ElementaryTypeName","src":"3315:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18327,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18321,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18314,"src":"3329:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"allocation","nodeType":"MemberAccess","referencedDeclaration":18183,"src":"3329:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":18323,"name":"dailyVestingAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18207,"src":"3352:18:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3329:41:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":18325,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"3373:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3329:55:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3315:69:59"},{"condition":{"expression":{"id":18328,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18314,"src":"3403:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isMiniChef","nodeType":"MemberAccess","referencedDeclaration":18185,"src":"3403:20:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18366,"nodeType":"Block","src":"3734:152:59","statements":[{"expression":{"arguments":[{"expression":{"id":18361,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18314,"src":"3844:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"account","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"3844:17:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18363,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18320,"src":"3863:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18358,"name":"vestedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18198,"src":"3827:11:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}},"id":18360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":18171,"src":"3827:16:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":18364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3827:43:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18365,"nodeType":"ExpressionStatement","src":"3827:43:59"}]},"id":18367,"nodeType":"IfStatement","src":"3399:487:59","trueBody":{"id":18357,"nodeType":"Block","src":"3425:303:59","statements":[{"expression":{"arguments":[{"arguments":[{"id":18335,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3549:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryVesterLinear_$18512","typeString":"contract TreasuryVesterLinear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryVesterLinear_$18512","typeString":"contract TreasuryVesterLinear"}],"id":18334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18333,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:59","typeDescriptions":{}}},"id":18336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3541:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18337,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18320,"src":"3556:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18330,"name":"vestedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18198,"src":"3524:11:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}},"id":18332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":18171,"src":"3524:16:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":18338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3524:39:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18339,"nodeType":"ExpressionStatement","src":"3524:39:59"},{"expression":{"arguments":[{"expression":{"id":18343,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18314,"src":"3602:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"account","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"3602:17:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18345,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18320,"src":"3621:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18340,"name":"vestedToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18198,"src":"3582:11:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPng_$18172","typeString":"contract IPng"}},"id":18342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":1489,"src":"3582:19:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":18346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3582:46:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18347,"nodeType":"ExpressionStatement","src":"3582:46:59"},{"expression":{"arguments":[{"id":18353,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18320,"src":"3690:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18354,"name":"VESTING_CLIFF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18215,"src":"3698:13:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":18349,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18314,"src":"3659:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"account","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"3659:17:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18348,"name":"IMiniChefV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18162,"src":"3647:11:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiniChefV2_$18162_$","typeString":"type(contract IMiniChefV2)"}},"id":18351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3647:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiniChefV2_$18162","typeString":"contract IMiniChefV2"}},"id":18352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fundRewards","nodeType":"MemberAccess","referencedDeclaration":18161,"src":"3647:42:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":18355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3647:65:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18356,"nodeType":"ExpressionStatement","src":"3647:65:59"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18306,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18304,"src":"3226:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18307,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18299,"src":"3230:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:10:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18369,"initializationExpression":{"assignments":[18304],"declarations":[{"constant":false,"id":18304,"mutability":"mutable","name":"i","nameLocation":"3223:1:59","nodeType":"VariableDeclaration","scope":18369,"src":"3218:6:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18303,"name":"uint","nodeType":"ElementaryTypeName","src":"3218:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18305,"nodeType":"VariableDeclarationStatement","src":"3218:6:59"},"loopExpression":{"expression":{"id":18310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3238:3:59","subExpression":{"id":18309,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18304,"src":"3240:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18311,"nodeType":"ExpressionStatement","src":"3238:3:59"},"nodeType":"ForStatement","src":"3213:684:59"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18370,"name":"TokensVested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18504,"src":"3912:12:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3912:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18372,"nodeType":"EmitStatement","src":"3907:19:59"}]},"documentation":{"id":18275,"nodeType":"StructuredDocumentation","src":"2561:182:59","text":" @notice Distributes the tokens to recipients based on their allocation\n @dev If the vesting is enabled, anyone can call this function with 1 day intervals"},"functionSelector":"e4fc6b6d","id":18374,"implemented":true,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"2758:10:59","nodeType":"FunctionDefinition","parameters":{"id":18276,"nodeType":"ParameterList","parameters":[],"src":"2768:2:59"},"returnParameters":{"id":18277,"nodeType":"ParameterList","parameters":[],"src":"2780:0:59"},"scope":18512,"src":"2749:1185:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18465,"nodeType":"Block","src":"4230:968:59","statements":[{"expression":{"id":18385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4241:17:59","subExpression":{"id":18384,"name":"recipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18191,"src":"4248:10:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage","typeString":"struct TreasuryVesterLinear.Recipient storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18386,"nodeType":"ExpressionStatement","src":"4241:17:59"},{"assignments":[18388],"declarations":[{"constant":false,"id":18388,"mutability":"mutable","name":"length","nameLocation":"4274:6:59","nodeType":"VariableDeclaration","scope":18465,"src":"4269:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18387,"name":"uint","nodeType":"ElementaryTypeName","src":"4269:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18391,"initialValue":{"expression":{"id":18389,"name":"newRecipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18379,"src":"4283:13:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory[] memory"}},"id":18390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4283:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4269:34:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18393,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18388,"src":"4336:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4346:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4336:11:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18396,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18388,"src":"4351:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3431","id":18397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4360:2:59","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"},"src":"4351:11:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4336:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a20696e76616c696420726563697069656e74206e756d626572","id":18400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4377:57:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e","typeString":"literal_string \"TreasuryVester::setRecipients: invalid recipient number\""},"value":"TreasuryVester::setRecipients: invalid recipient number"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e","typeString":"literal_string \"TreasuryVester::setRecipients: invalid recipient number\""}],"id":18392,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4314:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4314:131:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18402,"nodeType":"ExpressionStatement","src":"4314:131:59"},{"assignments":[18404],"declarations":[{"constant":false,"id":18404,"mutability":"mutable","name":"allocations","nameLocation":"4461:11:59","nodeType":"VariableDeclaration","scope":18465,"src":"4456:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18403,"name":"uint","nodeType":"ElementaryTypeName","src":"4456:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18405,"nodeType":"VariableDeclarationStatement","src":"4456:16:59"},{"body":{"id":18452,"nodeType":"Block","src":"4513:488:59","statements":[{"assignments":[18417],"declarations":[{"constant":false,"id":18417,"mutability":"mutable","name":"recipient","nameLocation":"4545:9:59","nodeType":"VariableDeclaration","scope":18452,"src":"4528:26:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient"},"typeName":{"id":18416,"nodeType":"UserDefinedTypeName","pathNode":{"id":18415,"name":"Recipient","nodeType":"IdentifierPath","referencedDeclaration":18186,"src":"4528:9:59"},"referencedDeclaration":18186,"src":"4528:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient"}},"visibility":"internal"}],"id":18421,"initialValue":{"baseExpression":{"id":18418,"name":"newRecipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18379,"src":"4557:13:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory[] memory"}},"id":18420,"indexExpression":{"id":18419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18407,"src":"4571:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4557:16:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"nodeType":"VariableDeclarationStatement","src":"4528:45:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18423,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18417,"src":"4614:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"account","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"4614:17:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4643:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4635:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18425,"name":"address","nodeType":"ElementaryTypeName","src":"4635:7:59","typeDescriptions":{}}},"id":18428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4635:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4614:31:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a20696e76616c696420726563697069656e742061646472657373","id":18430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4664:58:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c","typeString":"literal_string \"TreasuryVester::setRecipients: invalid recipient address\""},"value":"TreasuryVester::setRecipients: invalid recipient address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c","typeString":"literal_string \"TreasuryVester::setRecipients: invalid recipient address\""}],"id":18422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4588:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4588:149:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18432,"nodeType":"ExpressionStatement","src":"4588:149:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18434,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18417,"src":"4778:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"allocation","nodeType":"MemberAccess","referencedDeclaration":18183,"src":"4778:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4802:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4778:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a20696e76616c696420726563697069656e7420616c6c6f636174696f6e","id":18438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4822:61:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec","typeString":"literal_string \"TreasuryVester::setRecipients: invalid recipient allocation\""},"value":"TreasuryVester::setRecipients: invalid recipient allocation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec","typeString":"literal_string \"TreasuryVester::setRecipients: invalid recipient allocation\""}],"id":18433,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4752:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4752:146:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18440,"nodeType":"ExpressionStatement","src":"4752:146:59"},{"expression":{"arguments":[{"id":18444,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18417,"src":"4929:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}],"expression":{"id":18441,"name":"recipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18191,"src":"4913:10:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage","typeString":"struct TreasuryVesterLinear.Recipient storage ref[] storage ref"}},"id":18443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"4913:15:59","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage_ptr_$_t_struct$_Recipient_$18186_storage_$returns$__$bound_to$_t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage_ptr_$","typeString":"function (struct TreasuryVesterLinear.Recipient storage ref[] storage pointer,struct TreasuryVesterLinear.Recipient storage ref)"}},"id":18445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4913:26:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18446,"nodeType":"ExpressionStatement","src":"4913:26:59"},{"expression":{"id":18450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18447,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18404,"src":"4954:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":18448,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18417,"src":"4969:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory"}},"id":18449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"allocation","nodeType":"MemberAccess","referencedDeclaration":18183,"src":"4969:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4954:35:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18451,"nodeType":"ExpressionStatement","src":"4954:35:59"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18409,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18407,"src":"4496:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18410,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18388,"src":"4500:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4496:10:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18453,"initializationExpression":{"assignments":[18407],"declarations":[{"constant":false,"id":18407,"mutability":"mutable","name":"i","nameLocation":"4493:1:59","nodeType":"VariableDeclaration","scope":18453,"src":"4488:6:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18406,"name":"uint","nodeType":"ElementaryTypeName","src":"4488:4:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18408,"nodeType":"VariableDeclarationStatement","src":"4488:6:59"},"loopExpression":{"expression":{"id":18413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4508:3:59","subExpression":{"id":18412,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18407,"src":"4510:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18414,"nodeType":"ExpressionStatement","src":"4508:3:59"},"nodeType":"ForStatement","src":"4483:518:59"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18455,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18404,"src":"5033:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18456,"name":"DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"5048:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5033:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a20696e76616c696420746f74616c20616c6c6f636174696f6e","id":18458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5074:57:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2","typeString":"literal_string \"TreasuryVester::setRecipients: invalid total allocation\""},"value":"TreasuryVester::setRecipients: invalid total allocation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2","typeString":"literal_string \"TreasuryVester::setRecipients: invalid total allocation\""}],"id":18454,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5011:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5011:131:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18460,"nodeType":"ExpressionStatement","src":"5011:131:59"},{"eventCall":{"arguments":[{"id":18462,"name":"newRecipients","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18379,"src":"5176:13:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient memory[] memory"}],"id":18461,"name":"RecipientsChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18511,"src":"5158:17:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct TreasuryVesterLinear.Recipient memory[] memory)"}},"id":18463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5158:32:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18464,"nodeType":"EmitStatement","src":"5153:37:59"}]},"documentation":{"id":18375,"nodeType":"StructuredDocumentation","src":"3942:208:59","text":" @notice Adds new recipients by overriding old recipients\n @dev Only callable by the owner (i.e.: governance)\n @param newRecipients An array of new recipients with allocation"},"functionSelector":"77b872a8","id":18466,"implemented":true,"kind":"function","modifiers":[{"id":18382,"kind":"modifierInvocation","modifierName":{"id":18381,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":570,"src":"4220:9:59"},"nodeType":"ModifierInvocation","src":"4220:9:59"}],"name":"setRecipients","nameLocation":"4165:13:59","nodeType":"FunctionDefinition","parameters":{"id":18380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18379,"mutability":"mutable","name":"newRecipients","nameLocation":"4198:13:59","nodeType":"VariableDeclaration","scope":18466,"src":"4179:32:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient[]"},"typeName":{"baseType":{"id":18377,"nodeType":"UserDefinedTypeName","pathNode":{"id":18376,"name":"Recipient","nodeType":"IdentifierPath","referencedDeclaration":18186,"src":"4179:9:59"},"referencedDeclaration":18186,"src":"4179:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient"}},"id":18378,"nodeType":"ArrayTypeName","src":"4179:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient[]"}},"visibility":"internal"}],"src":"4178:34:59"},"returnParameters":{"id":18383,"nodeType":"ParameterList","parameters":[],"src":"4230:0:59"},"scope":18512,"src":"4156:1042:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18497,"nodeType":"Block","src":"5381:369:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18471,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5414:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5414:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":18473,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18194,"src":"5428:8:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5414:22:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18475,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5440:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5440:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18477,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":579,"src":"5454:5:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":18478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5454:7:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5440:21:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5414:47:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a737461727456657374696e673a20756e617574686f72697a6564206d6573736167652073656e646572","id":18481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5476:59:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c7f1e3f4b42f663a710fed54749618152100d9e93a9adf0889dfe09ffa69a24","typeString":"literal_string \"TreasuryVester::startVesting: unauthorized message sender\""},"value":"TreasuryVester::startVesting: unauthorized message sender"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c7f1e3f4b42f663a710fed54749618152100d9e93a9adf0889dfe09ffa69a24","typeString":"literal_string \"TreasuryVester::startVesting: unauthorized message sender\""}],"id":18470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5392:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5392:154:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18483,"nodeType":"ExpressionStatement","src":"5392:154:59"},{"expression":{"arguments":[{"id":18486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5579:15:59","subExpression":{"id":18485,"name":"vestingEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18201,"src":"5580:14:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54726561737572795665737465723a3a737461727456657374696e673a2076657374696e6720697320616c726561647920656e61626c6564","id":18487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5609:58:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf451b05bbc7a4c3c65549b71d830d4403bf9cb0b5d550951242adaed41ee1a1","typeString":"literal_string \"TreasuryVester::startVesting: vesting is already enabled\""},"value":"TreasuryVester::startVesting: vesting is already enabled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bf451b05bbc7a4c3c65549b71d830d4403bf9cb0b5d550951242adaed41ee1a1","typeString":"literal_string \"TreasuryVester::startVesting: vesting is already enabled\""}],"id":18484,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5557:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5557:121:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18489,"nodeType":"ExpressionStatement","src":"5557:121:59"},{"expression":{"id":18492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18490,"name":"vestingEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18201,"src":"5689:14:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":18491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5706:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5689:21:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18493,"nodeType":"ExpressionStatement","src":"5689:21:59"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18494,"name":"VestingEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18501,"src":"5726:14:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5726:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18496,"nodeType":"EmitStatement","src":"5721:21:59"}]},"documentation":{"id":18467,"nodeType":"StructuredDocumentation","src":"5206:136:59","text":" @notice Enables distribution of the tokens\n @dev Callable by either the owner (i.e.: governance) or guardian"},"functionSelector":"deb36e32","id":18498,"implemented":true,"kind":"function","modifiers":[],"name":"startVesting","nameLocation":"5357:12:59","nodeType":"FunctionDefinition","parameters":{"id":18468,"nodeType":"ParameterList","parameters":[],"src":"5369:2:59"},"returnParameters":{"id":18469,"nodeType":"ParameterList","parameters":[],"src":"5381:0:59"},"scope":18512,"src":"5348:402:59","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"anonymous":false,"documentation":{"id":18499,"nodeType":"StructuredDocumentation","src":"5758:60:59","text":"@notice An event that is emitted when vesting is enabled"},"eventSelector":"f78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa3","id":18501,"name":"VestingEnabled","nameLocation":"5830:14:59","nodeType":"EventDefinition","parameters":{"id":18500,"nodeType":"ParameterList","parameters":[],"src":"5844:2:59"},"src":"5824:23:59"},{"anonymous":false,"documentation":{"id":18502,"nodeType":"StructuredDocumentation","src":"5855:64:59","text":"@notice An event that is emitted when tokens are distributed"},"eventSelector":"4f4344ade909ddfd3bcfa062e00ca65e85fd886222cb4b0c3689037aa5bd5d68","id":18504,"name":"TokensVested","nameLocation":"5931:12:59","nodeType":"EventDefinition","parameters":{"id":18503,"nodeType":"ParameterList","parameters":[],"src":"5943:2:59"},"src":"5925:21:59"},{"anonymous":false,"documentation":{"id":18505,"nodeType":"StructuredDocumentation","src":"5954:64:59","text":"@notice An event that is emitted when recipients are changed"},"eventSelector":"460ea22cf0e4fc57af938b5999c20c34746291ba7c678329289ca316290b88f2","id":18511,"name":"RecipientsChanged","nameLocation":"6030:17:59","nodeType":"EventDefinition","parameters":{"id":18510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18509,"indexed":false,"mutability":"mutable","name":"newRecipients","nameLocation":"6060:13:59","nodeType":"VariableDeclaration","scope":18511,"src":"6048:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","typeString":"struct TreasuryVesterLinear.Recipient[]"},"typeName":{"baseType":{"id":18507,"nodeType":"UserDefinedTypeName","pathNode":{"id":18506,"name":"Recipient","nodeType":"IdentifierPath","referencedDeclaration":18186,"src":"6048:9:59"},"referencedDeclaration":18186,"src":"6048:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_Recipient_$18186_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient"}},"id":18508,"nodeType":"ArrayTypeName","src":"6048:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Recipient_$18186_storage_$dyn_storage_ptr","typeString":"struct TreasuryVesterLinear.Recipient[]"}},"visibility":"internal"}],"src":"6047:27:59"},"src":"6024:51:59"}],"scope":18513,"src":"507:5571:59","usedErrors":[]}],"src":"33:6047:59"},"id":59}},"contracts":{"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"AccessControlEnumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {AccessControl} that allows enumerating the members of each role.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":\"AccessControlEnumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"IAccessControlEnumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControlEnumerable declared to support ERC165 detection.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":\"IAccessControlEnumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/governance/utils/IVotes.sol":{"IVotes":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. _Available since v4.5._\",\"events\":{\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"}},\"kind\":\"dev\",\"methods\":{\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at the end of a past block (`blockNumber`). NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":\"IVotes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]}},\"version\":1}"}},"@openzeppelin/contracts/security/Pausable.sol":{"Pausable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_882":{"entryPoint":null,"id":882,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":112,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":295,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":461,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":544,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":401,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":90,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4189:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:60"},"nodeType":"YulFunctionCall","src":"66:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:60"},"nodeType":"YulFunctionCall","src":"56:31:60"},"nodeType":"YulExpressionStatement","src":"56:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:60"},"nodeType":"YulFunctionCall","src":"96:15:60"},"nodeType":"YulExpressionStatement","src":"96:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:60"},"nodeType":"YulFunctionCall","src":"120:15:60"},"nodeType":"YulExpressionStatement","src":"120:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:60"},{"body":{"nodeType":"YulBlock","src":"210:821:60","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:60"},"nodeType":"YulFunctionCall","src":"261:12:60"},"nodeType":"YulExpressionStatement","src":"261:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:60"},"nodeType":"YulFunctionCall","src":"234:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:60"},"nodeType":"YulFunctionCall","src":"230:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:60"},"nodeType":"YulFunctionCall","src":"223:35:60"},"nodeType":"YulIf","src":"220:55:60"},{"nodeType":"YulVariableDeclaration","src":"284:23:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:60"},"nodeType":"YulFunctionCall","src":"294:13:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:60"},"nodeType":"YulFunctionCall","src":"330:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:60"},"nodeType":"YulFunctionCall","src":"326:18:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:60"},"nodeType":"YulFunctionCall","src":"369:18:60"},"nodeType":"YulExpressionStatement","src":"369:18:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:60"},"nodeType":"YulFunctionCall","src":"356:10:60"},"nodeType":"YulIf","src":"353:36:60"},{"nodeType":"YulVariableDeclaration","src":"398:17:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:60"},"nodeType":"YulFunctionCall","src":"408:7:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:60"},"nodeType":"YulFunctionCall","src":"438:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:60"},"nodeType":"YulFunctionCall","src":"498:13:60"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:60"},"nodeType":"YulFunctionCall","src":"494:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:60","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:60"},"nodeType":"YulFunctionCall","src":"490:31:60"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:60"},"nodeType":"YulFunctionCall","src":"486:40:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:60"},"nodeType":"YulFunctionCall","src":"474:53:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:60"},"nodeType":"YulFunctionCall","src":"588:18:60"},"nodeType":"YulExpressionStatement","src":"588:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:60"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:60"},"nodeType":"YulFunctionCall","src":"542:18:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:60"},"nodeType":"YulFunctionCall","src":"562:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:60"},"nodeType":"YulFunctionCall","src":"539:46:60"},"nodeType":"YulIf","src":"536:72:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:60"},"nodeType":"YulFunctionCall","src":"617:22:60"},"nodeType":"YulExpressionStatement","src":"617:22:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:60"},"nodeType":"YulFunctionCall","src":"648:18:60"},"nodeType":"YulExpressionStatement","src":"648:18:60"},{"nodeType":"YulVariableDeclaration","src":"675:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:60","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:60"},"nodeType":"YulFunctionCall","src":"737:12:60"},"nodeType":"YulExpressionStatement","src":"737:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:60"},"nodeType":"YulFunctionCall","src":"708:15:60"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:60"},"nodeType":"YulFunctionCall","src":"704:24:60"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:60"},"nodeType":"YulFunctionCall","src":"701:33:60"},"nodeType":"YulIf","src":"698:53:60"},{"nodeType":"YulVariableDeclaration","src":"760:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:60"},"nodeType":"YulFunctionCall","src":"850:14:60"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:60"},"nodeType":"YulFunctionCall","src":"846:23:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:60"},"nodeType":"YulFunctionCall","src":"881:14:60"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:60"},"nodeType":"YulFunctionCall","src":"877:23:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:60"},"nodeType":"YulFunctionCall","src":"871:30:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:60"},"nodeType":"YulFunctionCall","src":"839:63:60"},"nodeType":"YulExpressionStatement","src":"839:63:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:60"},"nodeType":"YulFunctionCall","src":"787:9:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:60","statements":[{"nodeType":"YulAssignment","src":"799:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:60"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:60"},"nodeType":"YulFunctionCall","src":"804:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:60","statements":[]},"src":"779:133:60"},{"body":{"nodeType":"YulBlock","src":"942:59:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:60"},"nodeType":"YulFunctionCall","src":"967:15:60"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:60"},"nodeType":"YulFunctionCall","src":"963:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:60"},"nodeType":"YulFunctionCall","src":"956:35:60"},"nodeType":"YulExpressionStatement","src":"956:35:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:60"},"nodeType":"YulFunctionCall","src":"924:9:60"},"nodeType":"YulIf","src":"921:80:60"},{"nodeType":"YulAssignment","src":"1010:15:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:60"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:60","type":""}],"src":"146:885:60"},{"body":{"nodeType":"YulBlock","src":"1154:444:60","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:60"},"nodeType":"YulFunctionCall","src":"1202:12:60"},"nodeType":"YulExpressionStatement","src":"1202:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:60"},"nodeType":"YulFunctionCall","src":"1171:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:60"},"nodeType":"YulFunctionCall","src":"1167:32:60"},"nodeType":"YulIf","src":"1164:52:60"},{"nodeType":"YulVariableDeclaration","src":"1225:30:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:60"},"nodeType":"YulFunctionCall","src":"1239:16:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:60"},"nodeType":"YulFunctionCall","src":"1278:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:60"},"nodeType":"YulFunctionCall","src":"1274:18:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:60"},"nodeType":"YulFunctionCall","src":"1321:12:60"},"nodeType":"YulExpressionStatement","src":"1321:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:60"},"nodeType":"YulFunctionCall","src":"1304:14:60"},"nodeType":"YulIf","src":"1301:34:60"},{"nodeType":"YulAssignment","src":"1344:71:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:60"},"nodeType":"YulFunctionCall","src":"1383:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:60"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:60"},"nodeType":"YulFunctionCall","src":"1354:61:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:60"},"nodeType":"YulFunctionCall","src":"1446:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:60"},"nodeType":"YulFunctionCall","src":"1440:25:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:60"},"nodeType":"YulFunctionCall","src":"1496:12:60"},"nodeType":"YulExpressionStatement","src":"1496:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:60"},"nodeType":"YulFunctionCall","src":"1477:16:60"},"nodeType":"YulIf","src":"1474:36:60"},{"nodeType":"YulAssignment","src":"1519:73:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:60"},"nodeType":"YulFunctionCall","src":"1558:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:60"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:60"},"nodeType":"YulFunctionCall","src":"1529:63:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:60"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:60","type":""}],"src":"1036:562:60"},{"body":{"nodeType":"YulBlock","src":"1658:325:60","statements":[{"nodeType":"YulAssignment","src":"1668:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:60"},"nodeType":"YulFunctionCall","src":"1678:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:60"},"nodeType":"YulFunctionCall","src":"1725:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:60","statements":[{"nodeType":"YulAssignment","src":"1778:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:60"},"nodeType":"YulFunctionCall","src":"1788:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:60"},"nodeType":"YulFunctionCall","src":"1749:26:60"},"nodeType":"YulIf","src":"1746:61:60"},{"body":{"nodeType":"YulBlock","src":"1866:111:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:60"},"nodeType":"YulFunctionCall","src":"1890:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:60"},"nodeType":"YulFunctionCall","src":"1880:31:60"},"nodeType":"YulExpressionStatement","src":"1880:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:60"},"nodeType":"YulFunctionCall","src":"1924:15:60"},"nodeType":"YulExpressionStatement","src":"1924:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:60"},"nodeType":"YulFunctionCall","src":"1952:15:60"},"nodeType":"YulExpressionStatement","src":"1952:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:60"},"nodeType":"YulFunctionCall","src":"1842:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:60"},"nodeType":"YulFunctionCall","src":"1819:38:60"},"nodeType":"YulIf","src":"1816:161:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:60","type":""}],"src":"1603:380:60"},{"body":{"nodeType":"YulBlock","src":"2044:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2064:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2054:6:60"},"nodeType":"YulFunctionCall","src":"2054:14:60"},"nodeType":"YulExpressionStatement","src":"2054:14:60"},{"nodeType":"YulAssignment","src":"2077:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2095:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2098:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2085:9:60"},"nodeType":"YulFunctionCall","src":"2085:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2077:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2027:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2035:4:60","type":""}],"src":"1988:121:60"},{"body":{"nodeType":"YulBlock","src":"2195:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"2228:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2242:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2252:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2246:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2273:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"2277:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2266:6:60"},"nodeType":"YulFunctionCall","src":"2266:17:60"},"nodeType":"YulExpressionStatement","src":"2266:17:60"},{"nodeType":"YulVariableDeclaration","src":"2296:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2318:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"2322:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2308:9:60"},"nodeType":"YulFunctionCall","src":"2308:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2300:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2340:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2363:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2373:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2380:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"2392:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2376:3:60"},"nodeType":"YulFunctionCall","src":"2376:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2369:3:60"},"nodeType":"YulFunctionCall","src":"2369:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2359:3:60"},"nodeType":"YulFunctionCall","src":"2359:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2344:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2434:23:60","statements":[{"nodeType":"YulAssignment","src":"2436:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"2451:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2436:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2416:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"2428:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2413:2:60"},"nodeType":"YulFunctionCall","src":"2413:20:60"},"nodeType":"YulIf","src":"2410:47:60"},{"nodeType":"YulVariableDeclaration","src":"2470:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2484:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2494:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2501:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"2506:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2497:3:60"},"nodeType":"YulFunctionCall","src":"2497:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2490:3:60"},"nodeType":"YulFunctionCall","src":"2490:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2480:3:60"},"nodeType":"YulFunctionCall","src":"2480:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2474:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2524:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2537:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2528:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2622:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2631:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2638:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2624:6:60"},"nodeType":"YulFunctionCall","src":"2624:17:60"},"nodeType":"YulExpressionStatement","src":"2624:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2572:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2579:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2569:2:60"},"nodeType":"YulFunctionCall","src":"2569:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2583:26:60","statements":[{"nodeType":"YulAssignment","src":"2585:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2598:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"2605:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2594:3:60"},"nodeType":"YulFunctionCall","src":"2594:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2585:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2565:3:60","statements":[]},"src":"2561:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2211:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"2216:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2208:2:60"},"nodeType":"YulFunctionCall","src":"2208:11:60"},"nodeType":"YulIf","src":"2205:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2167:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"2174:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2179:10:60","type":""}],"src":"2114:545:60"},{"body":{"nodeType":"YulBlock","src":"2749:81:60","statements":[{"nodeType":"YulAssignment","src":"2759:65:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2774:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2792:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2795:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2788:3:60"},"nodeType":"YulFunctionCall","src":"2788:11:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2805:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2801:3:60"},"nodeType":"YulFunctionCall","src":"2801:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2784:3:60"},"nodeType":"YulFunctionCall","src":"2784:24:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2780:3:60"},"nodeType":"YulFunctionCall","src":"2780:29:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2770:3:60"},"nodeType":"YulFunctionCall","src":"2770:40:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2816:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2819:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2812:3:60"},"nodeType":"YulFunctionCall","src":"2812:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2767:2:60"},"nodeType":"YulFunctionCall","src":"2767:57:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2759:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2726:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"2732:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2740:4:60","type":""}],"src":"2664:166:60"},{"body":{"nodeType":"YulBlock","src":"2931:1256:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2941:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2961:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2955:5:60"},"nodeType":"YulFunctionCall","src":"2955:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2945:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3008:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3010:16:60"},"nodeType":"YulFunctionCall","src":"3010:18:60"},"nodeType":"YulExpressionStatement","src":"3010:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2980:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2996:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3000:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2992:3:60"},"nodeType":"YulFunctionCall","src":"2992:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"3004:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2988:3:60"},"nodeType":"YulFunctionCall","src":"2988:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2977:2:60"},"nodeType":"YulFunctionCall","src":"2977:30:60"},"nodeType":"YulIf","src":"2974:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3083:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3121:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3115:5:60"},"nodeType":"YulFunctionCall","src":"3115:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3089:25:60"},"nodeType":"YulFunctionCall","src":"3089:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"3129:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"3039:43:60"},"nodeType":"YulFunctionCall","src":"3039:97:60"},"nodeType":"YulExpressionStatement","src":"3039:97:60"},{"nodeType":"YulVariableDeclaration","src":"3145:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3162:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3149:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3172:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3191:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3176:11:60","type":""}]},{"nodeType":"YulAssignment","src":"3204:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3217:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3204:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3274:656:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3288:35:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3307:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3319:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3315:3:60"},"nodeType":"YulFunctionCall","src":"3315:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3303:3:60"},"nodeType":"YulFunctionCall","src":"3303:20:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3292:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3336:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3380:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3350:29:60"},"nodeType":"YulFunctionCall","src":"3350:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3340:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3398:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3407:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3402:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3485:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3510:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3528:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3533:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3524:3:60"},"nodeType":"YulFunctionCall","src":"3524:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3518:5:60"},"nodeType":"YulFunctionCall","src":"3518:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3503:6:60"},"nodeType":"YulFunctionCall","src":"3503:42:60"},"nodeType":"YulExpressionStatement","src":"3503:42:60"},{"nodeType":"YulAssignment","src":"3562:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3576:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3584:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3572:3:60"},"nodeType":"YulFunctionCall","src":"3572:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3562:6:60"}]},{"nodeType":"YulAssignment","src":"3603:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3620:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3631:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:60"},"nodeType":"YulFunctionCall","src":"3616:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3603:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3432:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3435:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3429:2:60"},"nodeType":"YulFunctionCall","src":"3429:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3444:28:60","statements":[{"nodeType":"YulAssignment","src":"3446:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3455:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3458:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3451:3:60"},"nodeType":"YulFunctionCall","src":"3451:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3446:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"3425:3:60","statements":[]},"src":"3421:236:60"},{"body":{"nodeType":"YulBlock","src":"3705:166:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3723:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3750:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3755:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3746:3:60"},"nodeType":"YulFunctionCall","src":"3746:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3740:5:60"},"nodeType":"YulFunctionCall","src":"3740:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3727:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3790:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3802:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3829:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3832:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3825:3:60"},"nodeType":"YulFunctionCall","src":"3825:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"3841:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3821:3:60"},"nodeType":"YulFunctionCall","src":"3821:24:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3851:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3847:3:60"},"nodeType":"YulFunctionCall","src":"3847:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3817:3:60"},"nodeType":"YulFunctionCall","src":"3817:37:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3813:3:60"},"nodeType":"YulFunctionCall","src":"3813:42:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3798:3:60"},"nodeType":"YulFunctionCall","src":"3798:58:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3783:6:60"},"nodeType":"YulFunctionCall","src":"3783:74:60"},"nodeType":"YulExpressionStatement","src":"3783:74:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3676:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"3685:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3673:2:60"},"nodeType":"YulFunctionCall","src":"3673:19:60"},"nodeType":"YulIf","src":"3670:201:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3891:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3905:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3908:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3901:3:60"},"nodeType":"YulFunctionCall","src":"3901:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"3917:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3897:3:60"},"nodeType":"YulFunctionCall","src":"3897:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3884:6:60"},"nodeType":"YulFunctionCall","src":"3884:36:60"},"nodeType":"YulExpressionStatement","src":"3884:36:60"}]},"nodeType":"YulCase","src":"3267:663:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3272:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3947:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3961:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3974:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3965:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4010:67:60","statements":[{"nodeType":"YulAssignment","src":"4028:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4047:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4052:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4043:3:60"},"nodeType":"YulFunctionCall","src":"4043:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4037:5:60"},"nodeType":"YulFunctionCall","src":"4037:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4028:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3991:6:60"},"nodeType":"YulIf","src":"3988:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4097:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4156:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"4163:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4103:52:60"},"nodeType":"YulFunctionCall","src":"4103:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4090:6:60"},"nodeType":"YulFunctionCall","src":"4090:81:60"},"nodeType":"YulExpressionStatement","src":"4090:81:60"}]},"nodeType":"YulCase","src":"3939:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3247:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3255:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3244:2:60"},"nodeType":"YulFunctionCall","src":"3244:14:60"},"nodeType":"YulSwitch","src":"3237:944:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2916:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"2922:3:60","type":""}],"src":"2835:1352:60"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        if gt(i, _1)\n        {\n            mstore(add(add(memPtr, _1), _4), 0)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000cc238038062000cc2833981016040819052620000349162000127565b600362000042838262000220565b50600462000051828262000220565b505050620002ec565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b838211156200011d5760008385830101525b9695505050505050565b600080604083850312156200013b57600080fd5b82516001600160401b03808211156200015357600080fd5b620001618683870162000070565b935060208501519150808211156200017857600080fd5b50620001878582860162000070565b9150509250929050565b600181811c90821680620001a657607f821691505b602082108103620001c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021b57600081815260208120601f850160051c81016020861015620001f65750805b601f850160051c820191505b81811015620002175782815560010162000202565b5050505b505050565b81516001600160401b038111156200023c576200023c6200005a565b62000254816200024d845462000191565b84620001cd565b602080601f8311600181146200028c5760008415620002735750858301515b600019600386901b1c1916600185901b17855562000217565b600085815260208120601f198616915b82811015620002bd578886015182559484019460019091019084016200029c565b5085821015620002dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6109c680620002fc6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e391906107b4565b60405180910390f35b6100ff6100fa366004610843565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461086d565b610290565b604051601281526020016100e3565b6100ff610151366004610843565b6102b4565b6101136101643660046108a9565b6001600160a01b031660009081526020819052604090205490565b6100d66102f3565b6100ff610195366004610843565b610302565b6100ff6101a8366004610843565b6103b1565b6101136101bb3660046108cb565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108fe565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103bf565b5060019392505050565b60003361029e858285610517565b6102a98585856105c7565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102ee908790610951565b6103bf565b6060600480546101f5906108fe565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102a982868684036103bf565b6000336102868185856105c7565b6001600160a01b03831661043a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0382166104b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c157818110156105b45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039b565b6105c184848484036103bf565b50505050565b6001600160a01b0383166106435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0382166106bf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0383166000908152602081905260409020548181101561074e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105c1565b600060208083528351808285015260005b818110156107e1578581018301518582016040015282016107c5565b818111156107f3576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b80356001600160a01b038116811461083e57600080fd5b919050565b6000806040838503121561085657600080fd5b61085f83610827565b946020939093013593505050565b60008060006060848603121561088257600080fd5b61088b84610827565b925061089960208501610827565b9150604084013590509250925092565b6000602082840312156108bb57600080fd5b6108c482610827565b9392505050565b600080604083850312156108de57600080fd5b6108e783610827565b91506108f560208401610827565b90509250929050565b600181811c9082168061091257607f821691505b60208210810361094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000821982111561098b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea26469706673582212202428d4c505b99cb0c2274242c45fc56da82d5d7776bc8e241de2d9f1daf02cd964736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xCC2 CODESIZE SUB DUP1 PUSH3 0xCC2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x127 JUMP JUMPDEST PUSH1 0x3 PUSH3 0x42 DUP4 DUP3 PUSH3 0x220 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x51 DUP3 DUP3 PUSH3 0x220 JUMP JUMPDEST POP POP POP PUSH3 0x2EC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x9F JUMPI PUSH3 0x9F PUSH3 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0xCA JUMPI PUSH3 0xCA PUSH3 0x5A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x10B JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0xEC JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x11D JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x13B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x161 DUP7 DUP4 DUP8 ADD PUSH3 0x70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x187 DUP6 DUP3 DUP7 ADD PUSH3 0x70 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1A6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x21B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x1F6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x217 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x202 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x23C JUMPI PUSH3 0x23C PUSH3 0x5A JUMP JUMPDEST PUSH3 0x254 DUP2 PUSH3 0x24D DUP5 SLOAD PUSH3 0x191 JUMP JUMPDEST DUP5 PUSH3 0x1CD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x28C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x273 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x217 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2BD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x29C JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x2DC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x9C6 DUP1 PUSH3 0x2FC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xEC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD6 PUSH2 0x1E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFF PUSH2 0xFA CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x278 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x86D JUMP JUMPDEST PUSH2 0x290 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x151 CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x2B4 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x8A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xD6 PUSH2 0x2F3 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x302 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x8CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1F5 SWAP1 PUSH2 0x8FE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x221 SWAP1 PUSH2 0x8FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x243 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x26E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x251 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x286 DUP2 DUP6 DUP6 PUSH2 0x3BF JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x29E DUP6 DUP3 DUP6 PUSH2 0x517 JUMP JUMPDEST PUSH2 0x2A9 DUP6 DUP6 DUP6 PUSH2 0x5C7 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x286 SWAP1 DUP3 SWAP1 DUP7 SWAP1 PUSH2 0x2EE SWAP1 DUP8 SWAP1 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1F5 SWAP1 PUSH2 0x8FE JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP4 DUP2 LT ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x286 DUP2 DUP6 DUP6 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x43A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x5C1 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST PUSH2 0x5C1 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3BF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x643 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x5C1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7E1 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7C5 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x83E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x85F DUP4 PUSH2 0x827 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x88B DUP5 PUSH2 0x827 JUMP JUMPDEST SWAP3 POP PUSH2 0x899 PUSH1 0x20 DUP6 ADD PUSH2 0x827 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8C4 DUP3 PUSH2 0x827 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E7 DUP4 PUSH2 0x827 JUMP JUMPDEST SWAP2 POP PUSH2 0x8F5 PUSH1 0x20 DUP5 ADD PUSH2 0x827 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x912 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x94B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x98B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0x28 0xD4 0xC5 SDIV 0xB9 SWAP13 0xB0 0xC2 0x27 TIMESTAMP TIMESTAMP 0xC4 0x5F 0xC5 PUSH14 0xA82D5D7776BC8E241DE2D9F1DAF0 0x2C 0xD9 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"1401:11610:7:-:0;;;1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:5;:13;2050:5;2042;:13;:::i;:::-;-1:-1:-1;2065:7:7;:17;2075:7;2065;:17;:::i;:::-;;1976:113;;1401:11610;;14:127:60;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:60;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:60;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:60:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:60;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;2114:545::-;2216:2;2211:3;2208:11;2205:448;;;2252:1;2277:5;2273:2;2266:17;2322:4;2318:2;2308:19;2392:2;2380:10;2376:19;2373:1;2369:27;2363:4;2359:38;2428:4;2416:10;2413:20;2410:47;;;-1:-1:-1;2451:4:60;2410:47;2506:2;2501:3;2497:12;2494:1;2490:20;2484:4;2480:31;2470:41;;2561:82;2579:2;2572:5;2569:13;2561:82;;;2624:17;;;2605:1;2594:13;2561:82;;;2565:3;;;2205:448;2114:545;;;:::o;2835:1352::-;2955:10;;-1:-1:-1;;;;;2977:30:60;;2974:56;;;3010:18;;:::i;:::-;3039:97;3129:6;3089:38;3121:4;3115:11;3089:38;:::i;:::-;3083:4;3039:97;:::i;:::-;3191:4;;3255:2;3244:14;;3272:1;3267:663;;;;3974:1;3991:6;3988:89;;;-1:-1:-1;4043:19:60;;;4037:26;3988:89;-1:-1:-1;;2792:1:60;2788:11;;;2784:24;2780:29;2770:40;2816:1;2812:11;;;2767:57;4090:81;;3237:944;;3267:663;2061:1;2054:14;;;2098:4;2085:18;;-1:-1:-1;;3303:20:60;;;3421:236;3435:7;3432:1;3429:14;3421:236;;;3524:19;;;3518:26;3503:42;;3616:27;;;;3584:1;3572:14;;;;3451:19;;3421:236;;;3425:3;3685:6;3676:7;3673:19;3670:201;;;3746:19;;;3740:26;-1:-1:-1;;3829:1:60;3825:14;;;3841:3;3821:24;3817:37;3813:42;3798:58;3783:74;;3670:201;-1:-1:-1;;;;;3917:1:60;3901:14;;;3897:22;3884:36;;-1:-1:-1;2835:1352:60:o;:::-;1401:11610:7;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1423":{"entryPoint":null,"id":1423,"parameterSlots":3,"returnSlots":0},"@_approve_1358":{"entryPoint":959,"id":1358,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1412":{"entryPoint":null,"id":1412,"parameterSlots":3,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_1401":{"entryPoint":1303,"id":1401,"parameterSlots":3,"returnSlots":0},"@_transfer_1184":{"entryPoint":1479,"id":1184,"parameterSlots":3,"returnSlots":0},"@allowance_979":{"entryPoint":null,"id":979,"parameterSlots":2,"returnSlots":1},"@approve_1004":{"entryPoint":632,"id":1004,"parameterSlots":2,"returnSlots":1},"@balanceOf_936":{"entryPoint":null,"id":936,"parameterSlots":1,"returnSlots":1},"@decimals_912":{"entryPoint":null,"id":912,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1107":{"entryPoint":770,"id":1107,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_1066":{"entryPoint":692,"id":1066,"parameterSlots":2,"returnSlots":1},"@name_892":{"entryPoint":486,"id":892,"parameterSlots":0,"returnSlots":1},"@symbol_902":{"entryPoint":755,"id":902,"parameterSlots":0,"returnSlots":1},"@totalSupply_922":{"entryPoint":null,"id":922,"parameterSlots":0,"returnSlots":1},"@transferFrom_1037":{"entryPoint":656,"id":1037,"parameterSlots":3,"returnSlots":1},"@transfer_961":{"entryPoint":945,"id":961,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":2087,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2251,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2157,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2115,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1972,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2385,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2302,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6002:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:535:60","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:60"},"nodeType":"YulFunctionCall","src":"166:21:60"},"nodeType":"YulExpressionStatement","src":"166:21:60"},{"nodeType":"YulVariableDeclaration","src":"196:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:60"},"nodeType":"YulFunctionCall","src":"210:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:60"},"nodeType":"YulFunctionCall","src":"239:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:60"},"nodeType":"YulFunctionCall","src":"232:34:60"},"nodeType":"YulExpressionStatement","src":"232:34:60"},{"nodeType":"YulVariableDeclaration","src":"275:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:60"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:60"},"nodeType":"YulFunctionCall","src":"369:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:60"},"nodeType":"YulFunctionCall","src":"365:26:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:60"},"nodeType":"YulFunctionCall","src":"403:14:60"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:60"},"nodeType":"YulFunctionCall","src":"399:23:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:60"},"nodeType":"YulFunctionCall","src":"393:30:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:60"},"nodeType":"YulFunctionCall","src":"358:66:60"},"nodeType":"YulExpressionStatement","src":"358:66:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:60"},"nodeType":"YulFunctionCall","src":"302:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:60","statements":[{"nodeType":"YulAssignment","src":"318:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:60"},"nodeType":"YulFunctionCall","src":"323:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:60","statements":[]},"src":"294:140:60"},{"body":{"nodeType":"YulBlock","src":"468:66:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:60"},{"name":"length","nodeType":"YulIdentifier","src":"508:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:60"},"nodeType":"YulFunctionCall","src":"493:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"517:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"489:3:60"},"nodeType":"YulFunctionCall","src":"489:31:60"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"482:6:60"},"nodeType":"YulFunctionCall","src":"482:42:60"},"nodeType":"YulExpressionStatement","src":"482:42:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"452:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"446:2:60"},"nodeType":"YulFunctionCall","src":"446:13:60"},"nodeType":"YulIf","src":"443:91:60"},{"nodeType":"YulAssignment","src":"543:121:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"559:9:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"578:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"586:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"574:3:60"},"nodeType":"YulFunctionCall","src":"574:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"591:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"570:3:60"},"nodeType":"YulFunctionCall","src":"570:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:60"},"nodeType":"YulFunctionCall","src":"555:104:60"},{"kind":"number","nodeType":"YulLiteral","src":"661:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"551:3:60"},"nodeType":"YulFunctionCall","src":"551:113:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"543:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:60","type":""}],"src":"14:656:60"},{"body":{"nodeType":"YulBlock","src":"724:147:60","statements":[{"nodeType":"YulAssignment","src":"734:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"756:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"743:12:60"},"nodeType":"YulFunctionCall","src":"743:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"734:5:60"}]},{"body":{"nodeType":"YulBlock","src":"849:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"858:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"861:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"851:6:60"},"nodeType":"YulFunctionCall","src":"851:12:60"},"nodeType":"YulExpressionStatement","src":"851:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"785:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"796:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"803:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"792:3:60"},"nodeType":"YulFunctionCall","src":"792:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"782:2:60"},"nodeType":"YulFunctionCall","src":"782:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"775:6:60"},"nodeType":"YulFunctionCall","src":"775:73:60"},"nodeType":"YulIf","src":"772:93:60"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"703:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"714:5:60","type":""}],"src":"675:196:60"},{"body":{"nodeType":"YulBlock","src":"963:167:60","statements":[{"body":{"nodeType":"YulBlock","src":"1009:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1018:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1021:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1011:6:60"},"nodeType":"YulFunctionCall","src":"1011:12:60"},"nodeType":"YulExpressionStatement","src":"1011:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"984:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"993:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"980:3:60"},"nodeType":"YulFunctionCall","src":"980:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1005:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"976:3:60"},"nodeType":"YulFunctionCall","src":"976:32:60"},"nodeType":"YulIf","src":"973:52:60"},{"nodeType":"YulAssignment","src":"1034:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1063:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1044:18:60"},"nodeType":"YulFunctionCall","src":"1044:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1034:6:60"}]},{"nodeType":"YulAssignment","src":"1082:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1109:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1120:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1105:3:60"},"nodeType":"YulFunctionCall","src":"1105:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1092:12:60"},"nodeType":"YulFunctionCall","src":"1092:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1082:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"921:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"932:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"944:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"952:6:60","type":""}],"src":"876:254:60"},{"body":{"nodeType":"YulBlock","src":"1230:92:60","statements":[{"nodeType":"YulAssignment","src":"1240:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1263:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1248:3:60"},"nodeType":"YulFunctionCall","src":"1248:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1240:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1282:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1307:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1300:6:60"},"nodeType":"YulFunctionCall","src":"1300:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1293:6:60"},"nodeType":"YulFunctionCall","src":"1293:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1275:6:60"},"nodeType":"YulFunctionCall","src":"1275:41:60"},"nodeType":"YulExpressionStatement","src":"1275:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1199:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1210:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1221:4:60","type":""}],"src":"1135:187:60"},{"body":{"nodeType":"YulBlock","src":"1428:76:60","statements":[{"nodeType":"YulAssignment","src":"1438:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:60"},"nodeType":"YulFunctionCall","src":"1446:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1438:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1480:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"1491:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1473:6:60"},"nodeType":"YulFunctionCall","src":"1473:25:60"},"nodeType":"YulExpressionStatement","src":"1473:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1397:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1408:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1419:4:60","type":""}],"src":"1327:177:60"},{"body":{"nodeType":"YulBlock","src":"1613:224:60","statements":[{"body":{"nodeType":"YulBlock","src":"1659:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1668:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1671:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1661:6:60"},"nodeType":"YulFunctionCall","src":"1661:12:60"},"nodeType":"YulExpressionStatement","src":"1661:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1634:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1643:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1630:3:60"},"nodeType":"YulFunctionCall","src":"1630:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1655:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1626:3:60"},"nodeType":"YulFunctionCall","src":"1626:32:60"},"nodeType":"YulIf","src":"1623:52:60"},{"nodeType":"YulAssignment","src":"1684:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1713:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1694:18:60"},"nodeType":"YulFunctionCall","src":"1694:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1684:6:60"}]},{"nodeType":"YulAssignment","src":"1732:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1765:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1776:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1761:3:60"},"nodeType":"YulFunctionCall","src":"1761:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1742:18:60"},"nodeType":"YulFunctionCall","src":"1742:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1732:6:60"}]},{"nodeType":"YulAssignment","src":"1789:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1816:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1827:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1812:3:60"},"nodeType":"YulFunctionCall","src":"1812:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1799:12:60"},"nodeType":"YulFunctionCall","src":"1799:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1789:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1563:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1574:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1586:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1594:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1602:6:60","type":""}],"src":"1509:328:60"},{"body":{"nodeType":"YulBlock","src":"1939:87:60","statements":[{"nodeType":"YulAssignment","src":"1949:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1961:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1972:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1957:3:60"},"nodeType":"YulFunctionCall","src":"1957:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1949:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1991:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2006:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2014:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2002:3:60"},"nodeType":"YulFunctionCall","src":"2002:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1984:6:60"},"nodeType":"YulFunctionCall","src":"1984:36:60"},"nodeType":"YulExpressionStatement","src":"1984:36:60"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1908:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1919:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1930:4:60","type":""}],"src":"1842:184:60"},{"body":{"nodeType":"YulBlock","src":"2101:116:60","statements":[{"body":{"nodeType":"YulBlock","src":"2147:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2156:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2159:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2149:6:60"},"nodeType":"YulFunctionCall","src":"2149:12:60"},"nodeType":"YulExpressionStatement","src":"2149:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2122:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2131:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2118:3:60"},"nodeType":"YulFunctionCall","src":"2118:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2143:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2114:3:60"},"nodeType":"YulFunctionCall","src":"2114:32:60"},"nodeType":"YulIf","src":"2111:52:60"},{"nodeType":"YulAssignment","src":"2172:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2201:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2182:18:60"},"nodeType":"YulFunctionCall","src":"2182:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2172:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2067:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2078:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2090:6:60","type":""}],"src":"2031:186:60"},{"body":{"nodeType":"YulBlock","src":"2309:173:60","statements":[{"body":{"nodeType":"YulBlock","src":"2355:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2364:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2367:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2357:6:60"},"nodeType":"YulFunctionCall","src":"2357:12:60"},"nodeType":"YulExpressionStatement","src":"2357:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2330:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2339:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2326:3:60"},"nodeType":"YulFunctionCall","src":"2326:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2351:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2322:3:60"},"nodeType":"YulFunctionCall","src":"2322:32:60"},"nodeType":"YulIf","src":"2319:52:60"},{"nodeType":"YulAssignment","src":"2380:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2409:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2390:18:60"},"nodeType":"YulFunctionCall","src":"2390:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2380:6:60"}]},{"nodeType":"YulAssignment","src":"2428:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2461:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2472:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2457:3:60"},"nodeType":"YulFunctionCall","src":"2457:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2438:18:60"},"nodeType":"YulFunctionCall","src":"2438:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2428:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2267:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2278:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2290:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2298:6:60","type":""}],"src":"2222:260:60"},{"body":{"nodeType":"YulBlock","src":"2542:382:60","statements":[{"nodeType":"YulAssignment","src":"2552:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2566:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2569:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2562:3:60"},"nodeType":"YulFunctionCall","src":"2562:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2552:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"2583:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2613:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"2619:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2609:3:60"},"nodeType":"YulFunctionCall","src":"2609:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2587:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2660:31:60","statements":[{"nodeType":"YulAssignment","src":"2662:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2676:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2684:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2672:3:60"},"nodeType":"YulFunctionCall","src":"2672:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2662:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2640:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2633:6:60"},"nodeType":"YulFunctionCall","src":"2633:26:60"},"nodeType":"YulIf","src":"2630:61:60"},{"body":{"nodeType":"YulBlock","src":"2750:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2771:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2774:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2764:6:60"},"nodeType":"YulFunctionCall","src":"2764:88:60"},"nodeType":"YulExpressionStatement","src":"2764:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2872:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2875:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2865:6:60"},"nodeType":"YulFunctionCall","src":"2865:15:60"},"nodeType":"YulExpressionStatement","src":"2865:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2900:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2903:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2893:6:60"},"nodeType":"YulFunctionCall","src":"2893:15:60"},"nodeType":"YulExpressionStatement","src":"2893:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2706:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2729:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2737:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2726:2:60"},"nodeType":"YulFunctionCall","src":"2726:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2703:2:60"},"nodeType":"YulFunctionCall","src":"2703:38:60"},"nodeType":"YulIf","src":"2700:218:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2522:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2531:6:60","type":""}],"src":"2487:437:60"},{"body":{"nodeType":"YulBlock","src":"2977:234:60","statements":[{"body":{"nodeType":"YulBlock","src":"3012:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3033:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3036:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3026:6:60"},"nodeType":"YulFunctionCall","src":"3026:88:60"},"nodeType":"YulExpressionStatement","src":"3026:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3134:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3137:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3127:6:60"},"nodeType":"YulFunctionCall","src":"3127:15:60"},"nodeType":"YulExpressionStatement","src":"3127:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3162:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3165:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3155:6:60"},"nodeType":"YulFunctionCall","src":"3155:15:60"},"nodeType":"YulExpressionStatement","src":"3155:15:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2993:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"3000:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2996:3:60"},"nodeType":"YulFunctionCall","src":"2996:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2990:2:60"},"nodeType":"YulFunctionCall","src":"2990:13:60"},"nodeType":"YulIf","src":"2987:193:60"},{"nodeType":"YulAssignment","src":"3189:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3200:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"3203:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3196:3:60"},"nodeType":"YulFunctionCall","src":"3196:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3189:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2960:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"2963:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2969:3:60","type":""}],"src":"2929:282:60"},{"body":{"nodeType":"YulBlock","src":"3390:227:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3407:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3418:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3400:6:60"},"nodeType":"YulFunctionCall","src":"3400:21:60"},"nodeType":"YulExpressionStatement","src":"3400:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3441:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3452:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3437:3:60"},"nodeType":"YulFunctionCall","src":"3437:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3457:2:60","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3430:6:60"},"nodeType":"YulFunctionCall","src":"3430:30:60"},"nodeType":"YulExpressionStatement","src":"3430:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3480:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3491:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3476:3:60"},"nodeType":"YulFunctionCall","src":"3476:18:60"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3496:34:60","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3469:6:60"},"nodeType":"YulFunctionCall","src":"3469:62:60"},"nodeType":"YulExpressionStatement","src":"3469:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3551:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3562:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3547:3:60"},"nodeType":"YulFunctionCall","src":"3547:18:60"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3567:7:60","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3540:6:60"},"nodeType":"YulFunctionCall","src":"3540:35:60"},"nodeType":"YulExpressionStatement","src":"3540:35:60"},{"nodeType":"YulAssignment","src":"3584:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3596:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3607:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3592:3:60"},"nodeType":"YulFunctionCall","src":"3592:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3584:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3367:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3381:4:60","type":""}],"src":"3216:401:60"},{"body":{"nodeType":"YulBlock","src":"3796:226:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3813:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3824:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3806:6:60"},"nodeType":"YulFunctionCall","src":"3806:21:60"},"nodeType":"YulExpressionStatement","src":"3806:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3847:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3858:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3843:3:60"},"nodeType":"YulFunctionCall","src":"3843:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3863:2:60","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:60"},"nodeType":"YulFunctionCall","src":"3836:30:60"},"nodeType":"YulExpressionStatement","src":"3836:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3886:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3897:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3882:3:60"},"nodeType":"YulFunctionCall","src":"3882:18:60"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3902:34:60","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3875:6:60"},"nodeType":"YulFunctionCall","src":"3875:62:60"},"nodeType":"YulExpressionStatement","src":"3875:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3957:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3968:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3953:3:60"},"nodeType":"YulFunctionCall","src":"3953:18:60"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3973:6:60","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3946:6:60"},"nodeType":"YulFunctionCall","src":"3946:34:60"},"nodeType":"YulExpressionStatement","src":"3946:34:60"},{"nodeType":"YulAssignment","src":"3989:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4001:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4012:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3997:3:60"},"nodeType":"YulFunctionCall","src":"3997:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3989:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3773:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3787:4:60","type":""}],"src":"3622:400:60"},{"body":{"nodeType":"YulBlock","src":"4201:224:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4218:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4229:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4211:6:60"},"nodeType":"YulFunctionCall","src":"4211:21:60"},"nodeType":"YulExpressionStatement","src":"4211:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4252:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4263:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4248:3:60"},"nodeType":"YulFunctionCall","src":"4248:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4268:2:60","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4241:6:60"},"nodeType":"YulFunctionCall","src":"4241:30:60"},"nodeType":"YulExpressionStatement","src":"4241:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4291:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4302:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4287:3:60"},"nodeType":"YulFunctionCall","src":"4287:18:60"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4307:34:60","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4280:6:60"},"nodeType":"YulFunctionCall","src":"4280:62:60"},"nodeType":"YulExpressionStatement","src":"4280:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4362:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4373:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4358:3:60"},"nodeType":"YulFunctionCall","src":"4358:18:60"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4378:4:60","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4351:6:60"},"nodeType":"YulFunctionCall","src":"4351:32:60"},"nodeType":"YulExpressionStatement","src":"4351:32:60"},{"nodeType":"YulAssignment","src":"4392:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4404:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4415:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4400:3:60"},"nodeType":"YulFunctionCall","src":"4400:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4392:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4178:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4192:4:60","type":""}],"src":"4027:398:60"},{"body":{"nodeType":"YulBlock","src":"4604:179:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4632:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4614:6:60"},"nodeType":"YulFunctionCall","src":"4614:21:60"},"nodeType":"YulExpressionStatement","src":"4614:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4655:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4666:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4651:3:60"},"nodeType":"YulFunctionCall","src":"4651:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4671:2:60","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4644:6:60"},"nodeType":"YulFunctionCall","src":"4644:30:60"},"nodeType":"YulExpressionStatement","src":"4644:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4694:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4705:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4690:3:60"},"nodeType":"YulFunctionCall","src":"4690:18:60"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4710:31:60","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4683:6:60"},"nodeType":"YulFunctionCall","src":"4683:59:60"},"nodeType":"YulExpressionStatement","src":"4683:59:60"},{"nodeType":"YulAssignment","src":"4751:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4763:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4774:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4759:3:60"},"nodeType":"YulFunctionCall","src":"4759:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4751:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4581:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4595:4:60","type":""}],"src":"4430:353:60"},{"body":{"nodeType":"YulBlock","src":"4962:227:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4979:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4990:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4972:6:60"},"nodeType":"YulFunctionCall","src":"4972:21:60"},"nodeType":"YulExpressionStatement","src":"4972:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5013:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5024:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5009:3:60"},"nodeType":"YulFunctionCall","src":"5009:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5029:2:60","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5002:6:60"},"nodeType":"YulFunctionCall","src":"5002:30:60"},"nodeType":"YulExpressionStatement","src":"5002:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5052:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5063:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5048:3:60"},"nodeType":"YulFunctionCall","src":"5048:18:60"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"5068:34:60","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5041:6:60"},"nodeType":"YulFunctionCall","src":"5041:62:60"},"nodeType":"YulExpressionStatement","src":"5041:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5123:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5134:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5119:3:60"},"nodeType":"YulFunctionCall","src":"5119:18:60"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"5139:7:60","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5112:6:60"},"nodeType":"YulFunctionCall","src":"5112:35:60"},"nodeType":"YulExpressionStatement","src":"5112:35:60"},{"nodeType":"YulAssignment","src":"5156:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5168:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5179:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5164:3:60"},"nodeType":"YulFunctionCall","src":"5164:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5156:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4953:4:60","type":""}],"src":"4788:401:60"},{"body":{"nodeType":"YulBlock","src":"5368:225:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5385:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5396:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5378:6:60"},"nodeType":"YulFunctionCall","src":"5378:21:60"},"nodeType":"YulExpressionStatement","src":"5378:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5419:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5430:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5415:3:60"},"nodeType":"YulFunctionCall","src":"5415:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5435:2:60","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5408:6:60"},"nodeType":"YulFunctionCall","src":"5408:30:60"},"nodeType":"YulExpressionStatement","src":"5408:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5458:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5469:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:60"},"nodeType":"YulFunctionCall","src":"5454:18:60"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5474:34:60","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5447:6:60"},"nodeType":"YulFunctionCall","src":"5447:62:60"},"nodeType":"YulExpressionStatement","src":"5447:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5529:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5540:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5525:3:60"},"nodeType":"YulFunctionCall","src":"5525:18:60"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5545:5:60","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5518:6:60"},"nodeType":"YulFunctionCall","src":"5518:33:60"},"nodeType":"YulExpressionStatement","src":"5518:33:60"},{"nodeType":"YulAssignment","src":"5560:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5572:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5583:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5568:3:60"},"nodeType":"YulFunctionCall","src":"5568:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5560:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5345:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5359:4:60","type":""}],"src":"5194:399:60"},{"body":{"nodeType":"YulBlock","src":"5772:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5789:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5800:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5782:6:60"},"nodeType":"YulFunctionCall","src":"5782:21:60"},"nodeType":"YulExpressionStatement","src":"5782:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5823:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5834:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5819:3:60"},"nodeType":"YulFunctionCall","src":"5819:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5839:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5812:6:60"},"nodeType":"YulFunctionCall","src":"5812:30:60"},"nodeType":"YulExpressionStatement","src":"5812:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5862:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5873:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5858:3:60"},"nodeType":"YulFunctionCall","src":"5858:18:60"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5878:34:60","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5851:6:60"},"nodeType":"YulFunctionCall","src":"5851:62:60"},"nodeType":"YulExpressionStatement","src":"5851:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5933:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5944:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5929:3:60"},"nodeType":"YulFunctionCall","src":"5929:18:60"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5949:8:60","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5922:6:60"},"nodeType":"YulFunctionCall","src":"5922:36:60"},"nodeType":"YulExpressionStatement","src":"5922:36:60"},{"nodeType":"YulAssignment","src":"5967:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5979:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5990:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5975:3:60"},"nodeType":"YulFunctionCall","src":"5975:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5967:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5749:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5763:4:60","type":""}],"src":"5598:402:60"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), 0)\n        }\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n        mstore(add(headStart, 96), \" zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n        mstore(add(headStart, 96), \"alance\")\n        tail := add(headStart, 128)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e391906107b4565b60405180910390f35b6100ff6100fa366004610843565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461086d565b610290565b604051601281526020016100e3565b6100ff610151366004610843565b6102b4565b6101136101643660046108a9565b6001600160a01b031660009081526020819052604090205490565b6100d66102f3565b6100ff610195366004610843565b610302565b6100ff6101a8366004610843565b6103b1565b6101136101bb3660046108cb565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108fe565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108fe565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103bf565b5060019392505050565b60003361029e858285610517565b6102a98585856105c7565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102ee908790610951565b6103bf565b6060600480546101f5906108fe565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102a982868684036103bf565b6000336102868185856105c7565b6001600160a01b03831661043a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0382166104b65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105c157818110156105b45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039b565b6105c184848484036103bf565b50505050565b6001600160a01b0383166106435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0382166106bf5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b0383166000908152602081905260409020548181101561074e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105c1565b600060208083528351808285015260005b818110156107e1578581018301518582016040015282016107c5565b818111156107f3576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b80356001600160a01b038116811461083e57600080fd5b919050565b6000806040838503121561085657600080fd5b61085f83610827565b946020939093013593505050565b60008060006060848603121561088257600080fd5b61088b84610827565b925061089960208501610827565b9150604084013590509250925092565b6000602082840312156108bb57600080fd5b6108c482610827565b9392505050565b600080604083850312156108de57600080fd5b6108e783610827565b91506108f560208401610827565b90509250929050565b600181811c9082168061091257607f821691505b60208210810361094b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000821982111561098b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea26469706673582212202428d4c505b99cb0c2274242c45fc56da82d5d7776bc8e241de2d9f1daf02cd964736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x17F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xEC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD6 PUSH2 0x1E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0x7B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFF PUSH2 0xFA CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x278 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x86D JUMP JUMPDEST PUSH2 0x290 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE3 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x151 CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x2B4 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x164 CALLDATASIZE PUSH1 0x4 PUSH2 0x8A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xD6 PUSH2 0x2F3 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x302 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x843 JUMP JUMPDEST PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0x113 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x8CB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1F5 SWAP1 PUSH2 0x8FE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x221 SWAP1 PUSH2 0x8FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x26E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x243 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x26E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x251 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x286 DUP2 DUP6 DUP6 PUSH2 0x3BF JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x29E DUP6 DUP3 DUP6 PUSH2 0x517 JUMP JUMPDEST PUSH2 0x2A9 DUP6 DUP6 DUP6 PUSH2 0x5C7 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x286 SWAP1 DUP3 SWAP1 DUP7 SWAP1 PUSH2 0x2EE SWAP1 DUP8 SWAP1 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1F5 SWAP1 PUSH2 0x8FE JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP4 DUP2 LT ISZERO PUSH2 0x3A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2A9 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3BF JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x286 DUP2 DUP6 DUP6 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x43A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x5C1 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x5B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x39B JUMP JUMPDEST PUSH2 0x5C1 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3BF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x643 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x74E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x39B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x5C1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7E1 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7C5 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x83E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x856 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x85F DUP4 PUSH2 0x827 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x88B DUP5 PUSH2 0x827 JUMP JUMPDEST SWAP3 POP PUSH2 0x899 PUSH1 0x20 DUP6 ADD PUSH2 0x827 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8C4 DUP3 PUSH2 0x827 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E7 DUP4 PUSH2 0x827 JUMP JUMPDEST SWAP2 POP PUSH2 0x8F5 PUSH1 0x20 DUP5 ADD PUSH2 0x827 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x912 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x94B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x98B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0x28 0xD4 0xC5 SDIV 0xB9 SWAP13 0xB0 0xC2 0x27 TIMESTAMP TIMESTAMP 0xC4 0x5F 0xC5 PUSH14 0xA82D5D7776BC8E241DE2D9F1DAF0 0x2C 0xD9 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"1401:11610:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1300:14:60;;1293:22;1275:41;;1263:2;1248:18;4431:197:7;1135:187:60;3242:106:7;3329:12;;3242:106;;;1473:25:60;;;1461:2;1446:18;3242:106:7;1327:177:60;5190:286:7;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1984:36:60;;1972:2;1957:18;3091:91:7;1842:184:60;5871:234:7;;;;;;:::i;:::-;;:::i;3406:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:7;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4089:18:7;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149;2154:98;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:24;4568:32:7;719:10:24;4584:7:7;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:7;;4431:197;-1:-1:-1;;;4431:197:7:o;5190:286::-;5317:4;719:10:24;5373:38:7;5389:4;719:10:24;5404:6:7;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:7;;5190:286;-1:-1:-1;;;;5190:286:7:o;5871:234::-;719:10:24;5959:4:7;4089:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4089:27:7;;;;;;;;;;5959:4;;719:10:24;6013:64:7;;719:10:24;;4089:27:7;;6038:38;;6066:10;;6038:38;:::i;:::-;6013:8;:64::i;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;719:10:24;6685:4:7;4089:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4089:27:7;;;;;;;;;;6685:4;;719:10:24;6829:15:7;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:7;;3418:2:60;6801:85:7;;;3400:21:60;3457:2;3437:18;;;3430:30;3496:34;3476:18;;;3469:62;3567:7;3547:18;;;3540:35;3592:19;;6801:85:7;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:24;3860:28:7;719:10:24;3877:2:7;3881:6;3860:9;:28::i;10504:370::-;-1:-1:-1;;;;;10635:19:7;;10627:68;;;;-1:-1:-1;;;10627:68:7;;3824:2:60;10627:68:7;;;3806:21:60;3863:2;3843:18;;;3836:30;3902:34;3882:18;;;3875:62;3973:6;3953:18;;;3946:34;3997:19;;10627:68:7;3622:400:60;10627:68:7;-1:-1:-1;;;;;10713:21:7;;10705:68;;;;-1:-1:-1;;;10705:68:7;;4229:2:60;10705:68:7;;;4211:21:60;4268:2;4248:18;;;4241:30;4307:34;4287:18;;;4280:62;4378:4;4358:18;;;4351:32;4400:19;;10705:68:7;4027:398:60;10705:68:7;-1:-1:-1;;;;;10784:18:7;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1473:25:60;;;10835:32:7;;1446:18:60;10835:32:7;;;;;;;10504:370;;;:::o;11155:441::-;-1:-1:-1;;;;;4089:18:7;;;11285:24;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;11371:17;11351:37;;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:7;;4632:2:60;11404:68:7;;;4614:21:60;4671:2;4651:18;;;4644:30;4710:31;4690:18;;;4683:59;4759:18;;11404:68:7;4430:353:60;11404:68:7;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;:::-;11275:321;11155:441;;;:::o;7473:818::-;-1:-1:-1;;;;;7599:18:7;;7591:68;;;;-1:-1:-1;;;7591:68:7;;4990:2:60;7591:68:7;;;4972:21:60;5029:2;5009:18;;;5002:30;5068:34;5048:18;;;5041:62;5139:7;5119:18;;;5112:35;5164:19;;7591:68:7;4788:401:60;7591:68:7;-1:-1:-1;;;;;7677:16:7;;7669:64;;;;-1:-1:-1;;;7669:64:7;;5396:2:60;7669:64:7;;;5378:21:60;5435:2;5415:18;;;5408:30;5474:34;5454:18;;;5447:62;5545:5;5525:18;;;5518:33;5568:19;;7669:64:7;5194:399:60;7669:64:7;-1:-1:-1;;;;;7815:15:7;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:7;;5800:2:60;7840:72:7;;;5782:21:60;5839:2;5819:18;;;5812:30;5878:34;5858:18;;;5851:62;5949:8;5929:18;;;5922:36;5975:19;;7840:72:7;5598:402:60;7840:72:7;-1:-1:-1;;;;;7946:15:7;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1473:25:60;;;8161:13:7;;8210:26;;1446:18:60;8210:26:7;;;;;;;8247:37;12180:121;14:656:60;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;586:2:60;574:15;591:66;570:88;555:104;;;;661:2;551:113;;14:656;-1:-1:-1;;;14:656:60:o;675:196::-;743:20;;-1:-1:-1;;;;;792:54:60;;782:65;;772:93;;861:1;858;851:12;772:93;675:196;;;:::o;876:254::-;944:6;952;1005:2;993:9;984:7;980:23;976:32;973:52;;;1021:1;1018;1011:12;973:52;1044:29;1063:9;1044:29;:::i;:::-;1034:39;1120:2;1105:18;;;;1092:32;;-1:-1:-1;;;876:254:60:o;1509:328::-;1586:6;1594;1602;1655:2;1643:9;1634:7;1630:23;1626:32;1623:52;;;1671:1;1668;1661:12;1623:52;1694:29;1713:9;1694:29;:::i;:::-;1684:39;;1742:38;1776:2;1765:9;1761:18;1742:38;:::i;:::-;1732:48;;1827:2;1816:9;1812:18;1799:32;1789:42;;1509:328;;;;;:::o;2031:186::-;2090:6;2143:2;2131:9;2122:7;2118:23;2114:32;2111:52;;;2159:1;2156;2149:12;2111:52;2182:29;2201:9;2182:29;:::i;:::-;2172:39;2031:186;-1:-1:-1;;;2031:186:60:o;2222:260::-;2290:6;2298;2351:2;2339:9;2330:7;2326:23;2322:32;2319:52;;;2367:1;2364;2357:12;2319:52;2390:29;2409:9;2390:29;:::i;:::-;2380:39;;2438:38;2472:2;2461:9;2457:18;2438:38;:::i;:::-;2428:48;;2222:260;;;;;:::o;2487:437::-;2566:1;2562:12;;;;2609;;;2630:61;;2684:4;2676:6;2672:17;2662:27;;2630:61;2737:2;2729:6;2726:14;2706:18;2703:38;2700:218;;2774:77;2771:1;2764:88;2875:4;2872:1;2865:15;2903:4;2900:1;2893:15;2700:218;;2487:437;;;:::o;2929:282::-;2969:3;3000:1;2996:6;2993:1;2990:13;2987:193;;;3036:77;3033:1;3026:88;3137:4;3134:1;3127:15;3165:4;3162:1;3155:15;2987:193;-1:-1:-1;3196:9:60;;2929:282::o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"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.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"ERC20Burnable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"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","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol":{"ERC20Votes":{"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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","checkpoints(address,uint32)":"f1127ed8","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","nonces(address)":"7ecebe00","numCheckpoints(address)":"6fcfff45","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"pos\",\"type\":\"uint32\"}],\"name\":\"checkpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fromBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint224\",\"name\":\"votes\",\"type\":\"uint224\"}],\"internalType\":\"struct ERC20Votes.Checkpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's, and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1. NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module. This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting power can be queried through the public accessors {getVotes} and {getPastVotes}. By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. _Available since v4.2._\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"See {IERC20Permit-DOMAIN_SEPARATOR}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"checkpoints(address,uint32)\":{\"details\":\"Get the `pos`-th checkpoint for `account`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"delegate(address)\":{\"details\":\"Delegate votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`\"},\"delegates(address)\":{\"details\":\"Get the address `account` is currently delegating to.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. It is but NOT the sum of all the delegated votes! Requirements: - `blockNumber` must have been already mined\"},\"getPastVotes(address,uint256)\":{\"details\":\"Retrieve the number of votes for `account` at the end of `blockNumber`. Requirements: - `blockNumber` must have been already mined\"},\"getVotes(address)\":{\"details\":\"Gets the current votes balance for `account`\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"See {IERC20Permit-nonces}.\"},\"numCheckpoints(address)\":{\"details\":\"Get number of checkpoints for `account`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"See {IERC20Permit-permit}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol\":\"ERC20Votes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol\":{\"keccak256\":\"0x2f67d32babbb1619ed0cdd9c3833d76151316d6e1e7f2f30e67e15a1ed1fafc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5788b9ba7ea2967b5d5d9e3ffad5a5ffa66f1f186f615f9ae098b01452b1e80\",\"dweb:/ipfs/QmZXM98X2gXtHN9W9EW5tU9EBrCmi82zmSSuUCK6YsGMpc\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\":{\"keccak256\":\"0xd2dd6003a2dc02ab905fd405938322e510429d19ae6c07c2c683d70f13ab2f36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124567a127176d5c1dfc6776c0964b5e8c0ccfa87468b644f1175775f3c140c7\",\"dweb:/ipfs/QmYg33x4W2xC1frf1Btw2bAvs1zox4Eq7Eq9qMkj1FQKNV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x948d8b2d18f38141ec78c5229d770d950ebc781ed3f44cc9e3ccbb9fded5846a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7311ac950ed2d81f3ccf1784a926efbfc82a86dcb5c98d41eb3792c0cac63a2f\",\"dweb:/ipfs/QmRRwCUHewkPmehx8QRYENFoWyLNx8UEZGULxWYUeSZdTS\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol":{"ERC20VotesComp":{"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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","checkpoints(address,uint32)":"f1127ed8","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getCurrentVotes(address)":"b4b5ea57","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getPriorVotes(address,uint256)":"782d6fe1","getVotes(address)":"9ab24eb0","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","nonces(address)":"7ecebe00","numCheckpoints(address)":"6fcfff45","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"pos\",\"type\":\"uint32\"}],\"name\":\"checkpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fromBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint224\",\"name\":\"votes\",\"type\":\"uint224\"}],\"internalType\":\"struct ERC20Votes.Checkpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getCurrentVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of ERC20 to support Compound's voting and delegation. This version exactly matches Compound's interface, with the drawback of only supporting supply up to (2^96^ - 1). NOTE: You should use this contract if you need exact compatibility with COMP (for example in order to use your token with Governor Alpha or Bravo) and if you are sure the supply cap of 2^96^ is enough for you. Otherwise, use the {ERC20Votes} variant of this module. This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting power can be queried through the public accessors {getCurrentVotes} and {getPriorVotes}. By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked. _Available since v4.2._\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"See {IERC20Permit-DOMAIN_SEPARATOR}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"checkpoints(address,uint32)\":{\"details\":\"Get the `pos`-th checkpoint for `account`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"delegate(address)\":{\"details\":\"Delegate votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`\"},\"delegates(address)\":{\"details\":\"Get the address `account` is currently delegating to.\"},\"getCurrentVotes(address)\":{\"details\":\"Comp version of the {getVotes} accessor, with `uint96` return type.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. It is but NOT the sum of all the delegated votes! Requirements: - `blockNumber` must have been already mined\"},\"getPastVotes(address,uint256)\":{\"details\":\"Retrieve the number of votes for `account` at the end of `blockNumber`. Requirements: - `blockNumber` must have been already mined\"},\"getPriorVotes(address,uint256)\":{\"details\":\"Comp version of the {getPastVotes} accessor, with `uint96` return type.\"},\"getVotes(address)\":{\"details\":\"Gets the current votes balance for `account`\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"See {IERC20Permit-nonces}.\"},\"numCheckpoints(address)\":{\"details\":\"Get number of checkpoints for `account`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"See {IERC20Permit-permit}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol\":\"ERC20VotesComp\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol\":{\"keccak256\":\"0x2f67d32babbb1619ed0cdd9c3833d76151316d6e1e7f2f30e67e15a1ed1fafc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5788b9ba7ea2967b5d5d9e3ffad5a5ffa66f1f186f615f9ae098b01452b1e80\",\"dweb:/ipfs/QmZXM98X2gXtHN9W9EW5tU9EBrCmi82zmSSuUCK6YsGMpc\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol\":{\"keccak256\":\"0x3e2cf78abe35170695b26fb9f820fe7bfeed607604f4d6c1261f811704c79f16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d677e79ed97d35fa1fa3df7b45df9de5947e0939bb7229bfb05bc00fef9ed45\",\"dweb:/ipfs/QmRiFfC3KJH6KX7hP5cdasrxvEVbB2Fy8UJDDbf2xNSax9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\":{\"keccak256\":\"0xd2dd6003a2dc02ab905fd405938322e510429d19ae6c07c2c683d70f13ab2f36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124567a127176d5c1dfc6776c0964b5e8c0ccfa87468b644f1175775f3c140c7\",\"dweb:/ipfs/QmYg33x4W2xC1frf1Btw2bAvs1zox4Eq7Eq9qMkj1FQKNV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x948d8b2d18f38141ec78c5229d770d950ebc781ed3f44cc9e3ccbb9fded5846a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7311ac950ed2d81f3ccf1784a926efbfc82a86dcb5c98d41eb3792c0cac63a2f\",\"dweb:/ipfs/QmRRwCUHewkPmehx8QRYENFoWyLNx8UEZGULxWYUeSZdTS\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"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","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol":{"ERC20Permit":{"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":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"See {IERC20Permit-DOMAIN_SEPARATOR}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `\\\"1\\\"`. It's a good idea to use the same `name` that is defined as the ERC20 token name.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"See {IERC20Permit-nonces}.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"See {IERC20Permit-permit}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"stateVariables\":{\"_PERMIT_TYPEHASH_DEPRECATED_SLOT\":{\"custom:oz-renamed-from\":\"_PERMIT_TYPEHASH\",\"details\":\"In previous versions `_PERMIT_TYPEHASH` was declared as `immutable`. However, to ensure consistency with the upgradeable transpiler, we will continue to reserve a slot.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\":\"ERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\":{\"keccak256\":\"0xd2dd6003a2dc02ab905fd405938322e510429d19ae6c07c2c683d70f13ab2f36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124567a127176d5c1dfc6776c0964b5e8c0ccfa87468b644f1175775f3c140c7\",\"dweb:/ipfs/QmYg33x4W2xC1frf1Btw2bAvs1zox4Eq7Eq9qMkj1FQKNV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x948d8b2d18f38141ec78c5229d770d950ebc781ed3f44cc9e3ccbb9fded5846a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7311ac950ed2d81f3ccf1784a926efbfc82a86dcb5c98d41eb3792c0cac63a2f\",\"dweb:/ipfs/QmRRwCUHewkPmehx8QRYENFoWyLNx8UEZGULxWYUeSZdTS\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220663a63e0844246927844cac6ea94c23de0edefb66087313b0a1a90544a978f8664736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x3A63E084424692 PUSH25 0x44CAC6EA94C23DE0EDEFB66087313B0A1A90544A978F866473 PUSH16 0x6C634300080F00330000000000000000 ","sourceMap":"707:3748:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;707:3748:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220663a63e0844246927844cac6ea94c23de0edefb66087313b0a1a90544a978f8664736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x3A63E084424692 PUSH25 0x44CAC6EA94C23DE0EDEFB66087313B0A1A90544A978F866473 PUSH16 0x6C634300080F00330000000000000000 ","sourceMap":"707:3748:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_2877":{"entryPoint":null,"id":2877,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":112,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":295,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":461,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":544,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":401,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":90,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4189:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:60"},"nodeType":"YulFunctionCall","src":"66:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:60"},"nodeType":"YulFunctionCall","src":"56:31:60"},"nodeType":"YulExpressionStatement","src":"56:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:60"},"nodeType":"YulFunctionCall","src":"96:15:60"},"nodeType":"YulExpressionStatement","src":"96:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:60"},"nodeType":"YulFunctionCall","src":"120:15:60"},"nodeType":"YulExpressionStatement","src":"120:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:60"},{"body":{"nodeType":"YulBlock","src":"210:821:60","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:60"},"nodeType":"YulFunctionCall","src":"261:12:60"},"nodeType":"YulExpressionStatement","src":"261:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:60"},"nodeType":"YulFunctionCall","src":"234:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:60"},"nodeType":"YulFunctionCall","src":"230:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:60"},"nodeType":"YulFunctionCall","src":"223:35:60"},"nodeType":"YulIf","src":"220:55:60"},{"nodeType":"YulVariableDeclaration","src":"284:23:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:60"},"nodeType":"YulFunctionCall","src":"294:13:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:60"},"nodeType":"YulFunctionCall","src":"330:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:60"},"nodeType":"YulFunctionCall","src":"326:18:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:60"},"nodeType":"YulFunctionCall","src":"369:18:60"},"nodeType":"YulExpressionStatement","src":"369:18:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:60"},"nodeType":"YulFunctionCall","src":"356:10:60"},"nodeType":"YulIf","src":"353:36:60"},{"nodeType":"YulVariableDeclaration","src":"398:17:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:60"},"nodeType":"YulFunctionCall","src":"408:7:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:60"},"nodeType":"YulFunctionCall","src":"438:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:60"},"nodeType":"YulFunctionCall","src":"498:13:60"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:60"},"nodeType":"YulFunctionCall","src":"494:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:60","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:60"},"nodeType":"YulFunctionCall","src":"490:31:60"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:60"},"nodeType":"YulFunctionCall","src":"486:40:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:60"},"nodeType":"YulFunctionCall","src":"474:53:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:60"},"nodeType":"YulFunctionCall","src":"588:18:60"},"nodeType":"YulExpressionStatement","src":"588:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:60"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:60"},"nodeType":"YulFunctionCall","src":"542:18:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:60"},"nodeType":"YulFunctionCall","src":"562:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:60"},"nodeType":"YulFunctionCall","src":"539:46:60"},"nodeType":"YulIf","src":"536:72:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:60"},"nodeType":"YulFunctionCall","src":"617:22:60"},"nodeType":"YulExpressionStatement","src":"617:22:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:60"},"nodeType":"YulFunctionCall","src":"648:18:60"},"nodeType":"YulExpressionStatement","src":"648:18:60"},{"nodeType":"YulVariableDeclaration","src":"675:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:60","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:60"},"nodeType":"YulFunctionCall","src":"737:12:60"},"nodeType":"YulExpressionStatement","src":"737:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:60"},"nodeType":"YulFunctionCall","src":"708:15:60"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:60"},"nodeType":"YulFunctionCall","src":"704:24:60"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:60"},"nodeType":"YulFunctionCall","src":"701:33:60"},"nodeType":"YulIf","src":"698:53:60"},{"nodeType":"YulVariableDeclaration","src":"760:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:60"},"nodeType":"YulFunctionCall","src":"850:14:60"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:60"},"nodeType":"YulFunctionCall","src":"846:23:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:60"},"nodeType":"YulFunctionCall","src":"881:14:60"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:60"},"nodeType":"YulFunctionCall","src":"877:23:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:60"},"nodeType":"YulFunctionCall","src":"871:30:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:60"},"nodeType":"YulFunctionCall","src":"839:63:60"},"nodeType":"YulExpressionStatement","src":"839:63:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:60"},"nodeType":"YulFunctionCall","src":"787:9:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:60","statements":[{"nodeType":"YulAssignment","src":"799:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:60"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:60"},"nodeType":"YulFunctionCall","src":"804:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:60","statements":[]},"src":"779:133:60"},{"body":{"nodeType":"YulBlock","src":"942:59:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"971:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"979:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:60"},"nodeType":"YulFunctionCall","src":"967:15:60"},{"name":"_4","nodeType":"YulIdentifier","src":"984:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:60"},"nodeType":"YulFunctionCall","src":"963:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"989:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"956:6:60"},"nodeType":"YulFunctionCall","src":"956:35:60"},"nodeType":"YulExpressionStatement","src":"956:35:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"927:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"924:2:60"},"nodeType":"YulFunctionCall","src":"924:9:60"},"nodeType":"YulIf","src":"921:80:60"},{"nodeType":"YulAssignment","src":"1010:15:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1019:6:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1010:5:60"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:60","type":""}],"src":"146:885:60"},{"body":{"nodeType":"YulBlock","src":"1154:444:60","statements":[{"body":{"nodeType":"YulBlock","src":"1200:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1209:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1212:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1202:6:60"},"nodeType":"YulFunctionCall","src":"1202:12:60"},"nodeType":"YulExpressionStatement","src":"1202:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1175:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1171:3:60"},"nodeType":"YulFunctionCall","src":"1171:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1167:3:60"},"nodeType":"YulFunctionCall","src":"1167:32:60"},"nodeType":"YulIf","src":"1164:52:60"},{"nodeType":"YulVariableDeclaration","src":"1225:30:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1239:5:60"},"nodeType":"YulFunctionCall","src":"1239:16:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1229:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1264:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1278:3:60"},"nodeType":"YulFunctionCall","src":"1278:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1290:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1274:3:60"},"nodeType":"YulFunctionCall","src":"1274:18:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1268:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1319:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1328:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1331:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1321:6:60"},"nodeType":"YulFunctionCall","src":"1321:12:60"},"nodeType":"YulExpressionStatement","src":"1321:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1307:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1315:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1304:2:60"},"nodeType":"YulFunctionCall","src":"1304:14:60"},"nodeType":"YulIf","src":"1301:34:60"},{"nodeType":"YulAssignment","src":"1344:71:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1387:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"1398:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1383:3:60"},"nodeType":"YulFunctionCall","src":"1383:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:60"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1354:28:60"},"nodeType":"YulFunctionCall","src":"1354:61:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1344:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1424:41:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1450:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1446:3:60"},"nodeType":"YulFunctionCall","src":"1446:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1440:5:60"},"nodeType":"YulFunctionCall","src":"1440:25:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1428:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1494:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1503:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1506:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1496:6:60"},"nodeType":"YulFunctionCall","src":"1496:12:60"},"nodeType":"YulExpressionStatement","src":"1496:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1480:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1490:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1477:2:60"},"nodeType":"YulFunctionCall","src":"1477:16:60"},"nodeType":"YulIf","src":"1474:36:60"},{"nodeType":"YulAssignment","src":"1519:73:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1562:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1573:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1558:3:60"},"nodeType":"YulFunctionCall","src":"1558:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1584:7:60"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1529:28:60"},"nodeType":"YulFunctionCall","src":"1529:63:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1519:6:60"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1143:6:60","type":""}],"src":"1036:562:60"},{"body":{"nodeType":"YulBlock","src":"1658:325:60","statements":[{"nodeType":"YulAssignment","src":"1668:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1682:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1685:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1678:3:60"},"nodeType":"YulFunctionCall","src":"1678:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1668:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1699:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1729:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"1735:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1725:3:60"},"nodeType":"YulFunctionCall","src":"1725:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1703:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1776:31:60","statements":[{"nodeType":"YulAssignment","src":"1778:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1792:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1800:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1788:3:60"},"nodeType":"YulFunctionCall","src":"1788:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1778:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1756:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1749:6:60"},"nodeType":"YulFunctionCall","src":"1749:26:60"},"nodeType":"YulIf","src":"1746:61:60"},{"body":{"nodeType":"YulBlock","src":"1866:111:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1887:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1894:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1899:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1890:3:60"},"nodeType":"YulFunctionCall","src":"1890:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:60"},"nodeType":"YulFunctionCall","src":"1880:31:60"},"nodeType":"YulExpressionStatement","src":"1880:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1934:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1924:6:60"},"nodeType":"YulFunctionCall","src":"1924:15:60"},"nodeType":"YulExpressionStatement","src":"1924:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1962:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1952:6:60"},"nodeType":"YulFunctionCall","src":"1952:15:60"},"nodeType":"YulExpressionStatement","src":"1952:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1822:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1845:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1842:2:60"},"nodeType":"YulFunctionCall","src":"1842:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1819:2:60"},"nodeType":"YulFunctionCall","src":"1819:38:60"},"nodeType":"YulIf","src":"1816:161:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1638:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1647:6:60","type":""}],"src":"1603:380:60"},{"body":{"nodeType":"YulBlock","src":"2044:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2064:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2054:6:60"},"nodeType":"YulFunctionCall","src":"2054:14:60"},"nodeType":"YulExpressionStatement","src":"2054:14:60"},{"nodeType":"YulAssignment","src":"2077:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2095:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2098:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2085:9:60"},"nodeType":"YulFunctionCall","src":"2085:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2077:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2027:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2035:4:60","type":""}],"src":"1988:121:60"},{"body":{"nodeType":"YulBlock","src":"2195:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"2228:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2242:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2252:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2246:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2273:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"2277:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2266:6:60"},"nodeType":"YulFunctionCall","src":"2266:17:60"},"nodeType":"YulExpressionStatement","src":"2266:17:60"},{"nodeType":"YulVariableDeclaration","src":"2296:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2318:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"2322:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2308:9:60"},"nodeType":"YulFunctionCall","src":"2308:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2300:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2340:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2363:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2373:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2380:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"2392:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2376:3:60"},"nodeType":"YulFunctionCall","src":"2376:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2369:3:60"},"nodeType":"YulFunctionCall","src":"2369:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2359:3:60"},"nodeType":"YulFunctionCall","src":"2359:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2344:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2434:23:60","statements":[{"nodeType":"YulAssignment","src":"2436:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"2451:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2436:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2416:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"2428:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2413:2:60"},"nodeType":"YulFunctionCall","src":"2413:20:60"},"nodeType":"YulIf","src":"2410:47:60"},{"nodeType":"YulVariableDeclaration","src":"2470:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2484:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2494:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2501:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"2506:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2497:3:60"},"nodeType":"YulFunctionCall","src":"2497:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2490:3:60"},"nodeType":"YulFunctionCall","src":"2490:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2480:3:60"},"nodeType":"YulFunctionCall","src":"2480:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2474:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2524:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2537:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2528:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2622:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2631:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2638:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2624:6:60"},"nodeType":"YulFunctionCall","src":"2624:17:60"},"nodeType":"YulExpressionStatement","src":"2624:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2572:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2579:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2569:2:60"},"nodeType":"YulFunctionCall","src":"2569:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2583:26:60","statements":[{"nodeType":"YulAssignment","src":"2585:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2598:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"2605:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2594:3:60"},"nodeType":"YulFunctionCall","src":"2594:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2585:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2565:3:60","statements":[]},"src":"2561:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2211:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"2216:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2208:2:60"},"nodeType":"YulFunctionCall","src":"2208:11:60"},"nodeType":"YulIf","src":"2205:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2167:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"2174:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2179:10:60","type":""}],"src":"2114:545:60"},{"body":{"nodeType":"YulBlock","src":"2749:81:60","statements":[{"nodeType":"YulAssignment","src":"2759:65:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2774:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2792:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2795:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2788:3:60"},"nodeType":"YulFunctionCall","src":"2788:11:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2805:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2801:3:60"},"nodeType":"YulFunctionCall","src":"2801:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2784:3:60"},"nodeType":"YulFunctionCall","src":"2784:24:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2780:3:60"},"nodeType":"YulFunctionCall","src":"2780:29:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2770:3:60"},"nodeType":"YulFunctionCall","src":"2770:40:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2816:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2819:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2812:3:60"},"nodeType":"YulFunctionCall","src":"2812:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2767:2:60"},"nodeType":"YulFunctionCall","src":"2767:57:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2759:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2726:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"2732:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2740:4:60","type":""}],"src":"2664:166:60"},{"body":{"nodeType":"YulBlock","src":"2931:1256:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2941:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2961:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2955:5:60"},"nodeType":"YulFunctionCall","src":"2955:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2945:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3008:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3010:16:60"},"nodeType":"YulFunctionCall","src":"3010:18:60"},"nodeType":"YulExpressionStatement","src":"3010:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2980:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2996:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3000:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2992:3:60"},"nodeType":"YulFunctionCall","src":"2992:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"3004:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2988:3:60"},"nodeType":"YulFunctionCall","src":"2988:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2977:2:60"},"nodeType":"YulFunctionCall","src":"2977:30:60"},"nodeType":"YulIf","src":"2974:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3083:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3121:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3115:5:60"},"nodeType":"YulFunctionCall","src":"3115:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3089:25:60"},"nodeType":"YulFunctionCall","src":"3089:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"3129:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"3039:43:60"},"nodeType":"YulFunctionCall","src":"3039:97:60"},"nodeType":"YulExpressionStatement","src":"3039:97:60"},{"nodeType":"YulVariableDeclaration","src":"3145:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3162:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3149:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3172:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3191:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3176:11:60","type":""}]},{"nodeType":"YulAssignment","src":"3204:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3217:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3204:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3274:656:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3288:35:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3307:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3319:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3315:3:60"},"nodeType":"YulFunctionCall","src":"3315:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3303:3:60"},"nodeType":"YulFunctionCall","src":"3303:20:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3292:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3336:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3380:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3350:29:60"},"nodeType":"YulFunctionCall","src":"3350:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3340:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3398:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3407:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3402:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3485:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3510:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3528:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3533:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3524:3:60"},"nodeType":"YulFunctionCall","src":"3524:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3518:5:60"},"nodeType":"YulFunctionCall","src":"3518:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3503:6:60"},"nodeType":"YulFunctionCall","src":"3503:42:60"},"nodeType":"YulExpressionStatement","src":"3503:42:60"},{"nodeType":"YulAssignment","src":"3562:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3576:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3584:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3572:3:60"},"nodeType":"YulFunctionCall","src":"3572:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3562:6:60"}]},{"nodeType":"YulAssignment","src":"3603:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3620:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3631:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:60"},"nodeType":"YulFunctionCall","src":"3616:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3603:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3432:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3435:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3429:2:60"},"nodeType":"YulFunctionCall","src":"3429:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3444:28:60","statements":[{"nodeType":"YulAssignment","src":"3446:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3455:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3458:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3451:3:60"},"nodeType":"YulFunctionCall","src":"3451:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3446:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"3425:3:60","statements":[]},"src":"3421:236:60"},{"body":{"nodeType":"YulBlock","src":"3705:166:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3723:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3750:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3755:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3746:3:60"},"nodeType":"YulFunctionCall","src":"3746:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3740:5:60"},"nodeType":"YulFunctionCall","src":"3740:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3727:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3790:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3802:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3829:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3832:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3825:3:60"},"nodeType":"YulFunctionCall","src":"3825:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"3841:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3821:3:60"},"nodeType":"YulFunctionCall","src":"3821:24:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3851:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3847:3:60"},"nodeType":"YulFunctionCall","src":"3847:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3817:3:60"},"nodeType":"YulFunctionCall","src":"3817:37:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3813:3:60"},"nodeType":"YulFunctionCall","src":"3813:42:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3798:3:60"},"nodeType":"YulFunctionCall","src":"3798:58:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3783:6:60"},"nodeType":"YulFunctionCall","src":"3783:74:60"},"nodeType":"YulExpressionStatement","src":"3783:74:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3676:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"3685:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3673:2:60"},"nodeType":"YulFunctionCall","src":"3673:19:60"},"nodeType":"YulIf","src":"3670:201:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3891:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3905:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3908:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3901:3:60"},"nodeType":"YulFunctionCall","src":"3901:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"3917:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3897:3:60"},"nodeType":"YulFunctionCall","src":"3897:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3884:6:60"},"nodeType":"YulFunctionCall","src":"3884:36:60"},"nodeType":"YulExpressionStatement","src":"3884:36:60"}]},"nodeType":"YulCase","src":"3267:663:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3272:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3947:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3961:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3974:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3965:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4010:67:60","statements":[{"nodeType":"YulAssignment","src":"4028:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4047:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4052:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4043:3:60"},"nodeType":"YulFunctionCall","src":"4043:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4037:5:60"},"nodeType":"YulFunctionCall","src":"4037:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4028:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3991:6:60"},"nodeType":"YulIf","src":"3988:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4097:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4156:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"4163:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4103:52:60"},"nodeType":"YulFunctionCall","src":"4103:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4090:6:60"},"nodeType":"YulFunctionCall","src":"4090:81:60"},"nodeType":"YulExpressionStatement","src":"4090:81:60"}]},"nodeType":"YulCase","src":"3939:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3247:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3255:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3244:2:60"},"nodeType":"YulFunctionCall","src":"3244:14:60"},"nodeType":"YulSwitch","src":"3237:944:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2916:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"2922:3:60","type":""}],"src":"2835:1352:60"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        if gt(i, _1)\n        {\n            mstore(add(add(memPtr, _1), _4), 0)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200170538038062001705833981016040819052620000349162000127565b600062000042838262000220565b50600162000051828262000220565b505050620002ec565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b838211156200011d5760008385830101525b9695505050505050565b600080604083850312156200013b57600080fd5b82516001600160401b03808211156200015357600080fd5b620001618683870162000070565b935060208501519150808211156200017857600080fd5b50620001878582860162000070565b9150509250929050565b600181811c90821680620001a657607f821691505b602082108103620001c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021b57600081815260208120601f850160051c81016020861015620001f65750805b601f850160051c820191505b81811015620002175782815560010162000202565b5050505b505050565b81516001600160401b038111156200023c576200023c6200005a565b62000254816200024d845462000191565b84620001cd565b602080601f8311600181146200028c5760008415620002735750858301515b600019600386901b1c1916600185901b17855562000217565b600085815260208120601f198616915b82811015620002bd578886015182559484019460019091019084016200029c565b5085821015620002dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61140980620002fc6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101c3578063b88d4fde146101d6578063c87b56dd146101e9578063e985e9c5146101fc57600080fd5b80636352211e1461018757806370a082311461019a57806395d89b41146101bb57600080fd5b8063095ea7b3116100bd578063095ea7b31461014c57806323b872dd1461016157806342842e0e1461017457600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004611040565b610238565b60405190151581526020015b60405180910390f35b61011461031d565b60405161010391906110b5565b61013461012f3660046110c8565b6103af565b6040516001600160a01b039091168152602001610103565b61015f61015a3660046110fd565b6103d6565b005b61015f61016f366004611127565b61050c565b61015f610182366004611127565b610593565b6101346101953660046110c8565b6105ae565b6101ad6101a8366004611163565b610613565b604051908152602001610103565b6101146106ad565b61015f6101d136600461117e565b6106bc565b61015f6101e43660046111e9565b6106cb565b6101146101f73660046110c8565b610759565b6100f761020a3660046112c5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102cb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061031757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461032c906112f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610358906112f8565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b60006103ba826107cd565b506000908152600460205260409020546001600160a01b031690565b60006103e1826105ae565b9050806001600160a01b0316836001600160a01b03160361046f5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061048b575061048b813361020a565b6104fd5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610466565b6105078383610834565b505050565b61051633826108ba565b6105885760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610466565b610507838383610939565b610507838383604051806020016040528060008152506106cb565b6000818152600260205260408120546001600160a01b0316806103175760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610466565b60006001600160a01b0382166106915760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610466565b506001600160a01b031660009081526003602052604090205490565b60606001805461032c906112f8565b6106c7338383610b7a565b5050565b6106d533836108ba565b6107475760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610466565b61075384848484610c66565b50505050565b6060610764826107cd565b600061077b60408051602081019091526000815290565b9050600081511161079b57604051806020016040528060008152506107c6565b806107a584610cef565b6040516020016107b692919061134b565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166108315760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610466565b50565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091558190610881826105ae565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806108c6836105ae565b9050806001600160a01b0316846001600160a01b0316148061090d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806109315750836001600160a01b0316610926846103af565b6001600160a01b0316145b949350505050565b826001600160a01b031661094c826105ae565b6001600160a01b0316146109c85760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610466565b6001600160a01b038216610a435760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610466565b826001600160a01b0316610a56826105ae565b6001600160a01b031614610ad25760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610466565b600081815260046020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610bdb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610466565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610c71848484610939565b610c7d84848484610d8f565b6107535760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610466565b60606000610cfc83610f30565b600101905060008167ffffffffffffffff811115610d1c57610d1c6111ba565b6040519080825280601f01601f191660200182016040528015610d46576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610d5057509392505050565b60006001600160a01b0384163b15610f25576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a0290610dec90339089908890889060040161137a565b6020604051808303816000875af1925050508015610e27575060408051601f3d908101601f19168201909252610e24918101906113b6565b60015b610eda573d808015610e55576040519150601f19603f3d011682016040523d82523d6000602084013e610e5a565b606091505b508051600003610ed25760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610466565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610931565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610f79577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610fa5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fc357662386f26fc10000830492506010015b6305f5e1008310610fdb576305f5e100830492506008015b6127108310610fef57612710830492506004015b60648310611001576064830492506002015b600a83106103175760010192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461083157600080fd5b60006020828403121561105257600080fd5b81356107c681611012565b60005b83811015611078578181015183820152602001611060565b838111156107535750506000910152565b600081518084526110a181602086016020860161105d565b601f01601f19169290920160200192915050565b6020815260006107c66020830184611089565b6000602082840312156110da57600080fd5b5035919050565b80356001600160a01b03811681146110f857600080fd5b919050565b6000806040838503121561111057600080fd5b611119836110e1565b946020939093013593505050565b60008060006060848603121561113c57600080fd5b611145846110e1565b9250611153602085016110e1565b9150604084013590509250925092565b60006020828403121561117557600080fd5b6107c6826110e1565b6000806040838503121561119157600080fd5b61119a836110e1565b9150602083013580151581146111af57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156111ff57600080fd5b611208856110e1565b9350611216602086016110e1565b925060408501359150606085013567ffffffffffffffff8082111561123a57600080fd5b818701915087601f83011261124e57600080fd5b813581811115611260576112606111ba565b604051601f8201601f19908116603f01168101908382118183101715611288576112886111ba565b816040528281528a60208487010111156112a157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156112d857600080fd5b6112e1836110e1565b91506112ef602084016110e1565b90509250929050565b600181811c9082168061130c57607f821691505b602082108103611345577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000835161135d81846020880161105d565b83519083019061137181836020880161105d565b01949350505050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526113ac6080830184611089565b9695505050505050565b6000602082840312156113c857600080fd5b81516107c68161101256fea26469706673582212208c02660deabc26483c0725e09605e1c47600d76ed2d887b73070b2b36bbc8a4e64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1705 CODESIZE SUB DUP1 PUSH3 0x1705 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x127 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x42 DUP4 DUP3 PUSH3 0x220 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0x51 DUP3 DUP3 PUSH3 0x220 JUMP JUMPDEST POP POP POP PUSH3 0x2EC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x9F JUMPI PUSH3 0x9F PUSH3 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0xCA JUMPI PUSH3 0xCA PUSH3 0x5A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x10B JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0xEC JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x11D JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x13B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x153 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x161 DUP7 DUP4 DUP8 ADD PUSH3 0x70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x187 DUP6 DUP3 DUP7 ADD PUSH3 0x70 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1A6 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x21B JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x1F6 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x217 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x202 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x23C JUMPI PUSH3 0x23C PUSH3 0x5A JUMP JUMPDEST PUSH3 0x254 DUP2 PUSH3 0x24D DUP5 SLOAD PUSH3 0x191 JUMP JUMPDEST DUP5 PUSH3 0x1CD JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x28C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x273 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x217 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2BD JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x29C JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x2DC JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x1409 DUP1 PUSH3 0x2FC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1040 JUMP JUMPDEST PUSH2 0x238 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x10B5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x15F PUSH2 0x15A CALLDATASIZE PUSH1 0x4 PUSH2 0x10FD JUMP JUMPDEST PUSH2 0x3D6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15F PUSH2 0x16F CALLDATASIZE PUSH1 0x4 PUSH2 0x1127 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x15F PUSH2 0x182 CALLDATASIZE PUSH1 0x4 PUSH2 0x1127 JUMP JUMPDEST PUSH2 0x593 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x5AE JUMP JUMPDEST PUSH2 0x1AD PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1163 JUMP JUMPDEST PUSH2 0x613 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x6AD JUMP JUMPDEST PUSH2 0x15F PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x117E JUMP JUMPDEST PUSH2 0x6BC JUMP JUMPDEST PUSH2 0x15F PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x11E9 JUMP JUMPDEST PUSH2 0x6CB JUMP JUMPDEST PUSH2 0x114 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x759 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x12C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x2CB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x317 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x32C SWAP1 PUSH2 0x12F8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x358 SWAP1 PUSH2 0x12F8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3A5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x388 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BA DUP3 PUSH2 0x7CD JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E1 DUP3 PUSH2 0x5AE JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x48B JUMPI POP PUSH2 0x48B DUP2 CALLER PUSH2 0x20A JUMP JUMPDEST PUSH2 0x4FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH2 0x507 DUP4 DUP4 PUSH2 0x834 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x516 CALLER DUP3 PUSH2 0x8BA JUMP JUMPDEST PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH2 0x507 DUP4 DUP4 DUP4 PUSH2 0x939 JUMP JUMPDEST PUSH2 0x507 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x6CB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x317 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x691 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x32C SWAP1 PUSH2 0x12F8 JUMP JUMPDEST PUSH2 0x6C7 CALLER DUP4 DUP4 PUSH2 0xB7A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x6D5 CALLER DUP4 PUSH2 0x8BA JUMP JUMPDEST PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH2 0x753 DUP5 DUP5 DUP5 DUP5 PUSH2 0xC66 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x764 DUP3 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77B PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH2 0x7A5 DUP5 PUSH2 0xCEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7B6 SWAP3 SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x831 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x466 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x881 DUP3 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8C6 DUP4 PUSH2 0x5AE JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x90D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x931 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x926 DUP5 PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x94C DUP3 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA56 DUP3 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAD2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x3 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x2 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xBDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xC71 DUP5 DUP5 DUP5 PUSH2 0x939 JUMP JUMPDEST PUSH2 0xC7D DUP5 DUP5 DUP5 DUP5 PUSH2 0xD8F JUMP JUMPDEST PUSH2 0x753 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xCFC DUP4 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD1C JUMPI PUSH2 0xD1C PUSH2 0x11BA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD46 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xD50 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xF25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xDEC SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x137A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xE27 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xE24 SWAP2 DUP2 ADD SWAP1 PUSH2 0x13B6 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xEDA JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xE55 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xE5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xED2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0x931 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0xF79 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xFA5 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xFC3 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xFDB JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xFEF JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1001 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x317 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1052 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7C6 DUP2 PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1078 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1060 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x753 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x10A1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x105D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x7C6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1089 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1119 DUP4 PUSH2 0x10E1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x113C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1145 DUP5 PUSH2 0x10E1 JUMP JUMPDEST SWAP3 POP PUSH2 0x1153 PUSH1 0x20 DUP6 ADD PUSH2 0x10E1 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C6 DUP3 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x119A DUP4 PUSH2 0x10E1 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x11AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x11FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1208 DUP6 PUSH2 0x10E1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1216 PUSH1 0x20 DUP7 ADD PUSH2 0x10E1 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x123A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x124E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1260 JUMPI PUSH2 0x1260 PUSH2 0x11BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1288 JUMPI PUSH2 0x1288 PUSH2 0x11BA JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x12A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E1 DUP4 PUSH2 0x10E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x12EF PUSH1 0x20 DUP5 ADD PUSH2 0x10E1 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x130C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1345 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x135D DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x105D JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1371 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x105D JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x13AC PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1089 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7C6 DUP2 PUSH2 0x1012 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 MUL PUSH7 0xDEABC26483C07 0x25 0xE0 SWAP7 SDIV 0xE1 0xC4 PUSH23 0xD76ED2D887B73070B2B36BBC8A4E64736F6C63430008 0xF STOP CALLER ","sourceMap":"628:16679:16:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:5;:13;1464:5;1456;:13;:::i;:::-;-1:-1:-1;1479:7:16;:17;1489:7;1479;:17;:::i;:::-;;1390:113;;628:16679;;14:127:60;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:60;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:60;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:60:o;1036:562::-;1135:6;1143;1196:2;1184:9;1175:7;1171:23;1167:32;1164:52;;;1212:1;1209;1202:12;1164:52;1239:16;;-1:-1:-1;;;;;1304:14:60;;;1301:34;;;1331:1;1328;1321:12;1301:34;1354:61;1407:7;1398:6;1387:9;1383:22;1354:61;:::i;:::-;1344:71;;1461:2;1450:9;1446:18;1440:25;1424:41;;1490:2;1480:8;1477:16;1474:36;;;1506:1;1503;1496:12;1474:36;;1529:63;1584:7;1573:8;1562:9;1558:24;1529:63;:::i;:::-;1519:73;;;1036:562;;;;;:::o;1603:380::-;1682:1;1678:12;;;;1725;;;1746:61;;1800:4;1792:6;1788:17;1778:27;;1746:61;1853:2;1845:6;1842:14;1822:18;1819:38;1816:161;;1899:10;1894:3;1890:20;1887:1;1880:31;1934:4;1931:1;1924:15;1962:4;1959:1;1952:15;1816:161;;1603:380;;;:::o;2114:545::-;2216:2;2211:3;2208:11;2205:448;;;2252:1;2277:5;2273:2;2266:17;2322:4;2318:2;2308:19;2392:2;2380:10;2376:19;2373:1;2369:27;2363:4;2359:38;2428:4;2416:10;2413:20;2410:47;;;-1:-1:-1;2451:4:60;2410:47;2506:2;2501:3;2497:12;2494:1;2490:20;2484:4;2480:31;2470:41;;2561:82;2579:2;2572:5;2569:13;2561:82;;;2624:17;;;2605:1;2594:13;2561:82;;;2565:3;;;2205:448;2114:545;;;:::o;2835:1352::-;2955:10;;-1:-1:-1;;;;;2977:30:60;;2974:56;;;3010:18;;:::i;:::-;3039:97;3129:6;3089:38;3121:4;3115:11;3089:38;:::i;:::-;3083:4;3039:97;:::i;:::-;3191:4;;3255:2;3244:14;;3272:1;3267:663;;;;3974:1;3991:6;3988:89;;;-1:-1:-1;4043:19:60;;;4037:26;3988:89;-1:-1:-1;;2792:1:60;2788:11;;;2784:24;2780:29;2770:40;2816:1;2812:11;;;2767:57;4090:81;;3237:944;;3267:663;2061:1;2054:14;;;2098:4;2085:18;;-1:-1:-1;;3303:20:60;;;3421:236;3435:7;3432:1;3429:14;3421:236;;;3524:19;;;3518:26;3503:42;;3616:27;;;;3584:1;3572:14;;;;3451:19;;3421:236;;;3425:3;3685:6;3676:7;3673:19;3670:201;;;3746:19;;;3740:26;-1:-1:-1;;3829:1:60;3825:14;;;3841:3;3821:24;3817:37;3813:42;3798:58;3783:74;;3670:201;-1:-1:-1;;;;;3917:1:60;3901:14;;;3897:22;3884:36;;-1:-1:-1;2835:1352:60:o;:::-;628:16679:16;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_3725":{"entryPoint":null,"id":3725,"parameterSlots":4,"returnSlots":0},"@_approve_3591":{"entryPoint":2100,"id":3591,"parameterSlots":2,"returnSlots":0},"@_baseURI_3028":{"entryPoint":null,"id":3028,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_3712":{"entryPoint":null,"id":3712,"parameterSlots":4,"returnSlots":0},"@_checkOnERC721Received_3699":{"entryPoint":3471,"id":3699,"parameterSlots":4,"returnSlots":1},"@_exists_3260":{"entryPoint":null,"id":3260,"parameterSlots":1,"returnSlots":1},"@_isApprovedOrOwner_3294":{"entryPoint":2234,"id":3294,"parameterSlots":2,"returnSlots":1},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_ownerOf_3242":{"entryPoint":null,"id":3242,"parameterSlots":1,"returnSlots":1},"@_requireMinted_3637":{"entryPoint":1997,"id":3637,"parameterSlots":1,"returnSlots":0},"@_safeTransfer_3229":{"entryPoint":3174,"id":3229,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_3623":{"entryPoint":2938,"id":3623,"parameterSlots":3,"returnSlots":0},"@_transfer_3567":{"entryPoint":2361,"id":3567,"parameterSlots":3,"returnSlots":0},"@approve_3071":{"entryPoint":982,"id":3071,"parameterSlots":2,"returnSlots":0},"@balanceOf_2932":{"entryPoint":1555,"id":2932,"parameterSlots":1,"returnSlots":1},"@getApproved_3089":{"entryPoint":943,"id":3089,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_3124":{"entryPoint":null,"id":3124,"parameterSlots":2,"returnSlots":1},"@isContract_4305":{"entryPoint":null,"id":4305,"parameterSlots":1,"returnSlots":1},"@log10_6690":{"entryPoint":3888,"id":6690,"parameterSlots":1,"returnSlots":1},"@name_2970":{"entryPoint":797,"id":2970,"parameterSlots":0,"returnSlots":1},"@ownerOf_2960":{"entryPoint":1454,"id":2960,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_3170":{"entryPoint":1427,"id":3170,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_3200":{"entryPoint":1739,"id":3200,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_3106":{"entryPoint":1724,"id":3106,"parameterSlots":2,"returnSlots":0},"@supportsInterface_2908":{"entryPoint":568,"id":2908,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5975":{"entryPoint":null,"id":5975,"parameterSlots":1,"returnSlots":1},"@symbol_2980":{"entryPoint":1709,"id":2980,"parameterSlots":0,"returnSlots":1},"@toString_4818":{"entryPoint":3311,"id":4818,"parameterSlots":1,"returnSlots":1},"@tokenURI_3019":{"entryPoint":1881,"id":3019,"parameterSlots":1,"returnSlots":1},"@transferFrom_3151":{"entryPoint":1292,"id":3151,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":4321,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4451,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":4805,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":4391,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":4585,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":4478,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":4349,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":4160,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":5046,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4296,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":4233,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4939,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4986,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4277,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":4189,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":4856,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4538,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":4114,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10505:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:133:60","statements":[{"body":{"nodeType":"YulBlock","src":"169:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:60"},"nodeType":"YulFunctionCall","src":"171:12:60"},"nodeType":"YulExpressionStatement","src":"171:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"99:66:60","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:60"},"nodeType":"YulFunctionCall","src":"88:78:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:60"},"nodeType":"YulFunctionCall","src":"78:89:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:60"},"nodeType":"YulFunctionCall","src":"71:97:60"},"nodeType":"YulIf","src":"68:117:60"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"265:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"311:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"323:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"313:6:60"},"nodeType":"YulFunctionCall","src":"313:12:60"},"nodeType":"YulExpressionStatement","src":"313:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"286:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"295:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"282:3:60"},"nodeType":"YulFunctionCall","src":"282:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"307:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"278:3:60"},"nodeType":"YulFunctionCall","src":"278:32:60"},"nodeType":"YulIf","src":"275:52:60"},{"nodeType":"YulVariableDeclaration","src":"336:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"362:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"349:12:60"},"nodeType":"YulFunctionCall","src":"349:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"340:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"405:5:60"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"381:23:60"},"nodeType":"YulFunctionCall","src":"381:30:60"},"nodeType":"YulExpressionStatement","src":"381:30:60"},{"nodeType":"YulAssignment","src":"420:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"430:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"420:6:60"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"231:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"242:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"254:6:60","type":""}],"src":"196:245:60"},{"body":{"nodeType":"YulBlock","src":"541:92:60","statements":[{"nodeType":"YulAssignment","src":"551:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"563:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"574:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"559:3:60"},"nodeType":"YulFunctionCall","src":"559:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"551:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"593:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"618:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"611:6:60"},"nodeType":"YulFunctionCall","src":"611:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"604:6:60"},"nodeType":"YulFunctionCall","src":"604:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"586:6:60"},"nodeType":"YulFunctionCall","src":"586:41:60"},"nodeType":"YulExpressionStatement","src":"586:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"510:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"521:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"532:4:60","type":""}],"src":"446:187:60"},{"body":{"nodeType":"YulBlock","src":"691:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"701:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"710:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"705:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"770:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"795:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"800:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"791:3:60"},"nodeType":"YulFunctionCall","src":"791:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"814:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"819:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:60"},"nodeType":"YulFunctionCall","src":"810:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"804:5:60"},"nodeType":"YulFunctionCall","src":"804:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"784:6:60"},"nodeType":"YulFunctionCall","src":"784:39:60"},"nodeType":"YulExpressionStatement","src":"784:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"731:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"734:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"728:2:60"},"nodeType":"YulFunctionCall","src":"728:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"742:19:60","statements":[{"nodeType":"YulAssignment","src":"744:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"753:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"756:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"749:3:60"},"nodeType":"YulFunctionCall","src":"749:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"744:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"724:3:60","statements":[]},"src":"720:113:60"},{"body":{"nodeType":"YulBlock","src":"859:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"872:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"877:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"868:3:60"},"nodeType":"YulFunctionCall","src":"868:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"886:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"861:6:60"},"nodeType":"YulFunctionCall","src":"861:27:60"},"nodeType":"YulExpressionStatement","src":"861:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"848:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"851:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"845:2:60"},"nodeType":"YulFunctionCall","src":"845:13:60"},"nodeType":"YulIf","src":"842:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"669:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"674:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"679:6:60","type":""}],"src":"638:258:60"},{"body":{"nodeType":"YulBlock","src":"951:267:60","statements":[{"nodeType":"YulVariableDeclaration","src":"961:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"981:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"975:5:60"},"nodeType":"YulFunctionCall","src":"975:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"965:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1003:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"1008:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"996:6:60"},"nodeType":"YulFunctionCall","src":"996:19:60"},"nodeType":"YulExpressionStatement","src":"996:19:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1050:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1057:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1046:3:60"},"nodeType":"YulFunctionCall","src":"1046:16:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1068:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1073:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1064:3:60"},"nodeType":"YulFunctionCall","src":"1064:14:60"},{"name":"length","nodeType":"YulIdentifier","src":"1080:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1024:21:60"},"nodeType":"YulFunctionCall","src":"1024:63:60"},"nodeType":"YulExpressionStatement","src":"1024:63:60"},{"nodeType":"YulAssignment","src":"1096:116:60","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1111:3:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1124:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1120:3:60"},"nodeType":"YulFunctionCall","src":"1120:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"1137:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1116:3:60"},"nodeType":"YulFunctionCall","src":"1116:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1107:3:60"},"nodeType":"YulFunctionCall","src":"1107:98:60"},{"kind":"number","nodeType":"YulLiteral","src":"1207:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1103:3:60"},"nodeType":"YulFunctionCall","src":"1103:109:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1096:3:60"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"928:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"935:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"943:3:60","type":""}],"src":"901:317:60"},{"body":{"nodeType":"YulBlock","src":"1344:99:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1361:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1372:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1354:6:60"},"nodeType":"YulFunctionCall","src":"1354:21:60"},"nodeType":"YulExpressionStatement","src":"1354:21:60"},{"nodeType":"YulAssignment","src":"1384:53:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1410:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1422:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1433:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1418:3:60"},"nodeType":"YulFunctionCall","src":"1418:18:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1392:17:60"},"nodeType":"YulFunctionCall","src":"1392:45:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1384:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1313:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1324:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1335:4:60","type":""}],"src":"1223:220:60"},{"body":{"nodeType":"YulBlock","src":"1518:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"1564:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1573:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1576:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1566:6:60"},"nodeType":"YulFunctionCall","src":"1566:12:60"},"nodeType":"YulExpressionStatement","src":"1566:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1539:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1548:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1535:3:60"},"nodeType":"YulFunctionCall","src":"1535:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1560:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1531:3:60"},"nodeType":"YulFunctionCall","src":"1531:32:60"},"nodeType":"YulIf","src":"1528:52:60"},{"nodeType":"YulAssignment","src":"1589:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1612:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1599:12:60"},"nodeType":"YulFunctionCall","src":"1599:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1589:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1484:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1495:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1507:6:60","type":""}],"src":"1448:180:60"},{"body":{"nodeType":"YulBlock","src":"1734:125:60","statements":[{"nodeType":"YulAssignment","src":"1744:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1756:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1767:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1752:3:60"},"nodeType":"YulFunctionCall","src":"1752:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1744:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1786:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1801:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1809:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1797:3:60"},"nodeType":"YulFunctionCall","src":"1797:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1779:6:60"},"nodeType":"YulFunctionCall","src":"1779:74:60"},"nodeType":"YulExpressionStatement","src":"1779:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1703:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1714:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1725:4:60","type":""}],"src":"1633:226:60"},{"body":{"nodeType":"YulBlock","src":"1913:147:60","statements":[{"nodeType":"YulAssignment","src":"1923:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1945:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1932:12:60"},"nodeType":"YulFunctionCall","src":"1932:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1923:5:60"}]},{"body":{"nodeType":"YulBlock","src":"2038:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2047:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2050:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2040:6:60"},"nodeType":"YulFunctionCall","src":"2040:12:60"},"nodeType":"YulExpressionStatement","src":"2040:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1974:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1985:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1992:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1981:3:60"},"nodeType":"YulFunctionCall","src":"1981:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1971:2:60"},"nodeType":"YulFunctionCall","src":"1971:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1964:6:60"},"nodeType":"YulFunctionCall","src":"1964:73:60"},"nodeType":"YulIf","src":"1961:93:60"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1892:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1903:5:60","type":""}],"src":"1864:196:60"},{"body":{"nodeType":"YulBlock","src":"2152:167:60","statements":[{"body":{"nodeType":"YulBlock","src":"2198:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2207:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2210:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2200:6:60"},"nodeType":"YulFunctionCall","src":"2200:12:60"},"nodeType":"YulExpressionStatement","src":"2200:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2173:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2182:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2169:3:60"},"nodeType":"YulFunctionCall","src":"2169:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2194:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2165:3:60"},"nodeType":"YulFunctionCall","src":"2165:32:60"},"nodeType":"YulIf","src":"2162:52:60"},{"nodeType":"YulAssignment","src":"2223:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2252:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2233:18:60"},"nodeType":"YulFunctionCall","src":"2233:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2223:6:60"}]},{"nodeType":"YulAssignment","src":"2271:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2298:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2309:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2294:3:60"},"nodeType":"YulFunctionCall","src":"2294:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2281:12:60"},"nodeType":"YulFunctionCall","src":"2281:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2271:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2110:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2121:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2133:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2141:6:60","type":""}],"src":"2065:254:60"},{"body":{"nodeType":"YulBlock","src":"2428:224:60","statements":[{"body":{"nodeType":"YulBlock","src":"2474:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2483:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2486:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2476:6:60"},"nodeType":"YulFunctionCall","src":"2476:12:60"},"nodeType":"YulExpressionStatement","src":"2476:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2449:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2445:3:60"},"nodeType":"YulFunctionCall","src":"2445:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2470:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2441:3:60"},"nodeType":"YulFunctionCall","src":"2441:32:60"},"nodeType":"YulIf","src":"2438:52:60"},{"nodeType":"YulAssignment","src":"2499:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2528:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2509:18:60"},"nodeType":"YulFunctionCall","src":"2509:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2499:6:60"}]},{"nodeType":"YulAssignment","src":"2547:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2580:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2591:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2576:3:60"},"nodeType":"YulFunctionCall","src":"2576:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2557:18:60"},"nodeType":"YulFunctionCall","src":"2557:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2547:6:60"}]},{"nodeType":"YulAssignment","src":"2604:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2631:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2642:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2627:3:60"},"nodeType":"YulFunctionCall","src":"2627:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2614:12:60"},"nodeType":"YulFunctionCall","src":"2614:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2604:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2378:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2389:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2401:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2409:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2417:6:60","type":""}],"src":"2324:328:60"},{"body":{"nodeType":"YulBlock","src":"2727:116:60","statements":[{"body":{"nodeType":"YulBlock","src":"2773:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2782:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2785:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2775:6:60"},"nodeType":"YulFunctionCall","src":"2775:12:60"},"nodeType":"YulExpressionStatement","src":"2775:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2748:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2757:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2744:3:60"},"nodeType":"YulFunctionCall","src":"2744:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2769:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2740:3:60"},"nodeType":"YulFunctionCall","src":"2740:32:60"},"nodeType":"YulIf","src":"2737:52:60"},{"nodeType":"YulAssignment","src":"2798:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2827:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2808:18:60"},"nodeType":"YulFunctionCall","src":"2808:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2798:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2693:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2704:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2716:6:60","type":""}],"src":"2657:186:60"},{"body":{"nodeType":"YulBlock","src":"2949:76:60","statements":[{"nodeType":"YulAssignment","src":"2959:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2971:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2982:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2967:3:60"},"nodeType":"YulFunctionCall","src":"2967:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2959:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3001:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"3012:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2994:6:60"},"nodeType":"YulFunctionCall","src":"2994:25:60"},"nodeType":"YulExpressionStatement","src":"2994:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2918:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2929:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2940:4:60","type":""}],"src":"2848:177:60"},{"body":{"nodeType":"YulBlock","src":"3114:263:60","statements":[{"body":{"nodeType":"YulBlock","src":"3160:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3169:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3172:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3162:6:60"},"nodeType":"YulFunctionCall","src":"3162:12:60"},"nodeType":"YulExpressionStatement","src":"3162:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3135:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3144:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3131:3:60"},"nodeType":"YulFunctionCall","src":"3131:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3156:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3127:3:60"},"nodeType":"YulFunctionCall","src":"3127:32:60"},"nodeType":"YulIf","src":"3124:52:60"},{"nodeType":"YulAssignment","src":"3185:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3214:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3195:18:60"},"nodeType":"YulFunctionCall","src":"3195:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3185:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"3233:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3263:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3274:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3259:3:60"},"nodeType":"YulFunctionCall","src":"3259:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3246:12:60"},"nodeType":"YulFunctionCall","src":"3246:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3237:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3331:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3340:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3343:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3333:6:60"},"nodeType":"YulFunctionCall","src":"3333:12:60"},"nodeType":"YulExpressionStatement","src":"3333:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3300:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3321:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3314:6:60"},"nodeType":"YulFunctionCall","src":"3314:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3307:6:60"},"nodeType":"YulFunctionCall","src":"3307:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3297:2:60"},"nodeType":"YulFunctionCall","src":"3297:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3290:6:60"},"nodeType":"YulFunctionCall","src":"3290:40:60"},"nodeType":"YulIf","src":"3287:60:60"},{"nodeType":"YulAssignment","src":"3356:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"3366:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3356:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3072:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3083:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3095:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3103:6:60","type":""}],"src":"3030:347:60"},{"body":{"nodeType":"YulBlock","src":"3414:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3431:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3434:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3424:6:60"},"nodeType":"YulFunctionCall","src":"3424:88:60"},"nodeType":"YulExpressionStatement","src":"3424:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3528:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3531:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3521:6:60"},"nodeType":"YulFunctionCall","src":"3521:15:60"},"nodeType":"YulExpressionStatement","src":"3521:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3552:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3555:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3545:6:60"},"nodeType":"YulFunctionCall","src":"3545:15:60"},"nodeType":"YulExpressionStatement","src":"3545:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3382:184:60"},{"body":{"nodeType":"YulBlock","src":"3701:1067:60","statements":[{"body":{"nodeType":"YulBlock","src":"3748:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3757:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3760:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3750:6:60"},"nodeType":"YulFunctionCall","src":"3750:12:60"},"nodeType":"YulExpressionStatement","src":"3750:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3722:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3731:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3718:3:60"},"nodeType":"YulFunctionCall","src":"3718:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3743:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3714:3:60"},"nodeType":"YulFunctionCall","src":"3714:33:60"},"nodeType":"YulIf","src":"3711:53:60"},{"nodeType":"YulAssignment","src":"3773:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3802:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3783:18:60"},"nodeType":"YulFunctionCall","src":"3783:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3773:6:60"}]},{"nodeType":"YulAssignment","src":"3821:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3854:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3865:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3850:3:60"},"nodeType":"YulFunctionCall","src":"3850:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3831:18:60"},"nodeType":"YulFunctionCall","src":"3831:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3821:6:60"}]},{"nodeType":"YulAssignment","src":"3878:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3905:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3916:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3901:3:60"},"nodeType":"YulFunctionCall","src":"3901:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3888:12:60"},"nodeType":"YulFunctionCall","src":"3888:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3878:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"3929:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3960:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3971:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3956:3:60"},"nodeType":"YulFunctionCall","src":"3956:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3943:12:60"},"nodeType":"YulFunctionCall","src":"3943:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3933:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3984:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3994:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3988:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4039:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4048:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4051:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4041:6:60"},"nodeType":"YulFunctionCall","src":"4041:12:60"},"nodeType":"YulExpressionStatement","src":"4041:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4027:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4035:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4024:2:60"},"nodeType":"YulFunctionCall","src":"4024:14:60"},"nodeType":"YulIf","src":"4021:34:60"},{"nodeType":"YulVariableDeclaration","src":"4064:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4078:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"4089:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4074:3:60"},"nodeType":"YulFunctionCall","src":"4074:22:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4068:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4144:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4153:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4156:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4146:6:60"},"nodeType":"YulFunctionCall","src":"4146:12:60"},"nodeType":"YulExpressionStatement","src":"4146:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4123:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"4127:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4119:3:60"},"nodeType":"YulFunctionCall","src":"4119:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4134:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4115:3:60"},"nodeType":"YulFunctionCall","src":"4115:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4108:6:60"},"nodeType":"YulFunctionCall","src":"4108:35:60"},"nodeType":"YulIf","src":"4105:55:60"},{"nodeType":"YulVariableDeclaration","src":"4169:26:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4192:2:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4179:12:60"},"nodeType":"YulFunctionCall","src":"4179:16:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4173:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4218:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4220:16:60"},"nodeType":"YulFunctionCall","src":"4220:18:60"},"nodeType":"YulExpressionStatement","src":"4220:18:60"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4210:2:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4214:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4207:2:60"},"nodeType":"YulFunctionCall","src":"4207:10:60"},"nodeType":"YulIf","src":"4204:36:60"},{"nodeType":"YulVariableDeclaration","src":"4249:76:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4259:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4253:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4334:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4354:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4348:5:60"},"nodeType":"YulFunctionCall","src":"4348:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4338:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4366:71:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4388:6:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4412:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"4416:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4408:3:60"},"nodeType":"YulFunctionCall","src":"4408:13:60"},{"name":"_4","nodeType":"YulIdentifier","src":"4423:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4404:3:60"},"nodeType":"YulFunctionCall","src":"4404:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"4428:2:60","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4400:3:60"},"nodeType":"YulFunctionCall","src":"4400:31:60"},{"name":"_4","nodeType":"YulIdentifier","src":"4433:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4396:3:60"},"nodeType":"YulFunctionCall","src":"4396:40:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4384:3:60"},"nodeType":"YulFunctionCall","src":"4384:53:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4370:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4496:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4498:16:60"},"nodeType":"YulFunctionCall","src":"4498:18:60"},"nodeType":"YulExpressionStatement","src":"4498:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4455:10:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4467:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4452:2:60"},"nodeType":"YulFunctionCall","src":"4452:18:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4475:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4487:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4472:2:60"},"nodeType":"YulFunctionCall","src":"4472:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4449:2:60"},"nodeType":"YulFunctionCall","src":"4449:46:60"},"nodeType":"YulIf","src":"4446:72:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4534:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4538:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4527:6:60"},"nodeType":"YulFunctionCall","src":"4527:22:60"},"nodeType":"YulExpressionStatement","src":"4527:22:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4565:6:60"},{"name":"_3","nodeType":"YulIdentifier","src":"4573:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4558:6:60"},"nodeType":"YulFunctionCall","src":"4558:18:60"},"nodeType":"YulExpressionStatement","src":"4558:18:60"},{"body":{"nodeType":"YulBlock","src":"4622:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4631:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4634:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4624:6:60"},"nodeType":"YulFunctionCall","src":"4624:12:60"},"nodeType":"YulExpressionStatement","src":"4624:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4599:2:60"},{"name":"_3","nodeType":"YulIdentifier","src":"4603:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4595:3:60"},"nodeType":"YulFunctionCall","src":"4595:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"4608:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4591:3:60"},"nodeType":"YulFunctionCall","src":"4591:20:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4613:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4588:2:60"},"nodeType":"YulFunctionCall","src":"4588:33:60"},"nodeType":"YulIf","src":"4585:53:60"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4664:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4672:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4660:3:60"},"nodeType":"YulFunctionCall","src":"4660:15:60"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4681:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"4685:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4677:3:60"},"nodeType":"YulFunctionCall","src":"4677:11:60"},{"name":"_3","nodeType":"YulIdentifier","src":"4690:2:60"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4647:12:60"},"nodeType":"YulFunctionCall","src":"4647:46:60"},"nodeType":"YulExpressionStatement","src":"4647:46:60"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4717:6:60"},{"name":"_3","nodeType":"YulIdentifier","src":"4725:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4713:3:60"},"nodeType":"YulFunctionCall","src":"4713:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"4730:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4709:3:60"},"nodeType":"YulFunctionCall","src":"4709:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"4735:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4702:6:60"},"nodeType":"YulFunctionCall","src":"4702:35:60"},"nodeType":"YulExpressionStatement","src":"4702:35:60"},{"nodeType":"YulAssignment","src":"4746:16:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4756:6:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4746:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3643:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3654:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3666:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3674:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3682:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3690:6:60","type":""}],"src":"3571:1197:60"},{"body":{"nodeType":"YulBlock","src":"4860:173:60","statements":[{"body":{"nodeType":"YulBlock","src":"4906:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4915:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4918:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4908:6:60"},"nodeType":"YulFunctionCall","src":"4908:12:60"},"nodeType":"YulExpressionStatement","src":"4908:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4881:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4890:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4877:3:60"},"nodeType":"YulFunctionCall","src":"4877:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4902:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4873:3:60"},"nodeType":"YulFunctionCall","src":"4873:32:60"},"nodeType":"YulIf","src":"4870:52:60"},{"nodeType":"YulAssignment","src":"4931:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4960:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4941:18:60"},"nodeType":"YulFunctionCall","src":"4941:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4931:6:60"}]},{"nodeType":"YulAssignment","src":"4979:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5012:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5023:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5008:3:60"},"nodeType":"YulFunctionCall","src":"5008:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4989:18:60"},"nodeType":"YulFunctionCall","src":"4989:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4979:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4818:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4829:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4841:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4849:6:60","type":""}],"src":"4773:260:60"},{"body":{"nodeType":"YulBlock","src":"5093:382:60","statements":[{"nodeType":"YulAssignment","src":"5103:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5117:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"5120:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5113:3:60"},"nodeType":"YulFunctionCall","src":"5113:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5103:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"5134:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5164:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"5170:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5160:3:60"},"nodeType":"YulFunctionCall","src":"5160:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5138:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5211:31:60","statements":[{"nodeType":"YulAssignment","src":"5213:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5227:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5235:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5223:3:60"},"nodeType":"YulFunctionCall","src":"5223:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5213:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5191:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5184:6:60"},"nodeType":"YulFunctionCall","src":"5184:26:60"},"nodeType":"YulIf","src":"5181:61:60"},{"body":{"nodeType":"YulBlock","src":"5301:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5322:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5325:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5315:6:60"},"nodeType":"YulFunctionCall","src":"5315:88:60"},"nodeType":"YulExpressionStatement","src":"5315:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5423:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5426:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5416:6:60"},"nodeType":"YulFunctionCall","src":"5416:15:60"},"nodeType":"YulExpressionStatement","src":"5416:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5451:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5454:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5444:6:60"},"nodeType":"YulFunctionCall","src":"5444:15:60"},"nodeType":"YulExpressionStatement","src":"5444:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5257:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5280:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5288:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5277:2:60"},"nodeType":"YulFunctionCall","src":"5277:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5254:2:60"},"nodeType":"YulFunctionCall","src":"5254:38:60"},"nodeType":"YulIf","src":"5251:218:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5073:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5082:6:60","type":""}],"src":"5038:437:60"},{"body":{"nodeType":"YulBlock","src":"5654:223:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5671:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5682:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5664:6:60"},"nodeType":"YulFunctionCall","src":"5664:21:60"},"nodeType":"YulExpressionStatement","src":"5664:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5705:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5716:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5701:3:60"},"nodeType":"YulFunctionCall","src":"5701:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5721:2:60","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5694:6:60"},"nodeType":"YulFunctionCall","src":"5694:30:60"},"nodeType":"YulExpressionStatement","src":"5694:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5744:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5755:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5740:3:60"},"nodeType":"YulFunctionCall","src":"5740:18:60"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nodeType":"YulLiteral","src":"5760:34:60","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5733:6:60"},"nodeType":"YulFunctionCall","src":"5733:62:60"},"nodeType":"YulExpressionStatement","src":"5733:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5815:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5826:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5811:3:60"},"nodeType":"YulFunctionCall","src":"5811:18:60"},{"hexValue":"72","kind":"string","nodeType":"YulLiteral","src":"5831:3:60","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5804:6:60"},"nodeType":"YulFunctionCall","src":"5804:31:60"},"nodeType":"YulExpressionStatement","src":"5804:31:60"},{"nodeType":"YulAssignment","src":"5844:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5856:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5867:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5852:3:60"},"nodeType":"YulFunctionCall","src":"5852:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5844:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5631:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5645:4:60","type":""}],"src":"5480:397:60"},{"body":{"nodeType":"YulBlock","src":"6056:251:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6066:6:60"},"nodeType":"YulFunctionCall","src":"6066:21:60"},"nodeType":"YulExpressionStatement","src":"6066:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6107:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6118:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6103:3:60"},"nodeType":"YulFunctionCall","src":"6103:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6123:2:60","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6096:6:60"},"nodeType":"YulFunctionCall","src":"6096:30:60"},"nodeType":"YulExpressionStatement","src":"6096:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6146:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6157:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6142:3:60"},"nodeType":"YulFunctionCall","src":"6142:18:60"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nodeType":"YulLiteral","src":"6162:34:60","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6135:6:60"},"nodeType":"YulFunctionCall","src":"6135:62:60"},"nodeType":"YulExpressionStatement","src":"6135:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6217:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6228:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6213:3:60"},"nodeType":"YulFunctionCall","src":"6213:18:60"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nodeType":"YulLiteral","src":"6233:31:60","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6206:6:60"},"nodeType":"YulFunctionCall","src":"6206:59:60"},"nodeType":"YulExpressionStatement","src":"6206:59:60"},{"nodeType":"YulAssignment","src":"6274:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6286:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6297:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6282:3:60"},"nodeType":"YulFunctionCall","src":"6282:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6274:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6033:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6047:4:60","type":""}],"src":"5882:425:60"},{"body":{"nodeType":"YulBlock","src":"6486:235:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6503:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6514:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6496:6:60"},"nodeType":"YulFunctionCall","src":"6496:21:60"},"nodeType":"YulExpressionStatement","src":"6496:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6537:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6548:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6533:3:60"},"nodeType":"YulFunctionCall","src":"6533:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:60","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6526:6:60"},"nodeType":"YulFunctionCall","src":"6526:30:60"},"nodeType":"YulExpressionStatement","src":"6526:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6576:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6587:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6572:3:60"},"nodeType":"YulFunctionCall","src":"6572:18:60"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nodeType":"YulLiteral","src":"6592:34:60","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6565:6:60"},"nodeType":"YulFunctionCall","src":"6565:62:60"},"nodeType":"YulExpressionStatement","src":"6565:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6647:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6658:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6643:3:60"},"nodeType":"YulFunctionCall","src":"6643:18:60"},{"hexValue":"72206f7220617070726f766564","kind":"string","nodeType":"YulLiteral","src":"6663:15:60","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6636:6:60"},"nodeType":"YulFunctionCall","src":"6636:43:60"},"nodeType":"YulExpressionStatement","src":"6636:43:60"},{"nodeType":"YulAssignment","src":"6688:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6700:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6711:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6696:3:60"},"nodeType":"YulFunctionCall","src":"6696:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6688:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6463:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6477:4:60","type":""}],"src":"6312:409:60"},{"body":{"nodeType":"YulBlock","src":"6900:174:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6917:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6928:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6910:6:60"},"nodeType":"YulFunctionCall","src":"6910:21:60"},"nodeType":"YulExpressionStatement","src":"6910:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6951:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6962:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6947:3:60"},"nodeType":"YulFunctionCall","src":"6947:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6967:2:60","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6940:6:60"},"nodeType":"YulFunctionCall","src":"6940:30:60"},"nodeType":"YulExpressionStatement","src":"6940:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6990:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7001:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6986:3:60"},"nodeType":"YulFunctionCall","src":"6986:18:60"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nodeType":"YulLiteral","src":"7006:26:60","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6979:6:60"},"nodeType":"YulFunctionCall","src":"6979:54:60"},"nodeType":"YulExpressionStatement","src":"6979:54:60"},{"nodeType":"YulAssignment","src":"7042:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7054:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7065:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7050:3:60"},"nodeType":"YulFunctionCall","src":"7050:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7042:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6877:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6891:4:60","type":""}],"src":"6726:348:60"},{"body":{"nodeType":"YulBlock","src":"7253:231:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7270:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7281:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7263:6:60"},"nodeType":"YulFunctionCall","src":"7263:21:60"},"nodeType":"YulExpressionStatement","src":"7263:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7304:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7315:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7300:3:60"},"nodeType":"YulFunctionCall","src":"7300:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7320:2:60","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7293:6:60"},"nodeType":"YulFunctionCall","src":"7293:30:60"},"nodeType":"YulExpressionStatement","src":"7293:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7343:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7354:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7339:3:60"},"nodeType":"YulFunctionCall","src":"7339:18:60"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nodeType":"YulLiteral","src":"7359:34:60","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7332:6:60"},"nodeType":"YulFunctionCall","src":"7332:62:60"},"nodeType":"YulExpressionStatement","src":"7332:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7414:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7425:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7410:3:60"},"nodeType":"YulFunctionCall","src":"7410:18:60"},{"hexValue":"6c6964206f776e6572","kind":"string","nodeType":"YulLiteral","src":"7430:11:60","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7403:6:60"},"nodeType":"YulFunctionCall","src":"7403:39:60"},"nodeType":"YulExpressionStatement","src":"7403:39:60"},{"nodeType":"YulAssignment","src":"7451:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7463:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7474:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7459:3:60"},"nodeType":"YulFunctionCall","src":"7459:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7451:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7230:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7244:4:60","type":""}],"src":"7079:405:60"},{"body":{"nodeType":"YulBlock","src":"7676:283:60","statements":[{"nodeType":"YulVariableDeclaration","src":"7686:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7706:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7700:5:60"},"nodeType":"YulFunctionCall","src":"7700:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7690:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7748:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7756:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7744:3:60"},"nodeType":"YulFunctionCall","src":"7744:17:60"},{"name":"pos","nodeType":"YulIdentifier","src":"7763:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"7768:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7722:21:60"},"nodeType":"YulFunctionCall","src":"7722:53:60"},"nodeType":"YulExpressionStatement","src":"7722:53:60"},{"nodeType":"YulVariableDeclaration","src":"7784:29:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7801:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"7806:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7797:3:60"},"nodeType":"YulFunctionCall","src":"7797:16:60"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"7788:5:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7822:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7844:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7838:5:60"},"nodeType":"YulFunctionCall","src":"7838:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"7826:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7886:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7894:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7882:3:60"},"nodeType":"YulFunctionCall","src":"7882:17:60"},{"name":"end_1","nodeType":"YulIdentifier","src":"7901:5:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"7908:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7860:21:60"},"nodeType":"YulFunctionCall","src":"7860:57:60"},"nodeType":"YulExpressionStatement","src":"7860:57:60"},{"nodeType":"YulAssignment","src":"7926:27:60","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"7937:5:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"7944:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7933:3:60"},"nodeType":"YulFunctionCall","src":"7933:20:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7926:3:60"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7644:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7649:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7657:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7668:3:60","type":""}],"src":"7489:470:60"},{"body":{"nodeType":"YulBlock","src":"8138:227:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8155:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8166:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8148:6:60"},"nodeType":"YulFunctionCall","src":"8148:21:60"},"nodeType":"YulExpressionStatement","src":"8148:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8189:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8200:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8185:3:60"},"nodeType":"YulFunctionCall","src":"8185:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8205:2:60","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8178:6:60"},"nodeType":"YulFunctionCall","src":"8178:30:60"},"nodeType":"YulExpressionStatement","src":"8178:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8228:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8239:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8224:3:60"},"nodeType":"YulFunctionCall","src":"8224:18:60"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nodeType":"YulLiteral","src":"8244:34:60","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8217:6:60"},"nodeType":"YulFunctionCall","src":"8217:62:60"},"nodeType":"YulExpressionStatement","src":"8217:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8299:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8310:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8295:3:60"},"nodeType":"YulFunctionCall","src":"8295:18:60"},{"hexValue":"6f776e6572","kind":"string","nodeType":"YulLiteral","src":"8315:7:60","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8288:6:60"},"nodeType":"YulFunctionCall","src":"8288:35:60"},"nodeType":"YulExpressionStatement","src":"8288:35:60"},{"nodeType":"YulAssignment","src":"8332:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8344:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8355:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8340:3:60"},"nodeType":"YulFunctionCall","src":"8340:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8332:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8115:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8129:4:60","type":""}],"src":"7964:401:60"},{"body":{"nodeType":"YulBlock","src":"8544:226:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8561:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8572:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8554:6:60"},"nodeType":"YulFunctionCall","src":"8554:21:60"},"nodeType":"YulExpressionStatement","src":"8554:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8595:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8606:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8591:3:60"},"nodeType":"YulFunctionCall","src":"8591:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8611:2:60","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8584:6:60"},"nodeType":"YulFunctionCall","src":"8584:30:60"},"nodeType":"YulExpressionStatement","src":"8584:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8634:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8645:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8630:3:60"},"nodeType":"YulFunctionCall","src":"8630:18:60"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"8650:34:60","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8623:6:60"},"nodeType":"YulFunctionCall","src":"8623:62:60"},"nodeType":"YulExpressionStatement","src":"8623:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8705:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8716:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8701:3:60"},"nodeType":"YulFunctionCall","src":"8701:18:60"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"8721:6:60","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8694:6:60"},"nodeType":"YulFunctionCall","src":"8694:34:60"},"nodeType":"YulExpressionStatement","src":"8694:34:60"},{"nodeType":"YulAssignment","src":"8737:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8749:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8760:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8745:3:60"},"nodeType":"YulFunctionCall","src":"8745:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8737:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8521:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8535:4:60","type":""}],"src":"8370:400:60"},{"body":{"nodeType":"YulBlock","src":"8949:175:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8966:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8977:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8959:6:60"},"nodeType":"YulFunctionCall","src":"8959:21:60"},"nodeType":"YulExpressionStatement","src":"8959:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9000:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9011:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8996:3:60"},"nodeType":"YulFunctionCall","src":"8996:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"9016:2:60","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8989:6:60"},"nodeType":"YulFunctionCall","src":"8989:30:60"},"nodeType":"YulExpressionStatement","src":"8989:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9039:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9050:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9035:3:60"},"nodeType":"YulFunctionCall","src":"9035:18:60"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"9055:27:60","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9028:6:60"},"nodeType":"YulFunctionCall","src":"9028:55:60"},"nodeType":"YulExpressionStatement","src":"9028:55:60"},{"nodeType":"YulAssignment","src":"9092:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9104:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9115:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9100:3:60"},"nodeType":"YulFunctionCall","src":"9100:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9092:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8926:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8940:4:60","type":""}],"src":"8775:349:60"},{"body":{"nodeType":"YulBlock","src":"9303:240:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9320:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9331:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9313:6:60"},"nodeType":"YulFunctionCall","src":"9313:21:60"},"nodeType":"YulExpressionStatement","src":"9313:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9354:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9365:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9350:3:60"},"nodeType":"YulFunctionCall","src":"9350:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"9370:2:60","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9343:6:60"},"nodeType":"YulFunctionCall","src":"9343:30:60"},"nodeType":"YulExpressionStatement","src":"9343:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9393:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9404:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9389:3:60"},"nodeType":"YulFunctionCall","src":"9389:18:60"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nodeType":"YulLiteral","src":"9409:34:60","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9382:6:60"},"nodeType":"YulFunctionCall","src":"9382:62:60"},"nodeType":"YulExpressionStatement","src":"9382:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9464:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9475:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9460:3:60"},"nodeType":"YulFunctionCall","src":"9460:18:60"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nodeType":"YulLiteral","src":"9480:20:60","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9453:6:60"},"nodeType":"YulFunctionCall","src":"9453:48:60"},"nodeType":"YulExpressionStatement","src":"9453:48:60"},{"nodeType":"YulAssignment","src":"9510:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9522:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9533:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9518:3:60"},"nodeType":"YulFunctionCall","src":"9518:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9510:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9280:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9294:4:60","type":""}],"src":"9129:414:60"},{"body":{"nodeType":"YulBlock","src":"9580:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9597:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9600:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9590:6:60"},"nodeType":"YulFunctionCall","src":"9590:88:60"},"nodeType":"YulExpressionStatement","src":"9590:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9694:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9697:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9687:6:60"},"nodeType":"YulFunctionCall","src":"9687:15:60"},"nodeType":"YulExpressionStatement","src":"9687:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9718:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9721:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9711:6:60"},"nodeType":"YulFunctionCall","src":"9711:15:60"},"nodeType":"YulExpressionStatement","src":"9711:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"9548:184:60"},{"body":{"nodeType":"YulBlock","src":"9940:309:60","statements":[{"nodeType":"YulVariableDeclaration","src":"9950:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"9960:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9954:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10018:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10033:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10041:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10029:3:60"},"nodeType":"YulFunctionCall","src":"10029:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10011:6:60"},"nodeType":"YulFunctionCall","src":"10011:34:60"},"nodeType":"YulExpressionStatement","src":"10011:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10065:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10076:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10061:3:60"},"nodeType":"YulFunctionCall","src":"10061:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10085:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10093:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10081:3:60"},"nodeType":"YulFunctionCall","src":"10081:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10054:6:60"},"nodeType":"YulFunctionCall","src":"10054:43:60"},"nodeType":"YulExpressionStatement","src":"10054:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10117:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10128:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10113:3:60"},"nodeType":"YulFunctionCall","src":"10113:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"10133:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10106:6:60"},"nodeType":"YulFunctionCall","src":"10106:34:60"},"nodeType":"YulExpressionStatement","src":"10106:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10160:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10171:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10156:3:60"},"nodeType":"YulFunctionCall","src":"10156:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"10176:3:60","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10149:6:60"},"nodeType":"YulFunctionCall","src":"10149:31:60"},"nodeType":"YulExpressionStatement","src":"10149:31:60"},{"nodeType":"YulAssignment","src":"10189:54:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"10215:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10227:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10238:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10223:3:60"},"nodeType":"YulFunctionCall","src":"10223:19:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"10197:17:60"},"nodeType":"YulFunctionCall","src":"10197:46:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10189:4:60"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9885:9:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9896:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9904:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9912:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9920:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9931:4:60","type":""}],"src":"9737:512:60"},{"body":{"nodeType":"YulBlock","src":"10334:169:60","statements":[{"body":{"nodeType":"YulBlock","src":"10380:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10389:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10392:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10382:6:60"},"nodeType":"YulFunctionCall","src":"10382:12:60"},"nodeType":"YulExpressionStatement","src":"10382:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10355:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"10364:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10351:3:60"},"nodeType":"YulFunctionCall","src":"10351:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"10376:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10347:3:60"},"nodeType":"YulFunctionCall","src":"10347:32:60"},"nodeType":"YulIf","src":"10344:52:60"},{"nodeType":"YulVariableDeclaration","src":"10405:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10424:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10418:5:60"},"nodeType":"YulFunctionCall","src":"10418:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10409:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10467:5:60"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"10443:23:60"},"nodeType":"YulFunctionCall","src":"10443:30:60"},"nodeType":"YulExpressionStatement","src":"10443:30:60"},{"nodeType":"YulAssignment","src":"10482:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"10492:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10482:6:60"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10300:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10311:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10323:6:60","type":""}],"src":"10254:249:60"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), 0)\n        value3 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r or approved\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101c3578063b88d4fde146101d6578063c87b56dd146101e9578063e985e9c5146101fc57600080fd5b80636352211e1461018757806370a082311461019a57806395d89b41146101bb57600080fd5b8063095ea7b3116100bd578063095ea7b31461014c57806323b872dd1461016157806342842e0e1461017457600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004611040565b610238565b60405190151581526020015b60405180910390f35b61011461031d565b60405161010391906110b5565b61013461012f3660046110c8565b6103af565b6040516001600160a01b039091168152602001610103565b61015f61015a3660046110fd565b6103d6565b005b61015f61016f366004611127565b61050c565b61015f610182366004611127565b610593565b6101346101953660046110c8565b6105ae565b6101ad6101a8366004611163565b610613565b604051908152602001610103565b6101146106ad565b61015f6101d136600461117e565b6106bc565b61015f6101e43660046111e9565b6106cb565b6101146101f73660046110c8565b610759565b6100f761020a3660046112c5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102cb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061031757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461032c906112f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610358906112f8565b80156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b5050505050905090565b60006103ba826107cd565b506000908152600460205260409020546001600160a01b031690565b60006103e1826105ae565b9050806001600160a01b0316836001600160a01b03160361046f5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b038216148061048b575061048b813361020a565b6104fd5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610466565b6105078383610834565b505050565b61051633826108ba565b6105885760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610466565b610507838383610939565b610507838383604051806020016040528060008152506106cb565b6000818152600260205260408120546001600160a01b0316806103175760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610466565b60006001600160a01b0382166106915760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610466565b506001600160a01b031660009081526003602052604090205490565b60606001805461032c906112f8565b6106c7338383610b7a565b5050565b6106d533836108ba565b6107475760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610466565b61075384848484610c66565b50505050565b6060610764826107cd565b600061077b60408051602081019091526000815290565b9050600081511161079b57604051806020016040528060008152506107c6565b806107a584610cef565b6040516020016107b692919061134b565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166108315760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610466565b50565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091558190610881826105ae565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806108c6836105ae565b9050806001600160a01b0316846001600160a01b0316148061090d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806109315750836001600160a01b0316610926846103af565b6001600160a01b0316145b949350505050565b826001600160a01b031661094c826105ae565b6001600160a01b0316146109c85760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610466565b6001600160a01b038216610a435760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610466565b826001600160a01b0316610a56826105ae565b6001600160a01b031614610ad25760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610466565b600081815260046020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610bdb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610466565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610c71848484610939565b610c7d84848484610d8f565b6107535760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610466565b60606000610cfc83610f30565b600101905060008167ffffffffffffffff811115610d1c57610d1c6111ba565b6040519080825280601f01601f191660200182016040528015610d46576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610d5057509392505050565b60006001600160a01b0384163b15610f25576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a0290610dec90339089908890889060040161137a565b6020604051808303816000875af1925050508015610e27575060408051601f3d908101601f19168201909252610e24918101906113b6565b60015b610eda573d808015610e55576040519150601f19603f3d011682016040523d82523d6000602084013e610e5a565b606091505b508051600003610ed25760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610466565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610931565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610f79577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610fa5576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fc357662386f26fc10000830492506010015b6305f5e1008310610fdb576305f5e100830492506008015b6127108310610fef57612710830492506004015b60648310611001576064830492506002015b600a83106103175760010192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461083157600080fd5b60006020828403121561105257600080fd5b81356107c681611012565b60005b83811015611078578181015183820152602001611060565b838111156107535750506000910152565b600081518084526110a181602086016020860161105d565b601f01601f19169290920160200192915050565b6020815260006107c66020830184611089565b6000602082840312156110da57600080fd5b5035919050565b80356001600160a01b03811681146110f857600080fd5b919050565b6000806040838503121561111057600080fd5b611119836110e1565b946020939093013593505050565b60008060006060848603121561113c57600080fd5b611145846110e1565b9250611153602085016110e1565b9150604084013590509250925092565b60006020828403121561117557600080fd5b6107c6826110e1565b6000806040838503121561119157600080fd5b61119a836110e1565b9150602083013580151581146111af57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156111ff57600080fd5b611208856110e1565b9350611216602086016110e1565b925060408501359150606085013567ffffffffffffffff8082111561123a57600080fd5b818701915087601f83011261124e57600080fd5b813581811115611260576112606111ba565b604051601f8201601f19908116603f01168101908382118183101715611288576112886111ba565b816040528281528a60208487010111156112a157600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156112d857600080fd5b6112e1836110e1565b91506112ef602084016110e1565b90509250929050565b600181811c9082168061130c57607f821691505b602082108103611345577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000835161135d81846020880161105d565b83519083019061137181836020880161105d565b01949350505050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526113ac6080830184611089565b9695505050505050565b6000602082840312156113c857600080fd5b81516107c68161101256fea26469706673582212208c02660deabc26483c0725e09605e1c47600d76ed2d887b73070b2b36bbc8a4e64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x19A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1040 JUMP JUMPDEST PUSH2 0x238 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x31D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x10B5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x15F PUSH2 0x15A CALLDATASIZE PUSH1 0x4 PUSH2 0x10FD JUMP JUMPDEST PUSH2 0x3D6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15F PUSH2 0x16F CALLDATASIZE PUSH1 0x4 PUSH2 0x1127 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x15F PUSH2 0x182 CALLDATASIZE PUSH1 0x4 PUSH2 0x1127 JUMP JUMPDEST PUSH2 0x593 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x5AE JUMP JUMPDEST PUSH2 0x1AD PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1163 JUMP JUMPDEST PUSH2 0x613 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x6AD JUMP JUMPDEST PUSH2 0x15F PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x117E JUMP JUMPDEST PUSH2 0x6BC JUMP JUMPDEST PUSH2 0x15F PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x11E9 JUMP JUMPDEST PUSH2 0x6CB JUMP JUMPDEST PUSH2 0x114 PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x10C8 JUMP JUMPDEST PUSH2 0x759 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x20A CALLDATASIZE PUSH1 0x4 PUSH2 0x12C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x2CB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x317 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x32C SWAP1 PUSH2 0x12F8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x358 SWAP1 PUSH2 0x12F8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3A5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x37A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3A5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x388 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BA DUP3 PUSH2 0x7CD JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E1 DUP3 PUSH2 0x5AE JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x48B JUMPI POP PUSH2 0x48B DUP2 CALLER PUSH2 0x20A JUMP JUMPDEST PUSH2 0x4FD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH2 0x507 DUP4 DUP4 PUSH2 0x834 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x516 CALLER DUP3 PUSH2 0x8BA JUMP JUMPDEST PUSH2 0x588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH2 0x507 DUP4 DUP4 DUP4 PUSH2 0x939 JUMP JUMPDEST PUSH2 0x507 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x6CB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x317 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x691 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x32C SWAP1 PUSH2 0x12F8 JUMP JUMPDEST PUSH2 0x6C7 CALLER DUP4 DUP4 PUSH2 0xB7A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x6D5 CALLER DUP4 PUSH2 0x8BA JUMP JUMPDEST PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH2 0x753 DUP5 DUP5 DUP5 DUP5 PUSH2 0xC66 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x764 DUP3 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x77B PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x79B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7C6 JUMP JUMPDEST DUP1 PUSH2 0x7A5 DUP5 PUSH2 0xCEF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7B6 SWAP3 SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x831 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x466 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x881 DUP3 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8C6 DUP4 PUSH2 0x5AE JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x90D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x931 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x926 DUP5 PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x94C DUP3 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA56 DUP3 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAD2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x3 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x2 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xBDB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xC71 DUP5 DUP5 DUP5 PUSH2 0x939 JUMP JUMPDEST PUSH2 0xC7D DUP5 DUP5 DUP5 DUP5 PUSH2 0xD8F JUMP JUMPDEST PUSH2 0x753 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xCFC DUP4 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD1C JUMPI PUSH2 0xD1C PUSH2 0x11BA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD46 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xD50 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xF25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xDEC SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x137A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xE27 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xE24 SWAP2 DUP2 ADD SWAP1 PUSH2 0x13B6 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xEDA JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xE55 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xE5A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xED2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x466 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0x931 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0xF79 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xFA5 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xFC3 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xFDB JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xFEF JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1001 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x317 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1052 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7C6 DUP2 PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1078 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1060 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x753 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x10A1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x105D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x7C6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1089 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1119 DUP4 PUSH2 0x10E1 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x113C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1145 DUP5 PUSH2 0x10E1 JUMP JUMPDEST SWAP3 POP PUSH2 0x1153 PUSH1 0x20 DUP6 ADD PUSH2 0x10E1 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7C6 DUP3 PUSH2 0x10E1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1191 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x119A DUP4 PUSH2 0x10E1 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x11AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x11FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1208 DUP6 PUSH2 0x10E1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1216 PUSH1 0x20 DUP7 ADD PUSH2 0x10E1 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x123A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x124E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1260 JUMPI PUSH2 0x1260 PUSH2 0x11BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1288 JUMPI PUSH2 0x1288 PUSH2 0x11BA JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x12A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E1 DUP4 PUSH2 0x10E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x12EF PUSH1 0x20 DUP5 ADD PUSH2 0x10E1 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x130C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1345 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x135D DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x105D JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1371 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x105D JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x13AC PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1089 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7C6 DUP2 PUSH2 0x1012 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 MUL PUSH7 0xDEABC26483C07 0x25 0xE0 SWAP7 SDIV 0xE1 0xC4 PUSH23 0xD76ED2D887B73070B2B36BBC8A4E64736F6C63430008 0xF STOP CALLER ","sourceMap":"628:16679:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;:::i;:::-;;:::i;:::-;;;611:14:60;;604:22;586:41;;574:2;559:18;1570:300:16;;;;;;;;2471:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1797:55:60;;;1779:74;;1767:2;1752:18;3935:167:16;1633:226:60;3468:406:16;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;:::i;:::-;;:::i;5004:179::-;;;;;;:::i;:::-;;:::i;2190:219::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2994:25:60;;;2982:2;2967:18;1929:204:16;2848:177:60;2633:102:16;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5249:314::-;;;;;;:::i;:::-;;:::i;2801:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:16;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;1570:300;1672:4;1707:40;;;1722:25;1707:40;;:104;;-1:-1:-1;1763:48:16;;;1778:33;1763:48;1707:104;:156;;;-1:-1:-1;952:25:30;937:40;;;;1827:36:16;1688:175;1570:300;-1:-1:-1;;1570:300:16:o;2471:98::-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:16;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:16;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:16;:2;-1:-1:-1;;;;;3605:11:16;;3597:57;;;;-1:-1:-1;;;3597:57:16;;5682:2:60;3597:57:16;;;5664:21:60;5721:2;5701:18;;;5694:30;5760:34;5740:18;;;5733:62;5831:3;5811:18;;;5804:31;5852:19;;3597:57:16;;;;;;;;;719:10:24;-1:-1:-1;;;;;3686:21:16;;;;:62;;-1:-1:-1;3711:37:16;3728:5;719:10:24;4388:162:16;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:16;;6084:2:60;3665:170:16;;;6066:21:60;6123:2;6103:18;;;6096:30;6162:34;6142:18;;;6135:62;6233:31;6213:18;;;6206:59;6282:19;;3665:170:16;5882:425:60;3665:170:16;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;719:10:24;4834:7:16;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:16;;6514:2:60;4793:99:16;;;6496:21:60;6553:2;6533:18;;;6526:30;6592:34;6572:18;;;6565:62;6663:15;6643:18;;;6636:43;6696:19;;4793:99:16;6312:409:60;4793:99:16;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;5004:179::-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;2190:219::-;2262:7;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:16;;2324:56;;;;-1:-1:-1;;;2324:56:16;;6928:2:60;2324:56:16;;;6910:21:60;6967:2;6947:18;;;6940:30;7006:26;6986:18;;;6979:54;7050:18;;2324:56:16;6726:348:60;1929:204:16;2001:7;-1:-1:-1;;;;;2028:19:16;;2020:73;;;;-1:-1:-1;;;2020:73:16;;7281:2:60;2020:73:16;;;7263:21:60;7320:2;7300:18;;;7293:30;7359:34;7339:18;;;7332:62;7430:11;7410:18;;;7403:39;7459:19;;2020:73:16;7079:405:60;2020:73:16;-1:-1:-1;;;;;;2110:16:16;;;;;:9;:16;;;;;;;1929:204::o;2633:102::-;2689:13;2721:7;2714:14;;;;;:::i;4169:153::-;4263:52;719:10:24;4296:8:16;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;719:10:24;5450:7:16;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:16;;6514:2:60;5409:99:16;;;6496:21:60;6553:2;6533:18;;;6526:30;6592:34;6572:18;;;6565:62;6663:15;6643:18;;;6636:43;6696:19;;5409:99:16;6312:409:60;5409:99:16;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;3395:9;;;;;;;;;-1:-1:-1;3395:9:16;;;3319:92;2957:10;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;2801:276;-1:-1:-1;;;2801:276:16:o;13466:133::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:16;13539:53;;;;-1:-1:-1;;;13539:53:16;;6928:2:60;13539:53:16;;;6910:21:60;6967:2;6947:18;;;6940:30;7006:26;6986:18;;;6979:54;7050:18;;13539:53:16;6726:348:60;13539:53:16;13466:133;:::o;12768:171::-;12842:24;;;;:15;:24;;;;;:29;;;;-1:-1:-1;;;;;12842:29:16;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:16;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;-1:-1:-1;;;;;7706:16:16;:7;-1:-1:-1;;;;;7706:16:16;;:52;;;-1:-1:-1;;;;;;4508:25:16;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7726:32;7706:87;;;;7786:7;-1:-1:-1;;;;;7762:31:16;:20;7774:7;7762:11;:20::i;:::-;-1:-1:-1;;;;;7762:31:16;;7706:87;7698:96;7540:261;-1:-1:-1;;;;7540:261:16:o;11423:1233::-;11577:4;-1:-1:-1;;;;;11550:31:16;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:16;;11542:81;;;;-1:-1:-1;;;11542:81:16;;8166:2:60;11542:81:16;;;8148:21:60;8205:2;8185:18;;;8178:30;8244:34;8224:18;;;8217:62;8315:7;8295:18;;;8288:35;8340:19;;11542:81:16;7964:401:60;11542:81:16;-1:-1:-1;;;;;11641:16:16;;11633:65;;;;-1:-1:-1;;;11633:65:16;;8572:2:60;11633:65:16;;;8554:21:60;8611:2;8591:18;;;8584:30;8650:34;8630:18;;;8623:62;8721:6;8701:18;;;8694:34;8745:19;;11633:65:16;8370:400:60;11633:65:16;11878:4;-1:-1:-1;;;;;11851:31:16;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:16;;11843:81;;;;-1:-1:-1;;;11843:81:16;;8166:2:60;11843:81:16;;;8148:21:60;8205:2;8185:18;;;8178:30;8244:34;8224:18;;;8217:62;8315:7;8295:18;;;8288:35;8340:19;;11843:81:16;7964:401:60;11843:81:16;11993:24;;;;:15;:24;;;;;;;;11986:31;;;;;;;;;-1:-1:-1;;;;;12461:15:16;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:16;;;12495:13;;;;;;;;;:18;;11986:31;12495:18;;;12533:16;;;:7;:16;;;;;;:21;;;;;;;;;;12570:27;;12009:7;;12570:27;;;3538:336;3468:406;;:::o;13075:307::-;13225:8;-1:-1:-1;;;;;13216:17:16;:5;-1:-1:-1;;;;;13216:17:16;;13208:55;;;;-1:-1:-1;;;13208:55:16;;8977:2:60;13208:55:16;;;8959:21:60;9016:2;8996:18;;;8989:30;9055:27;9035:18;;;9028:55;9100:18;;13208:55:16;8775:349:60;13208:55:16;-1:-1:-1;;;;;13273:25:16;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;;;;;;;;;;;;13334:41;;586::60;;;13334::16;;559:18:60;13334:41:16;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;-1:-1:-1;;;6612:110:16;;9331:2:60;6612:110:16;;;9313:21:60;9370:2;9350:18;;;9343:30;9409:34;9389:18;;;9382:62;9480:20;9460:18;;;9453:48;9518:19;;6612:110:16;9129:414:60;415:696:26;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:26;-1:-1:-1;572:41:26;-1:-1:-1;733:28:26;;;749:2;733:28;788:280;-1:-1:-1;;819:5:26;958:8;953:2;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:26;788:280;1032:21;-1:-1:-1;1088:6:26;415:696;-1:-1:-1;;;415:696:26:o;14151:831:16:-;14300:4;-1:-1:-1;;;;;14320:13:16;;1465:19:22;:23;14316:660:16;;14355:71;;;;;-1:-1:-1;;;;;14355:36:16;;;;;:71;;719:10:24;;14406:4:16;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:16;;;;;;;;-1:-1:-1;;14355:71:16;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:16;;9331:2:60;14635:60:16;;;9313:21:60;9370:2;9350:18;;;9343:30;9409:34;9389:18;;;9382:62;9480:20;9460:18;;;9453:48;9518:19;;14635:60:16;9129:414:60;14589:321:16;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;14476:51;;14486:41;14476:51;;-1:-1:-1;14469:58:16;;14316:660;-1:-1:-1;14961:4:16;14151:831;;;;;;:::o;9889:890:32:-;9942:7;;10026:6;10017:15;;10013:99;;10061:6;10052:15;;;-1:-1:-1;10095:2:32;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:32;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:32;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:32;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:32;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:32;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:32:o;14:177:60:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;638:258::-;710:1;720:113;734:6;731:1;728:13;720:113;;;810:11;;;804:18;791:11;;;784:39;756:2;749:10;720:113;;;851:6;848:1;845:13;842:48;;;-1:-1:-1;;886:1:60;868:16;;861:27;638:258::o;901:317::-;943:3;981:5;975:12;1008:6;1003:3;996:19;1024:63;1080:6;1073:4;1068:3;1064:14;1057:4;1050:5;1046:16;1024:63;:::i;:::-;1132:2;1120:15;-1:-1:-1;;1116:88:60;1107:98;;;;1207:4;1103:109;;901:317;-1:-1:-1;;901:317:60:o;1223:220::-;1372:2;1361:9;1354:21;1335:4;1392:45;1433:2;1422:9;1418:18;1410:6;1392:45;:::i;1448:180::-;1507:6;1560:2;1548:9;1539:7;1535:23;1531:32;1528:52;;;1576:1;1573;1566:12;1528:52;-1:-1:-1;1599:23:60;;1448:180;-1:-1:-1;1448:180:60:o;1864:196::-;1932:20;;-1:-1:-1;;;;;1981:54:60;;1971:65;;1961:93;;2050:1;2047;2040:12;1961:93;1864:196;;;:::o;2065:254::-;2133:6;2141;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;2233:29;2252:9;2233:29;:::i;:::-;2223:39;2309:2;2294:18;;;;2281:32;;-1:-1:-1;;;2065:254:60:o;2324:328::-;2401:6;2409;2417;2470:2;2458:9;2449:7;2445:23;2441:32;2438:52;;;2486:1;2483;2476:12;2438:52;2509:29;2528:9;2509:29;:::i;:::-;2499:39;;2557:38;2591:2;2580:9;2576:18;2557:38;:::i;:::-;2547:48;;2642:2;2631:9;2627:18;2614:32;2604:42;;2324:328;;;;;:::o;2657:186::-;2716:6;2769:2;2757:9;2748:7;2744:23;2740:32;2737:52;;;2785:1;2782;2775:12;2737:52;2808:29;2827:9;2808:29;:::i;3030:347::-;3095:6;3103;3156:2;3144:9;3135:7;3131:23;3127:32;3124:52;;;3172:1;3169;3162:12;3124:52;3195:29;3214:9;3195:29;:::i;:::-;3185:39;;3274:2;3263:9;3259:18;3246:32;3321:5;3314:13;3307:21;3300:5;3297:32;3287:60;;3343:1;3340;3333:12;3287:60;3366:5;3356:15;;;3030:347;;;;;:::o;3382:184::-;3434:77;3431:1;3424:88;3531:4;3528:1;3521:15;3555:4;3552:1;3545:15;3571:1197;3666:6;3674;3682;3690;3743:3;3731:9;3722:7;3718:23;3714:33;3711:53;;;3760:1;3757;3750:12;3711:53;3783:29;3802:9;3783:29;:::i;:::-;3773:39;;3831:38;3865:2;3854:9;3850:18;3831:38;:::i;:::-;3821:48;;3916:2;3905:9;3901:18;3888:32;3878:42;;3971:2;3960:9;3956:18;3943:32;3994:18;4035:2;4027:6;4024:14;4021:34;;;4051:1;4048;4041:12;4021:34;4089:6;4078:9;4074:22;4064:32;;4134:7;4127:4;4123:2;4119:13;4115:27;4105:55;;4156:1;4153;4146:12;4105:55;4192:2;4179:16;4214:2;4210;4207:10;4204:36;;;4220:18;;:::i;:::-;4354:2;4348:9;4416:4;4408:13;;-1:-1:-1;;4404:22:60;;;4428:2;4400:31;4396:40;4384:53;;;4452:18;;;4472:22;;;4449:46;4446:72;;;4498:18;;:::i;:::-;4538:10;4534:2;4527:22;4573:2;4565:6;4558:18;4613:7;4608:2;4603;4599;4595:11;4591:20;4588:33;4585:53;;;4634:1;4631;4624:12;4585:53;4690:2;4685;4681;4677:11;4672:2;4664:6;4660:15;4647:46;4735:1;4730:2;4725;4717:6;4713:15;4709:24;4702:35;4756:6;4746:16;;;;;;;3571:1197;;;;;;;:::o;4773:260::-;4841:6;4849;4902:2;4890:9;4881:7;4877:23;4873:32;4870:52;;;4918:1;4915;4908:12;4870:52;4941:29;4960:9;4941:29;:::i;:::-;4931:39;;4989:38;5023:2;5012:9;5008:18;4989:38;:::i;:::-;4979:48;;4773:260;;;;;:::o;5038:437::-;5117:1;5113:12;;;;5160;;;5181:61;;5235:4;5227:6;5223:17;5213:27;;5181:61;5288:2;5280:6;5277:14;5257:18;5254:38;5251:218;;5325:77;5322:1;5315:88;5426:4;5423:1;5416:15;5454:4;5451:1;5444:15;5251:218;;5038:437;;;:::o;7489:470::-;7668:3;7706:6;7700:13;7722:53;7768:6;7763:3;7756:4;7748:6;7744:17;7722:53;:::i;:::-;7838:13;;7797:16;;;;7860:57;7838:13;7797:16;7894:4;7882:17;;7860:57;:::i;:::-;7933:20;;7489:470;-1:-1:-1;;;;7489:470:60:o;9737:512::-;9931:4;-1:-1:-1;;;;;10041:2:60;10033:6;10029:15;10018:9;10011:34;10093:2;10085:6;10081:15;10076:2;10065:9;10061:18;10054:43;;10133:6;10128:2;10117:9;10113:18;10106:34;10176:3;10171:2;10160:9;10156:18;10149:31;10197:46;10238:3;10227:9;10223:19;10215:6;10197:46;:::i;:::-;10189:54;9737:512;-1:-1:-1;;;;;;9737:512:60:o;10254:249::-;10323:6;10376:2;10364:9;10355:7;10351:23;10347:32;10344:52;;;10392:1;10389;10382:12;10344:52;10424:9;10418:16;10443:30;10467:5;10443:30;:::i"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"ERC721Enumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This implements an optional extension of {ERC721} defined in the EIP that adds enumerability of all the token ids in the contract as well as all token ids owned by each account.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":\"ERC721Enumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0xa8796bd16014cefb8c26449413981a49c510f92a98d6828494f5fd046223ced3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a5e0bb5a7d182e0d0eef87033f78115eab791de3626a929bc98c157087880a\",\"dweb:/ipfs/QmetkXAu2CJKS4qrZtEQPU8okAPwUwa6HL4XYwk8vrYMk8\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"IERC721Enumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b8f535f2a7fad89b1a103e53e1f95577c3031e2186c4fbf9195d3135f21607b064736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 CREATE2 CALLDATALOAD CALLCODE 0xA7 STATICCALL 0xD8 SWAP12 BYTE LT RETURNDATACOPY MSTORE8 0xE1 0xF9 SSTORE PUSH24 0xC3031E2186C4FBF9195D3135F21607B064736F6C63430008 0xF STOP CALLER ","sourceMap":"194:8964:22:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8964:22;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b8f535f2a7fad89b1a103e53e1f95577c3031e2186c4fbf9195d3135f21607b064736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 CREATE2 CALLDATALOAD CALLCODE 0xA7 STATICCALL 0xD8 SWAP12 BYTE LT RETURNDATACOPY MSTORE8 0xE1 0xF9 SSTORE PUSH24 0xC3031E2186C4FBF9195D3135F21607B064736F6C63430008 0xF STOP CALLER ","sourceMap":"194:8964:22:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Base64.sol":{"Base64":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122066510587920c753da0265a490eca81fab692ea1f1066a7971e1137609033737564736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x510587920C753D LOG0 0x26 GAS 0x49 0xE 0xCA DUP2 STATICCALL 0xB6 SWAP3 0xEA 0x1F LT PUSH7 0xA7971E11376090 CALLER PUSH20 0x7564736F6C634300080F00330000000000000000 ","sourceMap":"231:3302:23:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;231:3302:23;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122066510587920c753da0265a490eca81fab692ea1f1066a7971e1137609033737564736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x510587920C753D LOG0 0x26 GAS 0x49 0xE 0xCA DUP2 STATICCALL 0xB6 SWAP3 0xEA 0x1F LT PUSH7 0xA7971E11376090 CALLER PUSH20 0x7564736F6C634300080F00330000000000000000 ","sourceMap":"231:3302:23:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides a set of functions to operate with Base64 strings. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_TABLE\":{\"details\":\"Base64 Encoding/Decoding Table\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Base64.sol\":\"Base64\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96\",\"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ\"]}},\"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.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Counters.sol":{"Counters":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206b5f4a7aba531976ed5caa885c3dd85a6efd05b6e065f126343ff959a74d783864736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x5F4A7ABA531976ED5CAA885C RETURNDATASIZE 0xD8 GAS PUSH15 0xFD05B6E065F126343FF959A74D7838 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"424:971:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:25;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206b5f4a7aba531976ed5caa885c3dd85a6efd05b6e065f126343ff959a74d783864736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x5F4A7ABA531976ED5CAA885C RETURNDATASIZE 0xD8 GAS PUSH15 0xFD05B6E065F126343FF959A74D7838 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"424:971:25:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d160ef56bc7745466ca5dbcf79a38cd81c21be0f78c769455970b41808a89ae864736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 PUSH1 0xEF JUMP 0xBC PUSH24 0x45466CA5DBCF79A38CD81C21BE0F78C769455970B41808A8 SWAP11 0xE8 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"188:2065:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;188:2065:26;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d160ef56bc7745466ca5dbcf79a38cd81c21be0f78c769455970b41808a89ae864736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 PUSH1 0xEF JUMP 0xBC PUSH24 0x45466CA5DBCF79A38CD81C21BE0F78C769455970B41808A8 SWAP11 0xE8 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"188:2065:26:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122093a8feec289c2c488b49c5c653686de25a06247b5fefaf91e829443bbb41c76164736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 0xA8 INVALID 0xEC 0x28 SWAP13 0x2C BASEFEE DUP12 0x49 0xC5 0xC6 MSTORE8 PUSH9 0x6DE25A06247B5FEFAF SWAP2 0xE8 0x29 DIFFICULTY EXTCODESIZE 0xBB COINBASE 0xC7 PUSH2 0x6473 PUSH16 0x6C634300080F00330000000000000000 ","sourceMap":"369:8168:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:8168:27;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122093a8feec289c2c488b49c5c653686de25a06247b5fefaf91e829443bbb41c76164736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 0xA8 INVALID 0xEC 0x28 SWAP13 0x2C BASEFEE DUP12 0x49 0xC5 0xC6 MSTORE8 PUSH9 0x6DE25A06247B5FEFAF SWAP2 0xE8 0x29 DIFFICULTY EXTCODESIZE 0xBB COINBASE 0xC7 PUSH2 0x6473 PUSH16 0x6C634300080F00330000000000000000 ","sourceMap":"369:8168:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"EIP712":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. _Available since v3.4._\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":\"EIP712\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x948d8b2d18f38141ec78c5229d770d950ebc781ed3f44cc9e3ccbb9fded5846a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7311ac950ed2d81f3ccf1784a926efbfc82a86dcb5c98d41eb3792c0cac63a2f\",\"dweb:/ipfs/QmRRwCUHewkPmehx8QRYENFoWyLNx8UEZGULxWYUeSZdTS\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol":{"MerkleProof":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032bc9de62348fced70e139b8eac455cf31565abfad4d7ce1b9a261d5b8f3130864736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xBC SWAP14 0xE6 0x23 BASEFEE 0xFC 0xED PUSH17 0xE139B8EAC455CF31565ABFAD4D7CE1B9A2 PUSH2 0xD5B8 RETURN SGT ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"802:8493:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;802:8493:29;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122032bc9de62348fced70e139b8eac455cf31565abfad4d7ce1b9a261d5b8f3130864736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xBC SWAP14 0xE6 0x23 BASEFEE 0xFC 0xED PUSH17 0xE139B8EAC455CF31565ABFAD4D7CE1B9A2 PUSH2 0xD5B8 RETURN SGT ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"802:8493:29:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"These functions deal with verification of Merkle Tree proofs. The tree and the proofs can be generated using our https://github.com/OpenZeppelin/merkle-tree[JavaScript library]. You will find a quickstart guide in the readme. WARNING: You should avoid using leaf values that are 64 bytes long prior to hashing, or use a hash function other than keccak256 for hashing leaves. This is because the concatenation of a sorted pair of internal nodes in the merkle tree could be reinterpreted as a leaf value. OpenZeppelin's JavaScript library generates merkle trees that are safe against this attack out of the box.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":\"MerkleProof\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xd466e8b07f4c6220eac16da5127f3ff142e65f0c15c03c7d38f257b02c8585e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6b3cab69f655e40117bbdd8e68d7423f26d1b24248fb189c295f08de8940616\",\"dweb:/ipfs/QmWoyRthsBDMa7gJpH5UCjpa8uNUQfyaGbSgY3uvhBH9F3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2c1d8661f8a75257b0f06761dec2c8afc496371105a9b4353562648b653811b64736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0xC1 0xD8 PUSH7 0x1F8A75257B0F06 PUSH23 0x1DEC2C8AFC496371105A9B4353562648B653811B64736F PUSH13 0x634300080F0033000000000000 ","sourceMap":"202:12302:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12302:32;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2c1d8661f8a75257b0f06761dec2c8afc496371105a9b4353562648b653811b64736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0xC1 0xD8 PUSH7 0x1F8A75257B0F06 PUSH23 0x1DEC2C8AFC496371105A9B4353562648B653811B64736F PUSH13 0x634300080F0033000000000000 ","sourceMap":"202:12302:32:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c42542b2f3a18a0a77277e378da600932f97729d2a5266a35f03d2025e49a9f564736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC4 0x25 TIMESTAMP 0xB2 RETURN LOG1 DUP11 EXP PUSH24 0x277E378DA600932F97729D2A5266A35F03D2025E49A9F564 PUSH20 0x6F6C634300080F00330000000000000000000000 ","sourceMap":"927:34153:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;927:34153:33;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c42542b2f3a18a0a77277e378da600932f97729d2a5266a35f03d2025e49a9f564736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC4 0x25 TIMESTAMP 0xB2 RETURN LOG1 DUP11 EXP PUSH24 0x277E378DA600932F97729D2A5266A35F03D2025E49A9F564 PUSH20 0x6F6C634300080F00330000000000000000000000 ","sourceMap":"927:34153:33:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always. Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing all math on `uint256` and `int256` and then downcasting.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c27d00d2ea5a5363f49007411db554d4499f852e9dc4947b9c844c450e35f94464736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC2 PUSH30 0xD2EA5A5363F49007411DB554D4499F852E9DC4947B9C844C450E35F944 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"1321:11630:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1321:11630:34;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c27d00d2ea5a5363f49007411db554d4499f852e9dc4947b9c844c450e35f94464736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC2 PUSH30 0xD2EA5A5363F49007411DB554D4499F852E9DC4947B9C844C450E35F944 PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"1321:11630:34:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableSet for EnumerableSet.AddressSet;     // Declare a set state variable     EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]}},\"version\":1}"}},"@rari-capital/solmate/src/tokens/ERC20.sol":{"ERC20":{"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":"amount","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\",\"details\":\"Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Modern and gas efficient ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@rari-capital/solmate/src/tokens/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]}},\"version\":1}"}},"@rari-capital/solmate/src/utils/SafeTransferLib.sol":{"SafeTransferLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122092e34eece668ad7fa0a85d625f345d11fbfc7f5b4a6ea77232cb6f97af97552d64736f6c634300080f0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xE3 0x4E 0xEC 0xE6 PUSH9 0xAD7FA0A85D625F345D GT 0xFB 0xFC PUSH32 0x5B4A6EA77232CB6F97AF97552D64736F6C634300080F00330000000000000000 ","sourceMap":"583:5196:36:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;583:5196:36;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122092e34eece668ad7fa0a85d625f345d11fbfc7f5b4a6ea77232cb6f97af97552d64736f6c634300080f0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xE3 0x4E 0xEC 0xE6 PUSH9 0xAD7FA0A85D625F345D GT 0xFB 0xFC PUSH32 0x5B4A6EA77232CB6F97AF97552D64736F6C634300080F00330000000000000000 ","sourceMap":"583:5196:36:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)\",\"details\":\"Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Safe ETH and ERC20 transfer library that gracefully handles missing return values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@rari-capital/solmate/src/utils/SafeTransferLib.sol\":\"SafeTransferLib\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]},\"@rari-capital/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xa28a1515702793c6b56b97272f75e05890fd82aa2e7ec47b41d4d56a81023f69\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7bb0229ba04ab021f31ecb002c162fe1db2e2cf36c76c403801013dda8bd1124\",\"dweb:/ipfs/QmPRLj9LkGGxNuXf66srwNSrYpcbnzH1JtrpMFukTEnoEx\"]}},\"version\":1}"}},"contracts/governance/GovernorPango.sol":{"GovernorPango":{"abi":[{"inputs":[{"internalType":"address","name":"_TIMELOCK","type":"address"},{"internalType":"address","name":"_PANGOLIN_STAKING_POSITIONS","type":"address"},{"internalType":"uint96","name":"_PROPOSAL_THRESHOLD","type":"uint96"},{"internalType":"uint96","name":"_PROPOSAL_THRESHOLD_MIN","type":"uint96"},{"internalType":"uint96","name":"_PROPOSAL_THRESHOLD_MAX","type":"uint96"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IllegalVote","type":"error"},{"inputs":[],"name":"InsufficientVotes","type":"error"},{"inputs":[],"name":"InvalidAction","type":"error"},{"inputs":[],"name":"InvalidNFT","type":"error"},{"inputs":[],"name":"InvalidOwner","type":"error"},{"inputs":[],"name":"InvalidState","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"proposalId","type":"uint64"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"proposalId","type":"uint64"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint40","name":"startTime","type":"uint40"},{"indexed":false,"internalType":"uint40","name":"endTime","type":"uint40"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"proposalId","type":"uint64"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"proposalId","type":"uint64"},{"indexed":false,"internalType":"uint40","name":"eta","type":"uint40"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint96","name":"newProposalThreshold","type":"uint96"}],"name":"ProposalThresholdChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"proposalId","type":"uint64"},{"indexed":false,"internalType":"bool","name":"support","type":"bool"},{"indexed":false,"internalType":"uint96","name":"votes","type":"uint96"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint40","name":"newVotingDelay","type":"uint40"}],"name":"VotingDelayChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint40","name":"newVotingPeriod","type":"uint40"}],"name":"VotingPeriodChanged","type":"event"},{"inputs":[],"name":"PANGOLIN_STAKING_POSITIONS","outputs":[{"internalType":"contract IPangolinStakingPositions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_THRESHOLD","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_THRESHOLD_MAX","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_THRESHOLD_MIN","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK","outputs":[{"internalType":"contract ITimelock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTING_DELAY","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTING_PERIOD","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"__acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint96","name":"newProposalThreshold","type":"uint96"}],"name":"__setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint40","name":"newVotingDelay","type":"uint40"}],"name":"__setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint40","name":"newVotingPeriod","type":"uint40"}],"name":"__setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"proposalId","type":"uint64"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"proposalId","type":"uint64"},{"internalType":"bool","name":"support","type":"bool"},{"internalType":"uint256","name":"nftId","type":"uint256"}],"name":"castVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"proposalId","type":"uint64"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint64","name":"proposalId","type":"uint64"}],"name":"getActions","outputs":[{"components":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"}],"internalType":"struct GovernorPango.ProposalAction","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalTimeout","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"name":"proposals","outputs":[{"internalType":"uint256","name":"proposer","type":"uint256"},{"internalType":"uint96","name":"forVotes","type":"uint96"},{"internalType":"uint96","name":"againstVotes","type":"uint96"},{"internalType":"uint40","name":"startTime","type":"uint40"},{"internalType":"uint40","name":"endTime","type":"uint40"},{"internalType":"uint40","name":"eta","type":"uint40"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"canceled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"nftId","type":"uint256"}],"name":"propose","outputs":[{"internalType":"uint64","name":"proposalId","type":"uint64"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"proposalId","type":"uint64"}],"name":"queue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"receipts","outputs":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"bool","name":"support","type":"bool"},{"internalType":"uint96","name":"votes","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"proposalId","type":"uint64"}],"name":"state","outputs":[{"internalType":"enum GovernorPango.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_9723":{"entryPoint":null,"id":9723,"parameterSlots":5,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":316,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint96t_uint96t_uint96_fromMemory":{"entryPoint":369,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint96_fromMemory":{"entryPoint":345,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:922:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:60","statements":[{"nodeType":"YulAssignment","src":"84:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:60"},"nodeType":"YulFunctionCall","src":"93:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:60"}]},{"body":{"nodeType":"YulBlock","src":"169:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:60"},"nodeType":"YulFunctionCall","src":"171:12:60"},"nodeType":"YulExpressionStatement","src":"171:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:60"},"nodeType":"YulFunctionCall","src":"150:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:60"},"nodeType":"YulFunctionCall","src":"146:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:60"},"nodeType":"YulFunctionCall","src":"135:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:60"},"nodeType":"YulFunctionCall","src":"125:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:60"},"nodeType":"YulFunctionCall","src":"118:50:60"},"nodeType":"YulIf","src":"115:70:60"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"255:116:60","statements":[{"nodeType":"YulAssignment","src":"265:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"280:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"274:5:60"},"nodeType":"YulFunctionCall","src":"274:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"265:5:60"}]},{"body":{"nodeType":"YulBlock","src":"349:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"358:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"361:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"351:6:60"},"nodeType":"YulFunctionCall","src":"351:12:60"},"nodeType":"YulExpressionStatement","src":"351:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"309:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"320:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"335:2:60","type":"","value":"96"},{"kind":"number","nodeType":"YulLiteral","src":"339:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"331:3:60"},"nodeType":"YulFunctionCall","src":"331:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"343:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"327:3:60"},"nodeType":"YulFunctionCall","src":"327:18:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"316:3:60"},"nodeType":"YulFunctionCall","src":"316:30:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"306:2:60"},"nodeType":"YulFunctionCall","src":"306:41:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"299:6:60"},"nodeType":"YulFunctionCall","src":"299:49:60"},"nodeType":"YulIf","src":"296:69:60"}]},"name":"abi_decode_uint96_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"234:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"245:5:60","type":""}],"src":"196:175:60"},{"body":{"nodeType":"YulBlock","src":"522:398:60","statements":[{"body":{"nodeType":"YulBlock","src":"569:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"578:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"581:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"571:6:60"},"nodeType":"YulFunctionCall","src":"571:12:60"},"nodeType":"YulExpressionStatement","src":"571:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"543:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"552:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"539:3:60"},"nodeType":"YulFunctionCall","src":"539:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"564:3:60","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"535:3:60"},"nodeType":"YulFunctionCall","src":"535:33:60"},"nodeType":"YulIf","src":"532:53:60"},{"nodeType":"YulAssignment","src":"594:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"634:9:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"604:29:60"},"nodeType":"YulFunctionCall","src":"604:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"594:6:60"}]},{"nodeType":"YulAssignment","src":"653:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"697:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"708:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"693:3:60"},"nodeType":"YulFunctionCall","src":"693:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"663:29:60"},"nodeType":"YulFunctionCall","src":"663:49:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"653:6:60"}]},{"nodeType":"YulAssignment","src":"721:58:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"764:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"775:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"760:3:60"},"nodeType":"YulFunctionCall","src":"760:18:60"}],"functionName":{"name":"abi_decode_uint96_fromMemory","nodeType":"YulIdentifier","src":"731:28:60"},"nodeType":"YulFunctionCall","src":"731:48:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"721:6:60"}]},{"nodeType":"YulAssignment","src":"788:58:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"831:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"842:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"827:3:60"},"nodeType":"YulFunctionCall","src":"827:18:60"}],"functionName":{"name":"abi_decode_uint96_fromMemory","nodeType":"YulIdentifier","src":"798:28:60"},"nodeType":"YulFunctionCall","src":"798:48:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"788:6:60"}]},{"nodeType":"YulAssignment","src":"855:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"898:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"909:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"894:3:60"},"nodeType":"YulFunctionCall","src":"894:19:60"}],"functionName":{"name":"abi_decode_uint96_fromMemory","nodeType":"YulIdentifier","src":"865:28:60"},"nodeType":"YulFunctionCall","src":"865:49:60"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"855:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint96t_uint96t_uint96_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"456:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"467:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"479:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"487:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"495:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"503:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"511:6:60","type":""}],"src":"376:544:60"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_uint96_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(96, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint96t_uint96t_uint96_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_uint96_fromMemory(add(headStart, 64))\n        value3 := abi_decode_uint96_fromMemory(add(headStart, 96))\n        value4 := abi_decode_uint96_fromMemory(add(headStart, 128))\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"610100604052600080546001600160501b0319166703f48000000151801790553480156200002c57600080fd5b50604051620033d5380380620033d58339810160408190526200004f9162000171565b806001600160601b0316826001600160601b031611156200008357604051634a7f394f60e01b815260040160405180910390fd5b816001600160601b0316836001600160601b03161015620000b757604051634a7f394f60e01b815260040160405180910390fd5b806001600160601b0316836001600160601b03161115620000eb57604051634a7f394f60e01b815260040160405180910390fd5b6001600160a01b0394851660c0529290931660e05260008054600160501b600160b01b0319166a01000000000000000000006001600160601b03938416021790559182166080521660a052620001e1565b80516001600160a01b03811681146200015457600080fd5b919050565b80516001600160601b03811681146200015457600080fd5b600080600080600060a086880312156200018a57600080fd5b62000195866200013c565b9450620001a5602087016200013c565b9350620001b56040870162000159565b9250620001c56060870162000159565b9150620001d56080870162000159565b90509295509295909350565b60805160a05160c05160e0516131586200027d600039600081816101ca01528181611dd10152611eec015260008181610459015281816106d801528181610b06015281816112690152818161161a015281816117ef0152818161186d01528181611cba0152818161202f015281816120e201526121eb01526000818161021601526119000152600081816103db01526118ad01526131586000f3fe6080604052600436106101755760003560e01c8063926c46b2116100cb578063d39046821161007f578063e907dc8111610059578063e907dc81146105cf578063f3dc6314146105ef578063fc45ddcd1461060f57600080fd5b8063d390468214610511578063d6159fe51461058d578063da35c664146105ab57600080fd5b8063b1610d7e116100b0578063b1610d7e146104c2578063b590be77146104e9578063b9a61961146104fc57600080fd5b8063926c46b21461047b578063a6c266031461049b57600080fd5b806331c5eec81161012d5780635ad77de6116101075780635ad77de6146103c95780636ffa2a81146103fd5780637aadef8b1461044757600080fd5b806331c5eec81461029f5780633d928f3c1461037c5780634c125e79146103a957600080fd5b8063176ed5ad1161015e578063176ed5ad146102045780632d4c7bd3146102505780632df23d151461027257600080fd5b80630944db161461017a5780630f1622af146101b8575b600080fd5b34801561018657600080fd5b5061019a61019536600461276d565b61062f565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b506101ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101af565b34801561021057600080fd5b506102387f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b0390911681526020016101af565b34801561025c57600080fd5b5061027061026b366004612847565b610afb565b005b34801561027e57600080fd5b5061029261028d366004612886565b610bfb565b6040516101af91906128b7565b3480156102ab57600080fd5b506103276102ba366004612886565b60026020819052600091825260409091208054600182015491909201546001600160601b0380831692600160601b81049091169164ffffffffff600160c01b909204821691818116916501000000000081049091169060ff600160501b8204811691600160581b90041688565b604080519889526001600160601b0397881660208a0152959096169487019490945264ffffffffff928316606087015290821660808601521660a0840152151560c0830152151560e0820152610100016101af565b34801561038857600080fd5b5061039c610397366004612886565b610caf565b6040516101af91906129c7565b3480156103b557600080fd5b506102706103c4366004612886565b610f68565b3480156103d557600080fd5b506102387f000000000000000000000000000000000000000000000000000000000000000081565b34801561040957600080fd5b50610431610418366004612a78565b60056020526000908152604090205464ffffffffff1681565b60405164ffffffffff90911681526020016101af565b34801561045357600080fd5b506101ec7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048757600080fd5b50610270610496366004612886565b61113c565b3480156104a757600080fd5b5060005461023890600160501b90046001600160601b031681565b3480156104ce57600080fd5b506000546104319065010000000000900464ffffffffff1681565b6102706104f7366004612886565b611515565b34801561050857600080fd5b506102706117ed565b34801561051d57600080fd5b5061056761052c366004612a91565b600460209081526000928352604080842090915290825290205460ff808216916101008104909116906201000090046001600160601b031683565b60408051931515845291151560208401526001600160601b0316908201526060016101af565b34801561059957600080fd5b506000546104319064ffffffffff1681565b3480156105b757600080fd5b506105c160015481565b6040519081526020016101af565b3480156105db57600080fd5b506102706105ea366004612ad0565b611862565b3480156105fb57600080fd5b5061027061060a366004612afb565b6119c0565b34801561061b57600080fd5b5061027061062a366004612847565b611caf565b60008551875114158061064457508451875114155b8061065157508351875114155b1561066f57604051634a7f394f60e01b815260040160405180910390fd5b600a8751111561069257604051634a7f394f60e01b815260040160405180910390fd5b61069b82611d98565b600080546106b09064ffffffffff1642612b50565b60008054919250906106d29065010000000000900464ffffffffff1683612b50565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636a42b8f86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190612b79565b6000546107779064ffffffffff65010000000000820481169116612b50565b6107819190612b50565b600054909150600160501b90046001600160601b03166107aa866107a58442612b92565b611e7f565b6001600160601b031610156107d257604051633048076b60e11b815260040160405180910390fd5b60008581526005602052604090205464ffffffffff1642101561080857604051633048076b60e11b815260040160405180910390fd5b6108128142612b50565b6000868152600560205260408120805464ffffffffff191664ffffffffff93909316929092179091556001805490919061084b90612bb8565b91829055506040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290945085815264ffffffffff8085166060808401918252858316608080860191825267ffffffffffffffff8a1660009081526002602081815260409283902089518155818a0151600182018054868d01519a518c16600160c01b027fffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff6001600160601b039c8d16600160601b027fffffffffffffffff0000000000000000000000000000000000000000000000009093169c9094169b909b1717919091169890981790975593519501805460a089015160c08a015160e08b01511515600160581b026bff000000000000000000000019911515600160501b02919091167fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff928b1665010000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941699909a169890981791909117169690961794909417909455825193840183528184528301819052908201819052818101528b815260208082018c905260408083018c9052606083018b905267ffffffffffffffff881660009081526003835220825180518493610a52928492910190612273565b506020828101518051610a6b92600185019201906122f0565b5060408201518051610a8791600284019160209091019061232b565b5060608201518051610aa391600384019160209091019061237d565b509050507f20d9b108f8538dcfcbae90dfbf2df4a0b7df3ec4a7f38db98fea51298228a575868d8d8d8d8a8a8f604051610ae4989796959493929190612bd2565b60405180910390a150505050509695505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4457604051634a7f394f60e01b815260040160405180910390fd5b6203f4808164ffffffffff161015610b6f57604051634a7f394f60e01b815260040160405180910390fd5b62278d008164ffffffffff161115610b9a57604051634a7f394f60e01b815260040160405180910390fd5b6000805469ffffffffff000000000019166501000000000064ffffffffff8416908102919091179091556040519081527fc6bdba91ad0eaeaaa3026c197783f40dff7571fd0e71402de571b9c508329db6906020015b60405180910390a150565b67ffffffffffffffff811660009081526002602081815260408084208151610100810183528154815260018201546001600160601b0380821695830195909552600160601b81049094169281019290925264ffffffffff600160c01b9093048316606083015290920154808216608084015265010000000000810490911660a083015260ff600160501b82048116151560c0840152600160581b90910416151560e0820152610ca990611f8f565b92915050565b610cda6040518060800160405280606081526020016060815260200160608152602001606081525090565b67ffffffffffffffff82166000908152600360209081526040918290208251815460a093810282018401909452608081018481529093919284928491840182828015610d4f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d31575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610da757602002820191906000526020600020905b815481526020019060010190808311610d93575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610e81578382906000526020600020018054610df490612ca1565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2090612ca1565b8015610e6d5780601f10610e4257610100808354040283529160200191610e6d565b820191906000526020600020905b815481529060010190602001808311610e5057829003601f168201915b505050505081526020019060010190610dd5565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b82821015610f5a578382906000526020600020018054610ecd90612ca1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef990612ca1565b8015610f465780601f10610f1b57610100808354040283529160200191610f46565b820191906000526020600020905b815481529060010190602001808311610f2957829003601f168201915b505050505081526020019060010190610eae565b505050915250909392505050565b67ffffffffffffffff811660009081526002602081815260408084208151610100810183528154815260018201546001600160601b0380821695830195909552600160601b81049094169281019290925264ffffffffff600160c01b9093048316606083015292830154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e082015290919061101b90611f8f565b90506007816007811115611031576110316128a1565b148061104e5750600681600781111561104c5761104c6128a1565b145b1561106c5760405163baf3f0f760e01b815260040160405180910390fd5b6000548254600160501b9091046001600160601b03169061108d9042611e7f565b6001600160601b0316106110dd5760008160078111156110af576110af6128a1565b036110c45781546110bf90611d98565b6110dd565b60405163baf3f0f760e01b815260040160405180910390fd5b6002820180546bff00000000000000000000001916600160581b17905560405167ffffffffffffffff841681527fe5c6a12e7989e74f4c07006b06767eae6da096502bba0f69213882f71242aab29060200160405180910390a1505050565b67ffffffffffffffff81166000908152600260205260409020600460408051610100810182528354815260018401546001600160601b038082166020840152600160601b8204169282019290925264ffffffffff600160c01b909204821660608201526002840154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e08201526111ea90611f8f565b60078111156111fb576111fb6128a1565b146112195760405163baf3f0f760e01b815260040160405180910390fd5b67ffffffffffffffff8216600090815260036020908152604080832081517f6a42b8f800000000000000000000000000000000000000000000000000000000815291519093926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636a42b8f892600480830193928290030181865afa1580156112b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d49190612b79565b6112de9042612cdb565b825490915060005b8181101561149d5761149584600001828154811061130657611306612cf3565b6000918252602090912001546001860180546001600160a01b03909216918490811061133457611334612cf3565b906000526020600020015486600201848154811061135457611354612cf3565b90600052602060002001805461136990612ca1565b80601f016020809104026020016040519081016040528092919081815260200182805461139590612ca1565b80156113e25780601f106113b7576101008083540402835291602001916113e2565b820191906000526020600020905b8154815290600101906020018083116113c557829003601f168201915b50505050508760030185815481106113fc576113fc612cf3565b90600052602060002001805461141190612ca1565b80601f016020809104026020016040519081016040528092919081815260200182805461143d90612ca1565b801561148a5780601f1061145f5761010080835404028352916020019161148a565b820191906000526020600020905b81548152906001019060200180831161146d57829003601f168201915b5050505050876120e0565b6001016112e6565b5060028401805469ffffffffff000000000019166501000000000064ffffffffff8516908102919091179091556040805167ffffffffffffffff8816815260208101929092527ffd77b3148cb69f934b0fb64fb5f6dbc650c23d1aaaf91d12bb52d78923c41308910160405180910390a15050505050565b67ffffffffffffffff81166000908152600260205260409020600560408051610100810182528354815260018401546001600160601b038082166020840152600160601b8204169282019290925264ffffffffff600160c01b909204821660608201526002840154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e08201526115c390611f8f565b60078111156115d4576115d46128a1565b146115f25760405163baf3f0f760e01b815260040160405180910390fd5b67ffffffffffffffff82166000908152600360205260408120805490915b81811015611779577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630825f38f84600101838154811061165c5761165c612cf3565b906000526020600020015485600001848154811061167c5761167c612cf3565b6000918252602090912001546001870180546001600160a01b0390921691869081106116aa576116aa612cf3565b90600052602060002001548760020186815481106116ca576116ca612cf3565b906000526020600020018860030187815481106116e9576116e9612cf3565b906000526020600020018a60020160059054906101000a900464ffffffffff166040518763ffffffff1660e01b8152600401611729959493929190612da4565b60006040518083038185885af1158015611747573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526117709190810190612df8565b50600101611610565b506002830180547fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16600160501b17905560405167ffffffffffffffff851681527f2b3962140cfad697e04b60d47af771de8568e6ead5f42b8873c4a8d12bd2b3c79060200160405180910390a150505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561184857600080fd5b505af115801561185c573d6000803e3d6000fd5b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118ab57604051634a7f394f60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160601b0316816001600160601b031610156118fe57604051634a7f394f60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160601b0316816001600160601b0316111561195157604051634a7f394f60e01b815260040160405180910390fd5b600080547fffffffffffffffffffff000000000000000000000000ffffffffffffffffffff16600160501b6001600160601b038416908102919091179091556040519081527fff6500f609261dffe81c46cd3a92bfacb4ba18bb4a8fb2244547986c5ba7457f90602001610bf0565b67ffffffffffffffff83166000908152600260205260409020600160408051610100810182528354815260018401546001600160601b038082166020840152600160601b8204169282019290925264ffffffffff600160c01b909204821660608201526002840154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e0820152611a6e90611f8f565b6007811115611a7f57611a7f6128a1565b14611a9d5760405163baf3f0f760e01b815260040160405180910390fd5b611aa682611d98565b6000611ac7838360010160189054906101000a900464ffffffffff16611e7f565b9050806001600160601b0316600003611af357604051633048076b60e11b815260040160405180910390fd5b67ffffffffffffffff851660009081526004602090815260408083208684529091529020805460ff1615611b53576040517f667a709a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80546001600160601b03831662010000027fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff87158015610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009094169390931760011716178255611c0957600183018054839190600090611be09084906001600160601b0316612e6f565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550611c54565b8183600101600c8282829054906101000a90046001600160601b0316611c2f9190612e6f565b92506101000a8154816001600160601b0302191690836001600160601b031602179055505b6040805167ffffffffffffffff8816815286151560208201526001600160601b0384168183015290517fab2f5ddd7116794a68bdc6c3e14b18b5888ce4f48fdea983f4a1032a24a7989b9181900360600190a1505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cf857604051634a7f394f60e01b815260040160405180910390fd5b620151808164ffffffffff161015611d2357604051634a7f394f60e01b815260040160405180910390fd5b62093a808164ffffffffff161115611d4e57604051634a7f394f60e01b815260040160405180910390fd5b6000805464ffffffffff191664ffffffffff83169081179091556040519081527f4b9e05d03a781f25fd55d65f8a28c7452e1ecb4a70c2b761bbfe0d9fb8a9d3cb90602001610bf0565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c9190612e91565b6001600160a01b031614611e7c576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6000808311611eba576040517f0f3e2a3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f99fbab88000000000000000000000000000000000000000000000000000000008152600481018490526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906399fbab889060240160e060405180830381865afa158015611f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5f9190612eff565b90508264ffffffffff16816060015165ffffffffffff161015611f855751519050610ca9565b5060009392505050565b60008160e0015115611fa357506002919050565b816060015164ffffffffff164211611fbd57506000919050565b816080015164ffffffffff164211611fd757506001919050565b81604001516001600160601b031682602001516001600160601b03161161200057506003919050565b8160a0015164ffffffffff1660000361201b57506004919050565b8160c001511561202d57506007919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c1a287e26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120af9190612b79565b8260a0015164ffffffffff166120c59190612cdb565b42106120d357506006919050565b506005919050565b919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2b065378686868686604051602001612128959493929190612fc0565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161215c91815260200190565b602060405180830381865afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d9190612ffa565b156121bb5760405163baf3f0f760e01b815260040160405180910390fd5b6040517f3a66f9010000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633a66f901906122289088908890889088908890600401612fc0565b6020604051808303816000875af1158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b9190612b79565b505050505050565b8280548282559060005260206000209081019282156122e0579160200282015b828111156122e057825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190612293565b506122ec9291506123cf565b5090565b8280548282559060005260206000209081019282156122e0579160200282015b828111156122e0578251825591602001919060010190612310565b828054828255906000526020600020908101928215612371579160200282015b8281111561237157825182906123619082613062565b509160200191906001019061234b565b506122ec9291506123e4565b8280548282559060005260206000209081019282156123c3579160200282015b828111156123c357825182906123b39082613062565b509160200191906001019061239d565b506122ec929150612401565b5b808211156122ec57600081556001016123d0565b808211156122ec5760006123f8828261241e565b506001016123e4565b808211156122ec576000612415828261241e565b50600101612401565b50805461242a90612ca1565b6000825580601f1061243a575050565b601f016020900490600052602060002090810190611e7c91906123cf565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561249157612491612458565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156124c0576124c0612458565b604052919050565b600067ffffffffffffffff8211156124e2576124e2612458565b5060051b60200190565b6001600160a01b0381168114611e7c57600080fd5b600082601f83011261251257600080fd5b81356020612527612522836124c8565b612497565b82815260059290921b8401810191818101908684111561254657600080fd5b8286015b8481101561256a57803561255d816124ec565b835291830191830161254a565b509695505050505050565b600082601f83011261258657600080fd5b81356020612596612522836124c8565b82815260059290921b840181019181810190868411156125b557600080fd5b8286015b8481101561256a57803583529183019183016125b9565b600067ffffffffffffffff8211156125ea576125ea612458565b50601f01601f191660200190565b6000612606612522846125d0565b905082815283838301111561261a57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261264257600080fd5b612651838335602085016125f8565b9392505050565b600082601f83011261266957600080fd5b81356020612679612522836124c8565b82815260059290921b8401810191818101908684111561269857600080fd5b8286015b8481101561256a57803567ffffffffffffffff8111156126bc5760008081fd5b6126ca8986838b0101612631565b84525091830191830161269c565b600082601f8301126126e957600080fd5b813560206126f9612522836124c8565b82815260059290921b8401810191818101908684111561271857600080fd5b8286015b8481101561256a57803567ffffffffffffffff81111561273c5760008081fd5b8701603f8101891361274e5760008081fd5b61275f8986830135604084016125f8565b84525091830191830161271c565b60008060008060008060c0878903121561278657600080fd5b863567ffffffffffffffff8082111561279e57600080fd5b6127aa8a838b01612501565b975060208901359150808211156127c057600080fd5b6127cc8a838b01612575565b965060408901359150808211156127e257600080fd5b6127ee8a838b01612658565b9550606089013591508082111561280457600080fd5b6128108a838b016126d8565b9450608089013591508082111561282657600080fd5b5061283389828a01612631565b92505060a087013590509295509295509295565b60006020828403121561285957600080fd5b813564ffffffffff8116811461265157600080fd5b803567ffffffffffffffff811681146120db57600080fd5b60006020828403121561289857600080fd5b6126518261286e565b634e487b7160e01b600052602160045260246000fd5b60208101600883106128d957634e487b7160e01b600052602160045260246000fd5b91905290565b600081518084526020808501945080840160005b8381101561290f578151875295820195908201906001016128f3565b509495945050505050565b60005b8381101561293557818101518382015260200161291d565b8381111561185c5750506000910152565b6000815180845261295e81602086016020860161291a565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156129ba5782840389526129a8848351612946565b98850198935090840190600101612990565b5091979650505050505050565b60208082528251608083830152805160a0840181905260009291820190839060c08601905b80831015612a155783516001600160a01b031682529284019260019290920191908401906129ec565b50838701519350601f19925082868203016040870152612a3581856128df565b93505050604085015181858403016060860152612a528382612972565b925050606085015181858403016080860152612a6e8382612972565b9695505050505050565b600060208284031215612a8a57600080fd5b5035919050565b60008060408385031215612aa457600080fd5b612aad8361286e565b946020939093013593505050565b6001600160601b0381168114611e7c57600080fd5b600060208284031215612ae257600080fd5b813561265181612abb565b8015158114611e7c57600080fd5b600080600060608486031215612b1057600080fd5b612b198461286e565b92506020840135612b2981612aed565b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b600064ffffffffff808316818516808303821115612b7057612b70612b3a565b01949350505050565b600060208284031215612b8b57600080fd5b5051919050565b600064ffffffffff83811690831681811015612bb057612bb0612b3a565b039392505050565b60006000198203612bcb57612bcb612b3a565b5060010190565b67ffffffffffffffff89168152610100602080830182905289519183018290526000916101208401918b810191845b81811015612c265783516001600160a01b031685529382019392820192600101612c01565b505050508281036040840152612c3c818a6128df565b90508281036060840152612c508189612972565b90508281036080840152612c648188612972565b64ffffffffff871660a0850152905064ffffffffff851660c084015282810360e0840152612c928185612946565b9b9a5050505050505050505050565b600181811c90821680612cb557607f821691505b602082108103612cd557634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115612cee57612cee612b3a565b500190565b634e487b7160e01b600052603260045260246000fd5b60008154612d1681612ca1565b808552602060018381168015612d335760018114612d6b57612d99565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550612d99565b866000528260002060005b85811015612d915781548a8201860152908301908401612d76565b890184019650505b505050505092915050565b6001600160a01b038616815284602082015260a060408201526000612dcc60a0830186612d09565b8281036060840152612dde8186612d09565b91505064ffffffffff831660808301529695505050505050565b600060208284031215612e0a57600080fd5b815167ffffffffffffffff811115612e2157600080fd5b8201601f81018413612e3257600080fd5b8051612e40612522826125d0565b818152856020838501011115612e5557600080fd5b612e6682602083016020860161291a565b95945050505050565b60006001600160601b03808316818516808303821115612b7057612b70612b3a565b600060208284031215612ea357600080fd5b8151612651816124ec565b80516120db816124ec565b600060408284031215612ecb57600080fd5b612ed361246e565b9050815181526020820151602082015292915050565b805165ffffffffffff811681146120db57600080fd5b600081830360e0811215612f1257600080fd5b60405160a0810181811067ffffffffffffffff82111715612f3557612f35612458565b6040908152821215612f4657600080fd5b612f4e61246e565b91508351612f5b81612abb565b82526020840151612f6b816124ec565b6020830152818152612f808560408601612eb9565b6020820152612f9160808501612eae565b6040820152612fa260a08501612ee9565b6060820152612fb360c08501612ee9565b6080820152949350505050565b6001600160a01b038616815284602082015260a060408201526000612fe860a0830186612946565b8281036060840152612dde8186612946565b60006020828403121561300c57600080fd5b815161265181612aed565b601f82111561305d57600081815260208120601f850160051c8101602086101561303e5750805b601f850160051c820191505b8181101561226b5782815560010161304a565b505050565b815167ffffffffffffffff81111561307c5761307c612458565b6130908161308a8454612ca1565b84613017565b602080601f8311600181146130c557600084156130ad5750858301515b600019600386901b1c1916600185901b17855561226b565b600085815260208120601f198616915b828110156130f4578886015182559484019460019091019084016130d5565b50858210156131125787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212207510720b4c693837355491acfecb686abddf5b28a76543b77d46ecd89564fb9964736f6c634300080f0033","opcodes":"PUSH2 0x100 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB NOT AND PUSH8 0x3F4800000015180 OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x33D5 CODESIZE SUB DUP1 PUSH3 0x33D5 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x4F SWAP2 PUSH3 0x171 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT ISZERO PUSH3 0x83 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH3 0xB7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT ISZERO PUSH3 0xEB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0xC0 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0xE0 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x50 SHL PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH11 0x100000000000000000000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP4 DUP5 AND MUL OR SWAP1 SSTORE SWAP2 DUP3 AND PUSH1 0x80 MSTORE AND PUSH1 0xA0 MSTORE PUSH3 0x1E1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x195 DUP7 PUSH3 0x13C JUMP JUMPDEST SWAP5 POP PUSH3 0x1A5 PUSH1 0x20 DUP8 ADD PUSH3 0x13C JUMP JUMPDEST SWAP4 POP PUSH3 0x1B5 PUSH1 0x40 DUP8 ADD PUSH3 0x159 JUMP JUMPDEST SWAP3 POP PUSH3 0x1C5 PUSH1 0x60 DUP8 ADD PUSH3 0x159 JUMP JUMPDEST SWAP2 POP PUSH3 0x1D5 PUSH1 0x80 DUP8 ADD PUSH3 0x159 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x3158 PUSH3 0x27D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1CA ADD MSTORE DUP2 DUP2 PUSH2 0x1DD1 ADD MSTORE PUSH2 0x1EEC ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x459 ADD MSTORE DUP2 DUP2 PUSH2 0x6D8 ADD MSTORE DUP2 DUP2 PUSH2 0xB06 ADD MSTORE DUP2 DUP2 PUSH2 0x1269 ADD MSTORE DUP2 DUP2 PUSH2 0x161A ADD MSTORE DUP2 DUP2 PUSH2 0x17EF ADD MSTORE DUP2 DUP2 PUSH2 0x186D ADD MSTORE DUP2 DUP2 PUSH2 0x1CBA ADD MSTORE DUP2 DUP2 PUSH2 0x202F ADD MSTORE DUP2 DUP2 PUSH2 0x20E2 ADD MSTORE PUSH2 0x21EB ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x216 ADD MSTORE PUSH2 0x1900 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x3DB ADD MSTORE PUSH2 0x18AD ADD MSTORE PUSH2 0x3158 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x175 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x926C46B2 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xD3904682 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xE907DC81 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xE907DC81 EQ PUSH2 0x5CF JUMPI DUP1 PUSH4 0xF3DC6314 EQ PUSH2 0x5EF JUMPI DUP1 PUSH4 0xFC45DDCD EQ PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD3904682 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0xD6159FE5 EQ PUSH2 0x58D JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB1610D7E GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xB1610D7E EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB590BE77 EQ PUSH2 0x4E9 JUMPI DUP1 PUSH4 0xB9A61961 EQ PUSH2 0x4FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x926C46B2 EQ PUSH2 0x47B JUMPI DUP1 PUSH4 0xA6C26603 EQ PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31C5EEC8 GT PUSH2 0x12D JUMPI DUP1 PUSH4 0x5AD77DE6 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x5AD77DE6 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0x6FFA2A81 EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0x7AADEF8B EQ PUSH2 0x447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31C5EEC8 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x3D928F3C EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x4C125E79 EQ PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x176ED5AD GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x176ED5AD EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x2D4C7BD3 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x2DF23D15 EQ PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x944DB16 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1622AF EQ PUSH2 0x1B8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x276D JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x238 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x2847 JUMP JUMPDEST PUSH2 0xAFB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x28D CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x327 PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD SWAP2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP4 AND SWAP3 PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV SWAP1 SWAP2 AND SWAP2 PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND SWAP2 DUP2 DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP2 AND SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x58 SHL SWAP1 DIV AND DUP9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP9 DUP10 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP8 DUP9 AND PUSH1 0x20 DUP11 ADD MSTORE SWAP6 SWAP1 SWAP7 AND SWAP5 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH5 0xFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x60 DUP8 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x80 DUP7 ADD MSTORE AND PUSH1 0xA0 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x388 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x397 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0xCAF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0xF68 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x238 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH2 0x418 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A78 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH5 0xFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0x113C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x238 SWAP1 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x431 SWAP1 PUSH6 0x10000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x270 PUSH2 0x4F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0x1515 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x508 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x17ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x567 PUSH2 0x52C CALLDATASIZE PUSH1 0x4 PUSH2 0x2A91 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 DUP2 DIV SWAP1 SWAP2 AND SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE SWAP2 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x431 SWAP1 PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C1 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x5EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1862 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x60A CALLDATASIZE PUSH1 0x4 PUSH2 0x2AFB JUMP JUMPDEST PUSH2 0x19C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x62A CALLDATASIZE PUSH1 0x4 PUSH2 0x2847 JUMP JUMPDEST PUSH2 0x1CAF JUMP JUMPDEST PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ ISZERO DUP1 PUSH2 0x644 JUMPI POP DUP5 MLOAD DUP8 MLOAD EQ ISZERO JUMPDEST DUP1 PUSH2 0x651 JUMPI POP DUP4 MLOAD DUP8 MLOAD EQ ISZERO JUMPDEST ISZERO PUSH2 0x66F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP8 MLOAD GT ISZERO PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x69B DUP3 PUSH2 0x1D98 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x2B50 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x6D2 SWAP1 PUSH6 0x10000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP4 PUSH2 0x2B50 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A42B8F8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x758 SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x777 SWAP1 PUSH5 0xFFFFFFFFFF PUSH6 0x10000000000 DUP3 DIV DUP2 AND SWAP2 AND PUSH2 0x2B50 JUMP JUMPDEST PUSH2 0x781 SWAP2 SWAP1 PUSH2 0x2B50 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x50 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x7AA DUP7 PUSH2 0x7A5 DUP5 TIMESTAMP PUSH2 0x2B92 JUMP JUMPDEST PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x7D2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3048076B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP LT ISZERO PUSH2 0x808 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3048076B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x812 DUP2 TIMESTAMP PUSH2 0x2B50 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH5 0xFFFFFFFFFF NOT AND PUSH5 0xFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x84B SWAP1 PUSH2 0x2BB8 JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP5 POP DUP6 DUP2 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x60 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP6 DUP4 AND PUSH1 0x80 DUP1 DUP7 ADD SWAP2 DUP3 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP10 MLOAD DUP2 SSTORE DUP2 DUP11 ADD MLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD DUP7 DUP14 ADD MLOAD SWAP11 MLOAD DUP13 AND PUSH1 0x1 PUSH1 0xC0 SHL MUL PUSH32 0xFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP13 DUP14 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP13 SWAP1 SWAP5 AND SWAP12 SWAP1 SWAP12 OR OR SWAP2 SWAP1 SWAP2 AND SWAP9 SWAP1 SWAP9 OR SWAP1 SWAP8 SSTORE SWAP4 MLOAD SWAP6 ADD DUP1 SLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD ISZERO ISZERO PUSH1 0x1 PUSH1 0x58 SHL MUL PUSH12 0xFF0000000000000000000000 NOT SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0x50 SHL MUL SWAP2 SWAP1 SWAP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF SWAP3 DUP12 AND PUSH6 0x10000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000 SWAP1 SWAP5 AND SWAP10 SWAP1 SWAP11 AND SWAP9 SWAP1 SWAP9 OR SWAP2 SWAP1 SWAP2 OR AND SWAP7 SWAP1 SWAP7 OR SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP5 SSTORE DUP3 MLOAD SWAP4 DUP5 ADD DUP4 MSTORE DUP2 DUP5 MSTORE DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 DUP2 ADD MSTORE DUP12 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 ADD DUP13 SWAP1 MSTORE PUSH1 0x60 DUP4 ADD DUP12 SWAP1 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 MSTORE KECCAK256 DUP3 MLOAD DUP1 MLOAD DUP5 SWAP4 PUSH2 0xA52 SWAP3 DUP5 SWAP3 SWAP2 ADD SWAP1 PUSH2 0x2273 JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD DUP1 MLOAD PUSH2 0xA6B SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x22F0 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0xA87 SWAP2 PUSH1 0x2 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x232B JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0xAA3 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x237D JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x20D9B108F8538DCFCBAE90DFBF2DF4A0B7DF3EC4A7F38DB98FEA51298228A575 DUP7 DUP14 DUP14 DUP14 DUP14 DUP11 DUP11 DUP16 PUSH1 0x40 MLOAD PUSH2 0xAE4 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x3F480 DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0xB6F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH10 0xFFFFFFFFFF0000000000 NOT AND PUSH6 0x10000000000 PUSH5 0xFFFFFFFFFF DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC6BDBA91AD0EAEAAA3026C197783F40DFF7571FD0E71402DE571B9C508329DB6 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND SWAP6 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV SWAP1 SWAP5 AND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP4 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP3 ADD SLOAD DUP1 DUP3 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP2 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP3 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0xCA9 SWAP1 PUSH2 0x1F8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCDA PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP2 SLOAD PUSH1 0xA0 SWAP4 DUP2 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP2 ADD DUP5 DUP2 MSTORE SWAP1 SWAP4 SWAP2 SWAP3 DUP5 SWAP3 DUP5 SWAP2 DUP5 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xD4F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD31 JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xDA7 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xD93 JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xE81 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xDF4 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE20 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE6D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE42 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE6D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE50 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xDD5 JUMP JUMPDEST POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xF5A JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xECD SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xEF9 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF46 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF1B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF46 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF29 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xEAE JUMP JUMPDEST POP POP POP SWAP2 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND SWAP6 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV SWAP1 SWAP5 AND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP4 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP3 DUP4 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH2 0x101B SWAP1 PUSH2 0x1F8F JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1031 JUMPI PUSH2 0x1031 PUSH2 0x28A1 JUMP JUMPDEST EQ DUP1 PUSH2 0x104E JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x104C JUMPI PUSH2 0x104C PUSH2 0x28A1 JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x106C JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP1 PUSH2 0x108D SWAP1 TIMESTAMP PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT PUSH2 0x10DD JUMPI PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10AF JUMPI PUSH2 0x10AF PUSH2 0x28A1 JUMP JUMPDEST SUB PUSH2 0x10C4 JUMPI DUP2 SLOAD PUSH2 0x10BF SWAP1 PUSH2 0x1D98 JUMP JUMPDEST PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH12 0xFF0000000000000000000000 NOT AND PUSH1 0x1 PUSH1 0x58 SHL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND DUP2 MSTORE PUSH32 0xE5C6A12E7989E74F4C07006B06767EAE6DA096502BBA0F69213882F71242AAB2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD DUP2 MSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP3 DIV AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x11EA SWAP1 PUSH2 0x1F8F JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x11FB JUMPI PUSH2 0x11FB PUSH2 0x28A1 JUMP JUMPDEST EQ PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP1 SWAP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D4 SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST PUSH2 0x12DE SWAP1 TIMESTAMP PUSH2 0x2CDB JUMP JUMPDEST DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x149D JUMPI PUSH2 0x1495 DUP5 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1306 JUMPI PUSH2 0x1306 PUSH2 0x2CF3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 DUP7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x1334 JUMPI PUSH2 0x1334 PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x2 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1354 JUMPI PUSH2 0x1354 PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x1369 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1395 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x13E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x13E2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x13C5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP8 PUSH1 0x3 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x13FC JUMPI PUSH2 0x13FC PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x1411 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x143D SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x148A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x148A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x146D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP8 PUSH2 0x20E0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x12E6 JUMP JUMPDEST POP PUSH1 0x2 DUP5 ADD DUP1 SLOAD PUSH10 0xFFFFFFFFFF0000000000 NOT AND PUSH6 0x10000000000 PUSH5 0xFFFFFFFFFF DUP6 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0xFD77B3148CB69F934B0FB64FB5F6DBC650C23D1AAAF91D12BB52D78923C41308 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD DUP2 MSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP3 DIV AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x15C3 SWAP1 PUSH2 0x1F8F JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D4 PUSH2 0x28A1 JUMP JUMPDEST EQ PUSH2 0x15F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1779 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x825F38F DUP5 PUSH1 0x1 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x165C JUMPI PUSH2 0x165C PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x167C JUMPI PUSH2 0x167C PUSH2 0x2CF3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 DUP8 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x16AA JUMPI PUSH2 0x16AA PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH1 0x2 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x16CA JUMPI PUSH2 0x16CA PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x3 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x16E9 JUMPI PUSH2 0x16E9 PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP11 PUSH1 0x2 ADD PUSH1 0x5 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH5 0xFFFFFFFFFF AND PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1729 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DA4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1747 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1770 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DF8 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1610 JUMP JUMPDEST POP PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x50 SHL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND DUP2 MSTORE PUSH32 0x2B3962140CFAD697E04B60D47AF771DE8568E6EAD5F42B8873C4A8D12BD2B3C7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE18B681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x185C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x18AB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x18FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x50 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xFF6500F609261DFFE81C46CD3A92BFACB4BA18BB4A8FB2244547986C5BA7457F SWAP1 PUSH1 0x20 ADD PUSH2 0xBF0 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD DUP2 MSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP3 DIV AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x1A6E SWAP1 PUSH2 0x1F8F JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1A7F JUMPI PUSH2 0x1A7F PUSH2 0x28A1 JUMP JUMPDEST EQ PUSH2 0x1A9D JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AA6 DUP3 PUSH2 0x1D98 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AC7 DUP4 DUP4 PUSH1 0x1 ADD PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH5 0xFFFFFFFFFF AND PUSH2 0x1E7F JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x1AF3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3048076B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x667A709A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND PUSH3 0x10000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFF DUP8 ISZERO DUP1 ISZERO PUSH2 0x100 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR PUSH1 0x1 OR AND OR DUP3 SSTORE PUSH2 0x1C09 JUMPI PUSH1 0x1 DUP4 ADD DUP1 SLOAD DUP4 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1BE0 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2E6F JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1C54 JUMP JUMPDEST DUP2 DUP4 PUSH1 0x1 ADD PUSH1 0xC DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x1C2F SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xAB2F5DDD7116794A68BDC6C3E14B18B5888CE4F48FDEA983F4A1032A24A7989B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x1CF8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x15180 DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x93A80 DUP2 PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x1D4E JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH5 0xFFFFFFFFFF NOT AND PUSH5 0xFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x4B9E05D03A781F25FD55D65F8A28C7452E1ECB4A70C2B761BBFE0D9FB8A9D3CB SWAP1 PUSH1 0x20 ADD PUSH2 0xBF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x6352211E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E18 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3C SWAP2 SWAP1 PUSH2 0x2E91 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x49E27CFF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 GT PUSH2 0x1EBA JUMPI PUSH1 0x40 MLOAD PUSH32 0xF3E2A3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x99FBAB8800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x99FBAB88 SWAP1 PUSH1 0x24 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F5F SWAP2 SWAP1 PUSH2 0x2EFF JUMP JUMPDEST SWAP1 POP DUP3 PUSH5 0xFFFFFFFFFF AND DUP2 PUSH1 0x60 ADD MLOAD PUSH6 0xFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1F85 JUMPI MLOAD MLOAD SWAP1 POP PUSH2 0xCA9 JUMP JUMPDEST POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x1FA3 JUMPI POP PUSH1 0x2 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP GT PUSH2 0x1FBD JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x80 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP GT PUSH2 0x1FD7 JUMPI POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT PUSH2 0x2000 JUMPI POP PUSH1 0x3 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x201B JUMPI POP PUSH1 0x4 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x202D JUMPI POP PUSH1 0x7 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC1A287E2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x208B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20AF SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST DUP3 PUSH1 0xA0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND PUSH2 0x20C5 SWAP2 SWAP1 PUSH2 0x2CDB JUMP JUMPDEST TIMESTAMP LT PUSH2 0x20D3 JUMPI POP PUSH1 0x6 SWAP2 SWAP1 POP JUMP JUMPDEST POP PUSH1 0x5 SWAP2 SWAP1 POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF2B06537 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2128 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2FC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x215C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x219D SWAP2 SWAP1 PUSH2 0x2FFA JUMP JUMPDEST ISZERO PUSH2 0x21BB JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x2228 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2FC0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2247 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x226B SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x22E0 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x22E0 JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2293 JUMP JUMPDEST POP PUSH2 0x22EC SWAP3 SWAP2 POP PUSH2 0x23CF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x22E0 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x22E0 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2310 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2371 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2371 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x2361 SWAP1 DUP3 PUSH2 0x3062 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x234B JUMP JUMPDEST POP PUSH2 0x22EC SWAP3 SWAP2 POP PUSH2 0x23E4 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x23C3 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x23C3 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x23B3 SWAP1 DUP3 PUSH2 0x3062 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x239D JUMP JUMPDEST POP PUSH2 0x22EC SWAP3 SWAP2 POP PUSH2 0x2401 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x23D0 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x0 PUSH2 0x23F8 DUP3 DUP3 PUSH2 0x241E JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x23E4 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x0 PUSH2 0x2415 DUP3 DUP3 PUSH2 0x241E JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2401 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x242A SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x243A JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1E7C SWAP2 SWAP1 PUSH2 0x23CF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2491 JUMPI PUSH2 0x2491 PUSH2 0x2458 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x24C0 JUMPI PUSH2 0x24C0 PUSH2 0x2458 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24E2 JUMPI PUSH2 0x24E2 PUSH2 0x2458 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1E7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2527 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST PUSH2 0x2497 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2546 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD PUSH2 0x255D DUP2 PUSH2 0x24EC JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x254A JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2596 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x25B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x25B9 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25EA JUMPI PUSH2 0x25EA PUSH2 0x2458 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2606 PUSH2 0x2522 DUP5 PUSH2 0x25D0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x261A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2642 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2651 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x25F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2679 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26BC JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x26CA DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2631 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x269C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x26E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x26F9 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x273C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x274E JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x275F DUP10 DUP7 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP5 ADD PUSH2 0x25F8 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x271C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x279E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27AA DUP11 DUP4 DUP12 ADD PUSH2 0x2501 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27CC DUP11 DUP4 DUP12 ADD PUSH2 0x2575 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27EE DUP11 DUP4 DUP12 ADD PUSH2 0x2658 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2804 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2810 DUP11 DUP4 DUP12 ADD PUSH2 0x26D8 JUMP JUMPDEST SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2833 DUP10 DUP3 DUP11 ADD PUSH2 0x2631 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2859 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x20DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2651 DUP3 PUSH2 0x286E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x8 DUP4 LT PUSH2 0x28D9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x290F JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x28F3 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2935 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x291D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x185C JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x295E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x291A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP4 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP3 DUP7 ADD PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x29BA JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x29A8 DUP5 DUP4 MLOAD PUSH2 0x2946 JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2990 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x80 DUP4 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP3 SWAP2 DUP3 ADD SWAP1 DUP4 SWAP1 PUSH1 0xC0 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x2A15 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0x29EC JUMP JUMPDEST POP DUP4 DUP8 ADD MLOAD SWAP4 POP PUSH1 0x1F NOT SWAP3 POP DUP3 DUP7 DUP3 SUB ADD PUSH1 0x40 DUP8 ADD MSTORE PUSH2 0x2A35 DUP2 DUP6 PUSH2 0x28DF JUMP JUMPDEST SWAP4 POP POP POP PUSH1 0x40 DUP6 ADD MLOAD DUP2 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x2A52 DUP4 DUP3 PUSH2 0x2972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD MLOAD DUP2 DUP6 DUP5 SUB ADD PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x2A6E DUP4 DUP3 PUSH2 0x2972 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AAD DUP4 PUSH2 0x286E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1E7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2651 DUP2 PUSH2 0x2ABB JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1E7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2B10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B19 DUP5 PUSH2 0x286E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2B29 DUP2 PUSH2 0x2AED JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH5 0xFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2B70 JUMPI PUSH2 0x2B70 PUSH2 0x2B3A JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH5 0xFFFFFFFFFF DUP4 DUP2 AND SWAP1 DUP4 AND DUP2 DUP2 LT ISZERO PUSH2 0x2BB0 JUMPI PUSH2 0x2BB0 PUSH2 0x2B3A JUMP JUMPDEST SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x2BCB JUMPI PUSH2 0x2BCB PUSH2 0x2B3A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP10 AND DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP10 MLOAD SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x120 DUP5 ADD SWAP2 DUP12 DUP2 ADD SWAP2 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C26 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP3 DUP3 ADD SWAP3 PUSH1 0x1 ADD PUSH2 0x2C01 JUMP JUMPDEST POP POP POP POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2C3C DUP2 DUP11 PUSH2 0x28DF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C50 DUP2 DUP10 PUSH2 0x2972 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C64 DUP2 DUP9 PUSH2 0x2972 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP8 AND PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH5 0xFFFFFFFFFF DUP6 AND PUSH1 0xC0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x2C92 DUP2 DUP6 PUSH2 0x2946 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2CB5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2CD5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2CEE JUMPI PUSH2 0x2CEE PUSH2 0x2B3A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2D16 DUP2 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x20 PUSH1 0x1 DUP4 DUP2 AND DUP1 ISZERO PUSH2 0x2D33 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2D6B JUMPI PUSH2 0x2D99 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP6 AND DUP4 DUP10 ADD MSTORE DUP3 DUP5 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD ADD SWAP6 POP PUSH2 0x2D99 JUMP JUMPDEST DUP7 PUSH1 0x0 MSTORE DUP3 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2D91 JUMPI DUP2 SLOAD DUP11 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP5 ADD PUSH2 0x2D76 JUMP JUMPDEST DUP10 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCC PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2D09 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DDE DUP2 DUP7 PUSH2 0x2D09 JUMP JUMPDEST SWAP2 POP POP PUSH5 0xFFFFFFFFFF DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2E32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2E40 PUSH2 0x2522 DUP3 PUSH2 0x25D0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2E55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E66 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x291A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2B70 JUMPI PUSH2 0x2B70 PUSH2 0x2B3A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2651 DUP2 PUSH2 0x24EC JUMP JUMPDEST DUP1 MLOAD PUSH2 0x20DB DUP2 PUSH2 0x24EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ECB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2ED3 PUSH2 0x246E JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH6 0xFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x20DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB PUSH1 0xE0 DUP2 SLT ISZERO PUSH2 0x2F12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2F35 JUMPI PUSH2 0x2F35 PUSH2 0x2458 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP3 SLT ISZERO PUSH2 0x2F46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F4E PUSH2 0x246E JUMP JUMPDEST SWAP2 POP DUP4 MLOAD PUSH2 0x2F5B DUP2 PUSH2 0x2ABB JUMP JUMPDEST DUP3 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x2F6B DUP2 PUSH2 0x24EC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x2F80 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x2EB9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2F91 PUSH1 0x80 DUP6 ADD PUSH2 0x2EAE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2FA2 PUSH1 0xA0 DUP6 ADD PUSH2 0x2EE9 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2FB3 PUSH1 0xC0 DUP6 ADD PUSH2 0x2EE9 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2FE8 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2946 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DDE DUP2 DUP7 PUSH2 0x2946 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x300C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2651 DUP2 PUSH2 0x2AED JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x305D JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x303E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x226B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x304A JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x307C JUMPI PUSH2 0x307C PUSH2 0x2458 JUMP JUMPDEST PUSH2 0x3090 DUP2 PUSH2 0x308A DUP5 SLOAD PUSH2 0x2CA1 JUMP JUMPDEST DUP5 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x30C5 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x30AD JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x226B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x30F4 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x30D5 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3112 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH22 0x10720B4C693837355491ACFECB686ABDDF5B28A76543 0xB7 PUSH30 0x46ECD89564FB9964736F6C634300080F0033000000000000000000000000 ","sourceMap":"956:14847:37:-:0;;;1144:35;;;-1:-1:-1;;;;;;1328:36:37;;;;;5494:781;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5747:23;-1:-1:-1;;;;;5721:49:37;:23;-1:-1:-1;;;;;5721:49:37;;5717:77;;;5779:15;;-1:-1:-1;;;5779:15:37;;;;;;;;;;;5717:77;5831:23;-1:-1:-1;;;;;5809:45:37;:19;-1:-1:-1;;;;;5809:45:37;;5805:73;;;5863:15;;-1:-1:-1;;;5863:15:37;;;;;;;;;;;5805:73;5915:23;-1:-1:-1;;;;;5893:45:37;:19;-1:-1:-1;;;;;5893:45:37;;5889:73;;;5947:15;;-1:-1:-1;;;5947:15:37;;;;;;;;;;;5889:73;-1:-1:-1;;;;;5973:31:37;;;;;6015:83;;;;;;6109:18;:40;;-1:-1:-1;;;;;;;;6109:40:37;;-1:-1:-1;;;;;6109:40:37;;;;;;;6160:48;;;;;6219;;;956:14847;;14:177:60;93:13;;-1:-1:-1;;;;;135:31:60;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:175::-;274:13;;-1:-1:-1;;;;;316:30:60;;306:41;;296:69;;361:1;358;351:12;376:544;479:6;487;495;503;511;564:3;552:9;543:7;539:23;535:33;532:53;;;581:1;578;571:12;532:53;604:40;634:9;604:40;:::i;:::-;594:50;;663:49;708:2;697:9;693:18;663:49;:::i;:::-;653:59;;731:48;775:2;764:9;760:18;731:48;:::i;:::-;721:58;;798:48;842:2;831:9;827:18;798:48;:::i;:::-;788:58;;865:49;909:3;898:9;894:19;865:49;:::i;:::-;855:59;;376:544;;;;;;;;:::o;:::-;956:14847:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@PANGOLIN_STAKING_POSITIONS_9507":{"entryPoint":null,"id":9507,"parameterSlots":0,"returnSlots":0},"@PROPOSAL_THRESHOLD_9495":{"entryPoint":null,"id":9495,"parameterSlots":0,"returnSlots":0},"@PROPOSAL_THRESHOLD_MAX_9499":{"entryPoint":null,"id":9499,"parameterSlots":0,"returnSlots":0},"@PROPOSAL_THRESHOLD_MIN_9497":{"entryPoint":null,"id":9497,"parameterSlots":0,"returnSlots":0},"@TIMELOCK_9503":{"entryPoint":null,"id":9503,"parameterSlots":0,"returnSlots":0},"@VOTING_DELAY_9488":{"entryPoint":null,"id":9488,"parameterSlots":0,"returnSlots":0},"@VOTING_PERIOD_9492":{"entryPoint":null,"id":9492,"parameterSlots":0,"returnSlots":0},"@__acceptAdmin_10491":{"entryPoint":6125,"id":10491,"parameterSlots":0,"returnSlots":0},"@__setProposalThreshold_10530":{"entryPoint":6242,"id":10530,"parameterSlots":1,"returnSlots":0},"@__setVotingDelay_10569":{"entryPoint":7343,"id":10569,"parameterSlots":1,"returnSlots":0},"@__setVotingPeriod_10608":{"entryPoint":2811,"id":10608,"parameterSlots":1,"returnSlots":0},"@_getNftValueAt_10482":{"entryPoint":7807,"id":10482,"parameterSlots":2,"returnSlots":1},"@_queueOrRevert_10230":{"entryPoint":8416,"id":10230,"parameterSlots":5,"returnSlots":0},"@_state_10412":{"entryPoint":8079,"id":10412,"parameterSlots":1,"returnSlots":1},"@_verifyOwnership_10442":{"entryPoint":7576,"id":10442,"parameterSlots":1,"returnSlots":0},"@cancel_9997":{"entryPoint":3944,"id":9997,"parameterSlots":1,"returnSlots":0},"@castVote_10098":{"entryPoint":6592,"id":10098,"parameterSlots":3,"returnSlots":0},"@execute_10316":{"entryPoint":5397,"id":10316,"parameterSlots":1,"returnSlots":0},"@getActions_10425":{"entryPoint":3247,"id":10425,"parameterSlots":1,"returnSlots":1},"@proposalCount_9510":{"entryPoint":null,"id":9510,"parameterSlots":0,"returnSlots":0},"@proposalTimeout_9535":{"entryPoint":null,"id":9535,"parameterSlots":0,"returnSlots":0},"@proposals_9516":{"entryPoint":null,"id":9516,"parameterSlots":0,"returnSlots":0},"@propose_9926":{"entryPoint":1583,"id":9926,"parameterSlots":6,"returnSlots":1},"@queue_10189":{"entryPoint":4412,"id":10189,"parameterSlots":1,"returnSlots":0},"@receipts_9530":{"entryPoint":null,"id":9530,"parameterSlots":0,"returnSlots":0},"@state_10331":{"entryPoint":3067,"id":10331,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn":{"entryPoint":9473,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_bytes_dyn":{"entryPoint":9944,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_string_dyn":{"entryPoint":9816,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint256_dyn":{"entryPoint":9589,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_string":{"entryPoint":9720,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_string":{"entryPoint":9777,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_RewardSummations_fromMemory":{"entryPoint":11961,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":11921,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptrt_uint256":{"entryPoint":10093,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":12282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":11768,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Position_$10634_memory_ptr_fromMemory":{"entryPoint":12031,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":10872,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":11129,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint40":{"entryPoint":10311,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint64":{"entryPoint":10374,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint64t_boolt_uint256":{"entryPoint":11003,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint64t_uint256":{"entryPoint":10897,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint96":{"entryPoint":10960,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint160_fromMemory":{"entryPoint":11950,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint48_fromMemory":{"entryPoint":12009,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":10350,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_string_dyn":{"entryPoint":10610,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_uint256_dyn":{"entryPoint":10463,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":10566,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_storage":{"entryPoint":11529,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__fromStack_reversed":{"entryPoint":12224,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":11684,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bool_t_bool_t_uint96__to_t_bool_t_bool_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPangolinStakingPositions_$10650__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ITimelock_$10726__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_ProposalState_$9544__to_t_uint8__fromStack_reversed":{"entryPoint":10423,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ProposalAction_$9586_memory_ptr__to_t_struct$_ProposalAction_$9586_memory_ptr__fromStack_reversed":{"entryPoint":10695,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint96_t_uint96_t_uint40_t_uint40_t_uint40_t_bool_t_bool__to_t_uint256_t_uint96_t_uint96_t_uint40_t_uint40_t_uint40_t_bool_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint40__to_t_uint40__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint40_t_uint40_t_string_memory_ptr__to_t_uint64_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint40_t_uint40_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11218,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_uint64_t_bool_t_uint96__to_t_uint64_t_bool_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint64_t_uint40__to_t_uint64_t_uint40__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_uint40":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":9367,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_4403":{"entryPoint":9326,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_array_address_dyn":{"entryPoint":9416,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_string":{"entryPoint":9680,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11483,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint40":{"entryPoint":11088,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint96":{"entryPoint":11887,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint40":{"entryPoint":11154,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":12311,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":12386,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":10522,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":11425,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":11192,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":11066,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":10401,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11507,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9304,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":9452,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":10989,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint96":{"entryPoint":10939,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:29450:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"66:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:60"},"nodeType":"YulFunctionCall","src":"56:88:60"},"nodeType":"YulExpressionStatement","src":"56:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"160:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"163:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"153:6:60"},"nodeType":"YulFunctionCall","src":"153:15:60"},"nodeType":"YulExpressionStatement","src":"153:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"184:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"187:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"177:6:60"},"nodeType":"YulFunctionCall","src":"177:15:60"},"nodeType":"YulExpressionStatement","src":"177:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:184:60"},{"body":{"nodeType":"YulBlock","src":"249:211:60","statements":[{"nodeType":"YulAssignment","src":"259:21:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"275:4:60","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"269:5:60"},"nodeType":"YulFunctionCall","src":"269:11:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"259:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"289:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"311:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"319:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"307:3:60"},"nodeType":"YulFunctionCall","src":"307:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"293:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"399:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"401:16:60"},"nodeType":"YulFunctionCall","src":"401:18:60"},"nodeType":"YulExpressionStatement","src":"401:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"342:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"354:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"339:2:60"},"nodeType":"YulFunctionCall","src":"339:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"378:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"390:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"375:2:60"},"nodeType":"YulFunctionCall","src":"375:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"336:2:60"},"nodeType":"YulFunctionCall","src":"336:62:60"},"nodeType":"YulIf","src":"333:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:4:60","type":"","value":"0x40"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"443:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"430:6:60"},"nodeType":"YulFunctionCall","src":"430:24:60"},"nodeType":"YulExpressionStatement","src":"430:24:60"}]},"name":"allocate_memory_4403","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"238:6:60","type":""}],"src":"203:257:60"},{"body":{"nodeType":"YulBlock","src":"510:289:60","statements":[{"nodeType":"YulAssignment","src":"520:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"536:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"530:5:60"},"nodeType":"YulFunctionCall","src":"530:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"520:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"548:117:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"570:6:60"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"586:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"592:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"582:3:60"},"nodeType":"YulFunctionCall","src":"582:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"597:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"578:3:60"},"nodeType":"YulFunctionCall","src":"578:86:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"566:3:60"},"nodeType":"YulFunctionCall","src":"566:99:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"552:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"740:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"742:16:60"},"nodeType":"YulFunctionCall","src":"742:18:60"},"nodeType":"YulExpressionStatement","src":"742:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"683:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"695:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"680:2:60"},"nodeType":"YulFunctionCall","src":"680:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"719:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"731:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"716:2:60"},"nodeType":"YulFunctionCall","src":"716:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"677:2:60"},"nodeType":"YulFunctionCall","src":"677:62:60"},"nodeType":"YulIf","src":"674:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"778:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"782:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"771:6:60"},"nodeType":"YulFunctionCall","src":"771:22:60"},"nodeType":"YulExpressionStatement","src":"771:22:60"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"490:4:60","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"499:6:60","type":""}],"src":"465:334:60"},{"body":{"nodeType":"YulBlock","src":"873:114:60","statements":[{"body":{"nodeType":"YulBlock","src":"917:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"919:16:60"},"nodeType":"YulFunctionCall","src":"919:18:60"},"nodeType":"YulExpressionStatement","src":"919:18:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"889:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"897:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"886:2:60"},"nodeType":"YulFunctionCall","src":"886:30:60"},"nodeType":"YulIf","src":"883:56:60"},{"nodeType":"YulAssignment","src":"948:33:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"964:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"967:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"960:3:60"},"nodeType":"YulFunctionCall","src":"960:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"976:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"956:3:60"},"nodeType":"YulFunctionCall","src":"956:25:60"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"948:4:60"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"853:6:60","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"864:4:60","type":""}],"src":"804:183:60"},{"body":{"nodeType":"YulBlock","src":"1037:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"1124:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1133:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1136:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1126:6:60"},"nodeType":"YulFunctionCall","src":"1126:12:60"},"nodeType":"YulExpressionStatement","src":"1126:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1060:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1071:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1078:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1067:3:60"},"nodeType":"YulFunctionCall","src":"1067:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1057:2:60"},"nodeType":"YulFunctionCall","src":"1057:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1050:6:60"},"nodeType":"YulFunctionCall","src":"1050:73:60"},"nodeType":"YulIf","src":"1047:93:60"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1026:5:60","type":""}],"src":"992:154:60"},{"body":{"nodeType":"YulBlock","src":"1215:673:60","statements":[{"body":{"nodeType":"YulBlock","src":"1264:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1273:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1276:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1266:6:60"},"nodeType":"YulFunctionCall","src":"1266:12:60"},"nodeType":"YulExpressionStatement","src":"1266:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1243:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1251:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1239:3:60"},"nodeType":"YulFunctionCall","src":"1239:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"1258:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1235:3:60"},"nodeType":"YulFunctionCall","src":"1235:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1228:6:60"},"nodeType":"YulFunctionCall","src":"1228:35:60"},"nodeType":"YulIf","src":"1225:55:60"},{"nodeType":"YulVariableDeclaration","src":"1289:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1312:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1299:12:60"},"nodeType":"YulFunctionCall","src":"1299:20:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1293:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1328:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1338:4:60","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1332:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1351:71:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1418:2:60"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"1378:39:60"},"nodeType":"YulFunctionCall","src":"1378:43:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1362:15:60"},"nodeType":"YulFunctionCall","src":"1362:60:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1355:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1431:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"1444:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1435:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1463:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1468:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1456:6:60"},"nodeType":"YulFunctionCall","src":"1456:15:60"},"nodeType":"YulExpressionStatement","src":"1456:15:60"},{"nodeType":"YulAssignment","src":"1480:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1491:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1496:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1487:3:60"},"nodeType":"YulFunctionCall","src":"1487:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1480:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"1508:46:60","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1530:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1542:1:60","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1545:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1538:3:60"},"nodeType":"YulFunctionCall","src":"1538:10:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1526:3:60"},"nodeType":"YulFunctionCall","src":"1526:23:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1551:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1522:3:60"},"nodeType":"YulFunctionCall","src":"1522:32:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1512:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1582:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1591:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1594:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1584:6:60"},"nodeType":"YulFunctionCall","src":"1584:12:60"},"nodeType":"YulExpressionStatement","src":"1584:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1569:6:60"},{"name":"end","nodeType":"YulIdentifier","src":"1577:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1566:2:60"},"nodeType":"YulFunctionCall","src":"1566:15:60"},"nodeType":"YulIf","src":"1563:35:60"},{"nodeType":"YulVariableDeclaration","src":"1607:26:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1622:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1630:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1618:3:60"},"nodeType":"YulFunctionCall","src":"1618:15:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1611:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:161:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1712:30:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1738:3:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1725:12:60"},"nodeType":"YulFunctionCall","src":"1725:17:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1716:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1780:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1755:24:60"},"nodeType":"YulFunctionCall","src":"1755:31:60"},"nodeType":"YulExpressionStatement","src":"1755:31:60"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1806:3:60"},{"name":"value","nodeType":"YulIdentifier","src":"1811:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1799:6:60"},"nodeType":"YulFunctionCall","src":"1799:18:60"},"nodeType":"YulExpressionStatement","src":"1799:18:60"},{"nodeType":"YulAssignment","src":"1830:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1841:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1846:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1837:3:60"},"nodeType":"YulFunctionCall","src":"1837:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1830:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1653:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1658:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1650:2:60"},"nodeType":"YulFunctionCall","src":"1650:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1666:23:60","statements":[{"nodeType":"YulAssignment","src":"1668:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1679:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1684:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1675:3:60"},"nodeType":"YulFunctionCall","src":"1675:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1668:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1646:3:60","statements":[]},"src":"1642:217:60"},{"nodeType":"YulAssignment","src":"1868:14:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1877:5:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1868:5:60"}]}]},"name":"abi_decode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1189:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"1197:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1205:5:60","type":""}],"src":"1151:737:60"},{"body":{"nodeType":"YulBlock","src":"1957:598:60","statements":[{"body":{"nodeType":"YulBlock","src":"2006:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2015:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2018:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2008:6:60"},"nodeType":"YulFunctionCall","src":"2008:12:60"},"nodeType":"YulExpressionStatement","src":"2008:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1985:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1993:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:60"},"nodeType":"YulFunctionCall","src":"1981:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"2000:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1977:3:60"},"nodeType":"YulFunctionCall","src":"1977:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1970:6:60"},"nodeType":"YulFunctionCall","src":"1970:35:60"},"nodeType":"YulIf","src":"1967:55:60"},{"nodeType":"YulVariableDeclaration","src":"2031:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2054:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2041:12:60"},"nodeType":"YulFunctionCall","src":"2041:20:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2035:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2070:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2080:4:60","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2074:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2093:71:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2160:2:60"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"2120:39:60"},"nodeType":"YulFunctionCall","src":"2120:43:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2104:15:60"},"nodeType":"YulFunctionCall","src":"2104:60:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2097:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2173:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"2186:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2177:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2205:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2210:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2198:6:60"},"nodeType":"YulFunctionCall","src":"2198:15:60"},"nodeType":"YulExpressionStatement","src":"2198:15:60"},{"nodeType":"YulAssignment","src":"2222:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2233:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2238:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2229:3:60"},"nodeType":"YulFunctionCall","src":"2229:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2222:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"2250:46:60","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2272:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2284:1:60","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"2287:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2280:3:60"},"nodeType":"YulFunctionCall","src":"2280:10:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2268:3:60"},"nodeType":"YulFunctionCall","src":"2268:23:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2293:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2264:3:60"},"nodeType":"YulFunctionCall","src":"2264:32:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2254:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2324:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2333:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2336:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2326:6:60"},"nodeType":"YulFunctionCall","src":"2326:12:60"},"nodeType":"YulExpressionStatement","src":"2326:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2311:6:60"},{"name":"end","nodeType":"YulIdentifier","src":"2319:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2308:2:60"},"nodeType":"YulFunctionCall","src":"2308:15:60"},"nodeType":"YulIf","src":"2305:35:60"},{"nodeType":"YulVariableDeclaration","src":"2349:26:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2364:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2372:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2360:3:60"},"nodeType":"YulFunctionCall","src":"2360:15:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2353:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2440:86:60","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2461:3:60"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2479:3:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2466:12:60"},"nodeType":"YulFunctionCall","src":"2466:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2454:6:60"},"nodeType":"YulFunctionCall","src":"2454:30:60"},"nodeType":"YulExpressionStatement","src":"2454:30:60"},{"nodeType":"YulAssignment","src":"2497:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2508:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2513:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2504:3:60"},"nodeType":"YulFunctionCall","src":"2504:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2497:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2395:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2400:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2392:2:60"},"nodeType":"YulFunctionCall","src":"2392:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2408:23:60","statements":[{"nodeType":"YulAssignment","src":"2410:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2421:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2426:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2417:3:60"},"nodeType":"YulFunctionCall","src":"2417:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2410:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2388:3:60","statements":[]},"src":"2384:142:60"},{"nodeType":"YulAssignment","src":"2535:14:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2544:5:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2535:5:60"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1931:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"1939:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1947:5:60","type":""}],"src":"1893:662:60"},{"body":{"nodeType":"YulBlock","src":"2618:188:60","statements":[{"body":{"nodeType":"YulBlock","src":"2662:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2664:16:60"},"nodeType":"YulFunctionCall","src":"2664:18:60"},"nodeType":"YulExpressionStatement","src":"2664:18:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2634:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2642:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2631:2:60"},"nodeType":"YulFunctionCall","src":"2631:30:60"},"nodeType":"YulIf","src":"2628:56:60"},{"nodeType":"YulAssignment","src":"2693:107:60","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2713:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2721:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2709:3:60"},"nodeType":"YulFunctionCall","src":"2709:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"2726:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2705:3:60"},"nodeType":"YulFunctionCall","src":"2705:88:60"},{"kind":"number","nodeType":"YulLiteral","src":"2795:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2701:3:60"},"nodeType":"YulFunctionCall","src":"2701:99:60"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"2693:4:60"}]}]},"name":"array_allocation_size_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"2598:6:60","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"2609:4:60","type":""}],"src":"2560:246:60"},{"body":{"nodeType":"YulBlock","src":"2886:263:60","statements":[{"nodeType":"YulAssignment","src":"2896:62:60","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2950:6:60"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"2921:28:60"},"nodeType":"YulFunctionCall","src":"2921:36:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2905:15:60"},"nodeType":"YulFunctionCall","src":"2905:53:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2896:5:60"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"2974:5:60"},{"name":"length","nodeType":"YulIdentifier","src":"2981:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2967:6:60"},"nodeType":"YulFunctionCall","src":"2967:21:60"},"nodeType":"YulExpressionStatement","src":"2967:21:60"},{"body":{"nodeType":"YulBlock","src":"3026:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3035:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3038:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3028:6:60"},"nodeType":"YulFunctionCall","src":"3028:12:60"},"nodeType":"YulExpressionStatement","src":"3028:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3007:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"3012:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3003:3:60"},"nodeType":"YulFunctionCall","src":"3003:16:60"},{"name":"end","nodeType":"YulIdentifier","src":"3021:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3000:2:60"},"nodeType":"YulFunctionCall","src":"3000:25:60"},"nodeType":"YulIf","src":"2997:45:60"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3068:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"3075:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3064:3:60"},"nodeType":"YulFunctionCall","src":"3064:16:60"},{"name":"src","nodeType":"YulIdentifier","src":"3082:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"3087:6:60"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3051:12:60"},"nodeType":"YulFunctionCall","src":"3051:43:60"},"nodeType":"YulExpressionStatement","src":"3051:43:60"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3118:5:60"},{"name":"length","nodeType":"YulIdentifier","src":"3125:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3114:3:60"},"nodeType":"YulFunctionCall","src":"3114:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3134:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3110:3:60"},"nodeType":"YulFunctionCall","src":"3110:29:60"},{"kind":"number","nodeType":"YulLiteral","src":"3141:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3103:6:60"},"nodeType":"YulFunctionCall","src":"3103:40:60"},"nodeType":"YulExpressionStatement","src":"3103:40:60"}]},"name":"abi_decode_available_length_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2855:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"2860:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"2868:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2876:5:60","type":""}],"src":"2811:338:60"},{"body":{"nodeType":"YulBlock","src":"3207:169:60","statements":[{"body":{"nodeType":"YulBlock","src":"3256:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3265:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3268:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3258:6:60"},"nodeType":"YulFunctionCall","src":"3258:12:60"},"nodeType":"YulExpressionStatement","src":"3258:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3235:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3243:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3231:3:60"},"nodeType":"YulFunctionCall","src":"3231:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"3250:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3227:3:60"},"nodeType":"YulFunctionCall","src":"3227:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3220:6:60"},"nodeType":"YulFunctionCall","src":"3220:35:60"},"nodeType":"YulIf","src":"3217:55:60"},{"nodeType":"YulAssignment","src":"3281:89:60","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3329:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3337:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3325:3:60"},"nodeType":"YulFunctionCall","src":"3325:17:60"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3357:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3344:12:60"},"nodeType":"YulFunctionCall","src":"3344:20:60"},{"name":"end","nodeType":"YulIdentifier","src":"3366:3:60"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"3290:34:60"},"nodeType":"YulFunctionCall","src":"3290:80:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3281:5:60"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3181:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"3189:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3197:5:60","type":""}],"src":"3154:222:60"},{"body":{"nodeType":"YulBlock","src":"3444:825:60","statements":[{"body":{"nodeType":"YulBlock","src":"3493:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3502:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3505:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3495:6:60"},"nodeType":"YulFunctionCall","src":"3495:12:60"},"nodeType":"YulExpressionStatement","src":"3495:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3472:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3480:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3468:3:60"},"nodeType":"YulFunctionCall","src":"3468:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"3487:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3464:3:60"},"nodeType":"YulFunctionCall","src":"3464:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3457:6:60"},"nodeType":"YulFunctionCall","src":"3457:35:60"},"nodeType":"YulIf","src":"3454:55:60"},{"nodeType":"YulVariableDeclaration","src":"3518:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3541:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3528:12:60"},"nodeType":"YulFunctionCall","src":"3528:20:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3522:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3557:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3567:4:60","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3561:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3580:71:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3647:2:60"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"3607:39:60"},"nodeType":"YulFunctionCall","src":"3607:43:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3591:15:60"},"nodeType":"YulFunctionCall","src":"3591:60:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"3584:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3660:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"3673:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"3664:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3692:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3697:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3685:6:60"},"nodeType":"YulFunctionCall","src":"3685:15:60"},"nodeType":"YulExpressionStatement","src":"3685:15:60"},{"nodeType":"YulAssignment","src":"3709:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3720:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"3725:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3716:3:60"},"nodeType":"YulFunctionCall","src":"3716:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3709:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"3737:46:60","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3759:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3771:1:60","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"3774:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3767:3:60"},"nodeType":"YulFunctionCall","src":"3767:10:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3755:3:60"},"nodeType":"YulFunctionCall","src":"3755:23:60"},{"name":"_2","nodeType":"YulIdentifier","src":"3780:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3751:3:60"},"nodeType":"YulFunctionCall","src":"3751:32:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"3741:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3811:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3820:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3823:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3813:6:60"},"nodeType":"YulFunctionCall","src":"3813:12:60"},"nodeType":"YulExpressionStatement","src":"3813:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"3798:6:60"},{"name":"end","nodeType":"YulIdentifier","src":"3806:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3795:2:60"},"nodeType":"YulFunctionCall","src":"3795:15:60"},"nodeType":"YulIf","src":"3792:35:60"},{"nodeType":"YulVariableDeclaration","src":"3836:26:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3851:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"3859:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3847:3:60"},"nodeType":"YulFunctionCall","src":"3847:15:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"3840:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3927:313:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3941:36:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3973:3:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3960:12:60"},"nodeType":"YulFunctionCall","src":"3960:17:60"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"3945:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4041:74:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4059:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4069:1:60","type":"","value":"0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4063:2:60","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4094:2:60"},{"name":"_3","nodeType":"YulIdentifier","src":"4098:2:60"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4087:6:60"},"nodeType":"YulFunctionCall","src":"4087:14:60"},"nodeType":"YulExpressionStatement","src":"4087:14:60"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"3996:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"4009:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3993:2:60"},"nodeType":"YulFunctionCall","src":"3993:35:60"},"nodeType":"YulIf","src":"3990:125:60"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4135:3:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4166:6:60"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"4174:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:60"},"nodeType":"YulFunctionCall","src":"4162:24:60"},{"name":"_2","nodeType":"YulIdentifier","src":"4188:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4158:3:60"},"nodeType":"YulFunctionCall","src":"4158:33:60"},{"name":"end","nodeType":"YulIdentifier","src":"4193:3:60"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"4140:17:60"},"nodeType":"YulFunctionCall","src":"4140:57:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4128:6:60"},"nodeType":"YulFunctionCall","src":"4128:70:60"},"nodeType":"YulExpressionStatement","src":"4128:70:60"},{"nodeType":"YulAssignment","src":"4211:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4222:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"4227:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4218:3:60"},"nodeType":"YulFunctionCall","src":"4218:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4211:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3882:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"3887:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3879:2:60"},"nodeType":"YulFunctionCall","src":"3879:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3895:23:60","statements":[{"nodeType":"YulAssignment","src":"3897:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3908:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"3913:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3904:3:60"},"nodeType":"YulFunctionCall","src":"3904:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3897:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"3875:3:60","statements":[]},"src":"3871:369:60"},{"nodeType":"YulAssignment","src":"4249:14:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"4258:5:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"4249:5:60"}]}]},"name":"abi_decode_array_string_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3418:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"3426:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3434:5:60","type":""}],"src":"3381:888:60"},{"body":{"nodeType":"YulBlock","src":"4336:1026:60","statements":[{"body":{"nodeType":"YulBlock","src":"4385:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4394:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4397:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4387:6:60"},"nodeType":"YulFunctionCall","src":"4387:12:60"},"nodeType":"YulExpressionStatement","src":"4387:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4364:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4372:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4360:3:60"},"nodeType":"YulFunctionCall","src":"4360:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"4379:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4356:3:60"},"nodeType":"YulFunctionCall","src":"4356:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4349:6:60"},"nodeType":"YulFunctionCall","src":"4349:35:60"},"nodeType":"YulIf","src":"4346:55:60"},{"nodeType":"YulVariableDeclaration","src":"4410:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4433:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4420:12:60"},"nodeType":"YulFunctionCall","src":"4420:20:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4414:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4449:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4459:4:60","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4453:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4472:71:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4539:2:60"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"4499:39:60"},"nodeType":"YulFunctionCall","src":"4499:43:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4483:15:60"},"nodeType":"YulFunctionCall","src":"4483:60:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"4476:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4552:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"4565:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"4556:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4584:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4589:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4577:6:60"},"nodeType":"YulFunctionCall","src":"4577:15:60"},"nodeType":"YulExpressionStatement","src":"4577:15:60"},{"nodeType":"YulAssignment","src":"4601:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"4612:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"4617:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4608:3:60"},"nodeType":"YulFunctionCall","src":"4608:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"4601:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"4629:46:60","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4651:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4663:1:60","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"4666:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4659:3:60"},"nodeType":"YulFunctionCall","src":"4659:10:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4647:3:60"},"nodeType":"YulFunctionCall","src":"4647:23:60"},{"name":"_2","nodeType":"YulIdentifier","src":"4672:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4643:3:60"},"nodeType":"YulFunctionCall","src":"4643:32:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"4633:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4703:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4712:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4715:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4705:6:60"},"nodeType":"YulFunctionCall","src":"4705:12:60"},"nodeType":"YulExpressionStatement","src":"4705:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"4690:6:60"},{"name":"end","nodeType":"YulIdentifier","src":"4698:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4687:2:60"},"nodeType":"YulFunctionCall","src":"4687:15:60"},"nodeType":"YulIf","src":"4684:35:60"},{"nodeType":"YulVariableDeclaration","src":"4728:26:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4743:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"4751:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4739:3:60"},"nodeType":"YulFunctionCall","src":"4739:15:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"4732:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4819:514:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4833:36:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4865:3:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4852:12:60"},"nodeType":"YulFunctionCall","src":"4852:17:60"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"4837:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4933:74:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4951:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4961:1:60","type":"","value":"0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4955:2:60","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4986:2:60"},{"name":"_3","nodeType":"YulIdentifier","src":"4990:2:60"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4979:6:60"},"nodeType":"YulFunctionCall","src":"4979:14:60"},"nodeType":"YulExpressionStatement","src":"4979:14:60"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"4888:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"4901:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4885:2:60"},"nodeType":"YulFunctionCall","src":"4885:35:60"},"nodeType":"YulIf","src":"4882:125:60"},{"nodeType":"YulVariableDeclaration","src":"5020:34:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5034:6:60"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"5042:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5030:3:60"},"nodeType":"YulFunctionCall","src":"5030:24:60"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5024:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5112:74:60","statements":[{"nodeType":"YulVariableDeclaration","src":"5130:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"5140:1:60","type":"","value":"0"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"5134:2:60","type":""}]},{"expression":{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"5165:2:60"},{"name":"_5","nodeType":"YulIdentifier","src":"5169:2:60"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5158:6:60"},"nodeType":"YulFunctionCall","src":"5158:14:60"},"nodeType":"YulExpressionStatement","src":"5158:14:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"5085:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"5089:2:60","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5081:3:60"},"nodeType":"YulFunctionCall","src":"5081:11:60"},{"name":"end","nodeType":"YulIdentifier","src":"5094:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5077:3:60"},"nodeType":"YulFunctionCall","src":"5077:21:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5070:6:60"},"nodeType":"YulFunctionCall","src":"5070:29:60"},"nodeType":"YulIf","src":"5067:119:60"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5206:3:60"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"5250:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"5254:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5246:3:60"},"nodeType":"YulFunctionCall","src":"5246:11:60"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"5276:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"5280:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5272:3:60"},"nodeType":"YulFunctionCall","src":"5272:11:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5259:12:60"},"nodeType":"YulFunctionCall","src":"5259:25:60"},{"name":"end","nodeType":"YulIdentifier","src":"5286:3:60"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"5211:34:60"},"nodeType":"YulFunctionCall","src":"5211:79:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5199:6:60"},"nodeType":"YulFunctionCall","src":"5199:92:60"},"nodeType":"YulExpressionStatement","src":"5199:92:60"},{"nodeType":"YulAssignment","src":"5304:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5315:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"5320:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5311:3:60"},"nodeType":"YulFunctionCall","src":"5311:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5304:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4774:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"4779:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4771:2:60"},"nodeType":"YulFunctionCall","src":"4771:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4787:23:60","statements":[{"nodeType":"YulAssignment","src":"4789:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4800:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"4805:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4796:3:60"},"nodeType":"YulFunctionCall","src":"4796:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"4789:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"4767:3:60","statements":[]},"src":"4763:570:60"},{"nodeType":"YulAssignment","src":"5342:14:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"5351:5:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"5342:5:60"}]}]},"name":"abi_decode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4310:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"4318:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"4326:5:60","type":""}],"src":"4274:1088:60"},{"body":{"nodeType":"YulBlock","src":"5651:1050:60","statements":[{"body":{"nodeType":"YulBlock","src":"5698:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5707:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5710:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5700:6:60"},"nodeType":"YulFunctionCall","src":"5700:12:60"},"nodeType":"YulExpressionStatement","src":"5700:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5672:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5681:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5668:3:60"},"nodeType":"YulFunctionCall","src":"5668:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5693:3:60","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5664:3:60"},"nodeType":"YulFunctionCall","src":"5664:33:60"},"nodeType":"YulIf","src":"5661:53:60"},{"nodeType":"YulVariableDeclaration","src":"5723:37:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5750:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5737:12:60"},"nodeType":"YulFunctionCall","src":"5737:23:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5727:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5769:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"5779:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5773:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5824:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5833:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5836:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5826:6:60"},"nodeType":"YulFunctionCall","src":"5826:12:60"},"nodeType":"YulExpressionStatement","src":"5826:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5812:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5820:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5809:2:60"},"nodeType":"YulFunctionCall","src":"5809:14:60"},"nodeType":"YulIf","src":"5806:34:60"},{"nodeType":"YulAssignment","src":"5849:71:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5892:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"5903:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5888:3:60"},"nodeType":"YulFunctionCall","src":"5888:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5912:7:60"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"5859:28:60"},"nodeType":"YulFunctionCall","src":"5859:61:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5849:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"5929:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5962:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5973:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5958:3:60"},"nodeType":"YulFunctionCall","src":"5958:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5945:12:60"},"nodeType":"YulFunctionCall","src":"5945:32:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5933:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6006:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6015:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6018:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6008:6:60"},"nodeType":"YulFunctionCall","src":"6008:12:60"},"nodeType":"YulExpressionStatement","src":"6008:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5992:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6002:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5989:2:60"},"nodeType":"YulFunctionCall","src":"5989:16:60"},"nodeType":"YulIf","src":"5986:36:60"},{"nodeType":"YulAssignment","src":"6031:73:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6074:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6085:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6070:3:60"},"nodeType":"YulFunctionCall","src":"6070:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6096:7:60"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"6041:28:60"},"nodeType":"YulFunctionCall","src":"6041:63:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6031:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6113:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6146:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6157:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6142:3:60"},"nodeType":"YulFunctionCall","src":"6142:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6129:12:60"},"nodeType":"YulFunctionCall","src":"6129:32:60"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"6117:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6190:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6199:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6202:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6192:6:60"},"nodeType":"YulFunctionCall","src":"6192:12:60"},"nodeType":"YulExpressionStatement","src":"6192:12:60"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"6176:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6186:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6173:2:60"},"nodeType":"YulFunctionCall","src":"6173:16:60"},"nodeType":"YulIf","src":"6170:36:60"},{"nodeType":"YulAssignment","src":"6215:72:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6257:9:60"},{"name":"offset_2","nodeType":"YulIdentifier","src":"6268:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6253:3:60"},"nodeType":"YulFunctionCall","src":"6253:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6279:7:60"}],"functionName":{"name":"abi_decode_array_string_dyn","nodeType":"YulIdentifier","src":"6225:27:60"},"nodeType":"YulFunctionCall","src":"6225:62:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6215:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6296:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6329:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6340:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6325:3:60"},"nodeType":"YulFunctionCall","src":"6325:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6312:12:60"},"nodeType":"YulFunctionCall","src":"6312:32:60"},"variables":[{"name":"offset_3","nodeType":"YulTypedName","src":"6300:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6373:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6382:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6385:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6375:6:60"},"nodeType":"YulFunctionCall","src":"6375:12:60"},"nodeType":"YulExpressionStatement","src":"6375:12:60"}]},"condition":{"arguments":[{"name":"offset_3","nodeType":"YulIdentifier","src":"6359:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6369:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6356:2:60"},"nodeType":"YulFunctionCall","src":"6356:16:60"},"nodeType":"YulIf","src":"6353:36:60"},{"nodeType":"YulAssignment","src":"6398:71:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6439:9:60"},{"name":"offset_3","nodeType":"YulIdentifier","src":"6450:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6435:3:60"},"nodeType":"YulFunctionCall","src":"6435:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6461:7:60"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"6408:26:60"},"nodeType":"YulFunctionCall","src":"6408:61:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6398:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6478:49:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6511:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6522:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6507:3:60"},"nodeType":"YulFunctionCall","src":"6507:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6494:12:60"},"nodeType":"YulFunctionCall","src":"6494:33:60"},"variables":[{"name":"offset_4","nodeType":"YulTypedName","src":"6482:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6556:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6565:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6568:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6558:6:60"},"nodeType":"YulFunctionCall","src":"6558:12:60"},"nodeType":"YulExpressionStatement","src":"6558:12:60"}]},"condition":{"arguments":[{"name":"offset_4","nodeType":"YulIdentifier","src":"6542:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6552:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6539:2:60"},"nodeType":"YulFunctionCall","src":"6539:16:60"},"nodeType":"YulIf","src":"6536:36:60"},{"nodeType":"YulAssignment","src":"6581:62:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6613:9:60"},{"name":"offset_4","nodeType":"YulIdentifier","src":"6624:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6609:3:60"},"nodeType":"YulFunctionCall","src":"6609:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6635:7:60"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"6591:17:60"},"nodeType":"YulFunctionCall","src":"6591:52:60"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6581:6:60"}]},{"nodeType":"YulAssignment","src":"6652:43:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6679:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6690:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6675:3:60"},"nodeType":"YulFunctionCall","src":"6675:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6662:12:60"},"nodeType":"YulFunctionCall","src":"6662:33:60"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6652:6:60"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5577:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5588:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5600:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5608:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5616:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5624:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5632:6:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5640:6:60","type":""}],"src":"5367:1334:60"},{"body":{"nodeType":"YulBlock","src":"6805:101:60","statements":[{"nodeType":"YulAssignment","src":"6815:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6827:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6838:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6823:3:60"},"nodeType":"YulFunctionCall","src":"6823:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6815:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6857:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6872:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6880:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6868:3:60"},"nodeType":"YulFunctionCall","src":"6868:31:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6850:6:60"},"nodeType":"YulFunctionCall","src":"6850:50:60"},"nodeType":"YulExpressionStatement","src":"6850:50:60"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6774:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6785:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6796:4:60","type":""}],"src":"6706:200:60"},{"body":{"nodeType":"YulBlock","src":"7047:125:60","statements":[{"nodeType":"YulAssignment","src":"7057:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7069:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7080:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7065:3:60"},"nodeType":"YulFunctionCall","src":"7065:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7057:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7099:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7114:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7122:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7110:3:60"},"nodeType":"YulFunctionCall","src":"7110:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7092:6:60"},"nodeType":"YulFunctionCall","src":"7092:74:60"},"nodeType":"YulExpressionStatement","src":"7092:74:60"}]},"name":"abi_encode_tuple_t_contract$_IPangolinStakingPositions_$10650__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7016:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7027:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7038:4:60","type":""}],"src":"6911:261:60"},{"body":{"nodeType":"YulBlock","src":"7276:109:60","statements":[{"nodeType":"YulAssignment","src":"7286:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7298:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7309:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7294:3:60"},"nodeType":"YulFunctionCall","src":"7294:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7286:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7328:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7343:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7351:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7339:3:60"},"nodeType":"YulFunctionCall","src":"7339:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7321:6:60"},"nodeType":"YulFunctionCall","src":"7321:58:60"},"nodeType":"YulExpressionStatement","src":"7321:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7245:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7256:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7267:4:60","type":""}],"src":"7177:208:60"},{"body":{"nodeType":"YulBlock","src":"7459:209:60","statements":[{"body":{"nodeType":"YulBlock","src":"7505:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7514:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7517:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7507:6:60"},"nodeType":"YulFunctionCall","src":"7507:12:60"},"nodeType":"YulExpressionStatement","src":"7507:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7480:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"7489:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7476:3:60"},"nodeType":"YulFunctionCall","src":"7476:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"7501:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7472:3:60"},"nodeType":"YulFunctionCall","src":"7472:32:60"},"nodeType":"YulIf","src":"7469:52:60"},{"nodeType":"YulVariableDeclaration","src":"7530:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7556:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7543:12:60"},"nodeType":"YulFunctionCall","src":"7543:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7534:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"7622:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7631:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7634:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7624:6:60"},"nodeType":"YulFunctionCall","src":"7624:12:60"},"nodeType":"YulExpressionStatement","src":"7624:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7588:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7599:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7606:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7595:3:60"},"nodeType":"YulFunctionCall","src":"7595:24:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7585:2:60"},"nodeType":"YulFunctionCall","src":"7585:35:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7578:6:60"},"nodeType":"YulFunctionCall","src":"7578:43:60"},"nodeType":"YulIf","src":"7575:63:60"},{"nodeType":"YulAssignment","src":"7647:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"7657:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7647:6:60"}]}]},"name":"abi_decode_tuple_t_uint40","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7425:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7436:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7448:6:60","type":""}],"src":"7390:278:60"},{"body":{"nodeType":"YulBlock","src":"7721:123:60","statements":[{"nodeType":"YulAssignment","src":"7731:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7753:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7740:12:60"},"nodeType":"YulFunctionCall","src":"7740:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"7731:5:60"}]},{"body":{"nodeType":"YulBlock","src":"7822:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7831:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7834:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7824:6:60"},"nodeType":"YulFunctionCall","src":"7824:12:60"},"nodeType":"YulExpressionStatement","src":"7824:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7782:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7793:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7800:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7789:3:60"},"nodeType":"YulFunctionCall","src":"7789:30:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7779:2:60"},"nodeType":"YulFunctionCall","src":"7779:41:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7772:6:60"},"nodeType":"YulFunctionCall","src":"7772:49:60"},"nodeType":"YulIf","src":"7769:69:60"}]},"name":"abi_decode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7700:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"7711:5:60","type":""}],"src":"7673:171:60"},{"body":{"nodeType":"YulBlock","src":"7918:115:60","statements":[{"body":{"nodeType":"YulBlock","src":"7964:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7973:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7976:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7966:6:60"},"nodeType":"YulFunctionCall","src":"7966:12:60"},"nodeType":"YulExpressionStatement","src":"7966:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7939:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"7948:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7935:3:60"},"nodeType":"YulFunctionCall","src":"7935:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"7960:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7931:3:60"},"nodeType":"YulFunctionCall","src":"7931:32:60"},"nodeType":"YulIf","src":"7928:52:60"},{"nodeType":"YulAssignment","src":"7989:38:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8017:9:60"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"7999:17:60"},"nodeType":"YulFunctionCall","src":"7999:28:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7989:6:60"}]}]},"name":"abi_decode_tuple_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7884:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7895:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7907:6:60","type":""}],"src":"7849:184:60"},{"body":{"nodeType":"YulBlock","src":"8070:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8087:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8090:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8080:6:60"},"nodeType":"YulFunctionCall","src":"8080:88:60"},"nodeType":"YulExpressionStatement","src":"8080:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8184:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8187:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8177:6:60"},"nodeType":"YulFunctionCall","src":"8177:15:60"},"nodeType":"YulExpressionStatement","src":"8177:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8208:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8211:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8201:6:60"},"nodeType":"YulFunctionCall","src":"8201:15:60"},"nodeType":"YulExpressionStatement","src":"8201:15:60"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"8038:184:60"},{"body":{"nodeType":"YulBlock","src":"8344:286:60","statements":[{"nodeType":"YulAssignment","src":"8354:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8366:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8377:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8362:3:60"},"nodeType":"YulFunctionCall","src":"8362:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8354:4:60"}]},{"body":{"nodeType":"YulBlock","src":"8422:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8443:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8446:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8436:6:60"},"nodeType":"YulFunctionCall","src":"8436:88:60"},"nodeType":"YulExpressionStatement","src":"8436:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8544:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8547:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8537:6:60"},"nodeType":"YulFunctionCall","src":"8537:15:60"},"nodeType":"YulExpressionStatement","src":"8537:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8572:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8575:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8565:6:60"},"nodeType":"YulFunctionCall","src":"8565:15:60"},"nodeType":"YulExpressionStatement","src":"8565:15:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8402:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"8410:1:60","type":"","value":"8"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8399:2:60"},"nodeType":"YulFunctionCall","src":"8399:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8392:6:60"},"nodeType":"YulFunctionCall","src":"8392:21:60"},"nodeType":"YulIf","src":"8389:201:60"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8606:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"8617:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8599:6:60"},"nodeType":"YulFunctionCall","src":"8599:25:60"},"nodeType":"YulExpressionStatement","src":"8599:25:60"}]},"name":"abi_encode_tuple_t_enum$_ProposalState_$9544__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8313:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8324:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8335:4:60","type":""}],"src":"8227:403:60"},{"body":{"nodeType":"YulBlock","src":"8678:53:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8695:3:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8704:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"8711:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8700:3:60"},"nodeType":"YulFunctionCall","src":"8700:24:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8688:6:60"},"nodeType":"YulFunctionCall","src":"8688:37:60"},"nodeType":"YulExpressionStatement","src":"8688:37:60"}]},"name":"abi_encode_uint40","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8662:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8669:3:60","type":""}],"src":"8635:96:60"},{"body":{"nodeType":"YulBlock","src":"9011:535:60","statements":[{"nodeType":"YulAssignment","src":"9021:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9033:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9044:3:60","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9029:3:60"},"nodeType":"YulFunctionCall","src":"9029:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9021:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9064:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"9075:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9057:6:60"},"nodeType":"YulFunctionCall","src":"9057:25:60"},"nodeType":"YulExpressionStatement","src":"9057:25:60"},{"nodeType":"YulVariableDeclaration","src":"9091:36:60","value":{"kind":"number","nodeType":"YulLiteral","src":"9101:26:60","type":"","value":"0xffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9095:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9147:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9158:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9143:3:60"},"nodeType":"YulFunctionCall","src":"9143:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9167:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9175:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9163:3:60"},"nodeType":"YulFunctionCall","src":"9163:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9136:6:60"},"nodeType":"YulFunctionCall","src":"9136:43:60"},"nodeType":"YulExpressionStatement","src":"9136:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9199:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9210:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9195:3:60"},"nodeType":"YulFunctionCall","src":"9195:18:60"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9219:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9227:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9215:3:60"},"nodeType":"YulFunctionCall","src":"9215:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9188:6:60"},"nodeType":"YulFunctionCall","src":"9188:43:60"},"nodeType":"YulExpressionStatement","src":"9188:43:60"},{"nodeType":"YulVariableDeclaration","src":"9240:22:60","value":{"kind":"number","nodeType":"YulLiteral","src":"9250:12:60","type":"","value":"0xffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9244:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9282:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9293:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9278:3:60"},"nodeType":"YulFunctionCall","src":"9278:18:60"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9302:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"9310:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9298:3:60"},"nodeType":"YulFunctionCall","src":"9298:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9271:6:60"},"nodeType":"YulFunctionCall","src":"9271:43:60"},"nodeType":"YulExpressionStatement","src":"9271:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9334:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9345:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9330:3:60"},"nodeType":"YulFunctionCall","src":"9330:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"9355:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"9363:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9351:3:60"},"nodeType":"YulFunctionCall","src":"9351:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9323:6:60"},"nodeType":"YulFunctionCall","src":"9323:44:60"},"nodeType":"YulExpressionStatement","src":"9323:44:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9387:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9398:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9383:3:60"},"nodeType":"YulFunctionCall","src":"9383:19:60"},{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"9408:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"9416:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9404:3:60"},"nodeType":"YulFunctionCall","src":"9404:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9376:6:60"},"nodeType":"YulFunctionCall","src":"9376:44:60"},"nodeType":"YulExpressionStatement","src":"9376:44:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9440:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9451:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9436:3:60"},"nodeType":"YulFunctionCall","src":"9436:19:60"},{"arguments":[{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"9471:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9464:6:60"},"nodeType":"YulFunctionCall","src":"9464:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9457:6:60"},"nodeType":"YulFunctionCall","src":"9457:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9429:6:60"},"nodeType":"YulFunctionCall","src":"9429:51:60"},"nodeType":"YulExpressionStatement","src":"9429:51:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9500:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9511:3:60","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9496:3:60"},"nodeType":"YulFunctionCall","src":"9496:19:60"},{"arguments":[{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"9531:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9524:6:60"},"nodeType":"YulFunctionCall","src":"9524:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9517:6:60"},"nodeType":"YulFunctionCall","src":"9517:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9489:6:60"},"nodeType":"YulFunctionCall","src":"9489:51:60"},"nodeType":"YulExpressionStatement","src":"9489:51:60"}]},"name":"abi_encode_tuple_t_uint256_t_uint96_t_uint96_t_uint40_t_uint40_t_uint40_t_bool_t_bool__to_t_uint256_t_uint96_t_uint96_t_uint40_t_uint40_t_uint40_t_bool_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8924:9:60","type":""},{"name":"value7","nodeType":"YulTypedName","src":"8935:6:60","type":""},{"name":"value6","nodeType":"YulTypedName","src":"8943:6:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8951:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8959:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8967:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8975:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8983:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8991:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9002:4:60","type":""}],"src":"8736:810:60"},{"body":{"nodeType":"YulBlock","src":"9612:374:60","statements":[{"nodeType":"YulVariableDeclaration","src":"9622:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9642:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9636:5:60"},"nodeType":"YulFunctionCall","src":"9636:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9626:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9664:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"9669:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9657:6:60"},"nodeType":"YulFunctionCall","src":"9657:19:60"},"nodeType":"YulExpressionStatement","src":"9657:19:60"},{"nodeType":"YulVariableDeclaration","src":"9685:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"9695:4:60","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9689:2:60","type":""}]},{"nodeType":"YulAssignment","src":"9708:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9719:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9724:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9715:3:60"},"nodeType":"YulFunctionCall","src":"9715:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9708:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"9736:28:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9754:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9761:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9750:3:60"},"nodeType":"YulFunctionCall","src":"9750:14:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"9740:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9773:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"9782:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9777:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"9841:120:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9862:3:60"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9873:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9867:5:60"},"nodeType":"YulFunctionCall","src":"9867:13:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9855:6:60"},"nodeType":"YulFunctionCall","src":"9855:26:60"},"nodeType":"YulExpressionStatement","src":"9855:26:60"},{"nodeType":"YulAssignment","src":"9894:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9905:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9910:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9901:3:60"},"nodeType":"YulFunctionCall","src":"9901:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9894:3:60"}]},{"nodeType":"YulAssignment","src":"9926:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9940:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9948:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9936:3:60"},"nodeType":"YulFunctionCall","src":"9936:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"9926:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9803:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"9806:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9800:2:60"},"nodeType":"YulFunctionCall","src":"9800:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9814:18:60","statements":[{"nodeType":"YulAssignment","src":"9816:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9825:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"9828:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9821:3:60"},"nodeType":"YulFunctionCall","src":"9821:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9816:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"9796:3:60","statements":[]},"src":"9792:169:60"},{"nodeType":"YulAssignment","src":"9970:10:60","value":{"name":"pos","nodeType":"YulIdentifier","src":"9977:3:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9970:3:60"}]}]},"name":"abi_encode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9589:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9596:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9604:3:60","type":""}],"src":"9551:435:60"},{"body":{"nodeType":"YulBlock","src":"10044:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"10054:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"10063:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10058:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10123:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10148:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"10153:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10144:3:60"},"nodeType":"YulFunctionCall","src":"10144:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10167:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"10172:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10163:3:60"},"nodeType":"YulFunctionCall","src":"10163:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10157:5:60"},"nodeType":"YulFunctionCall","src":"10157:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10137:6:60"},"nodeType":"YulFunctionCall","src":"10137:39:60"},"nodeType":"YulExpressionStatement","src":"10137:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10084:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"10087:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10081:2:60"},"nodeType":"YulFunctionCall","src":"10081:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10095:19:60","statements":[{"nodeType":"YulAssignment","src":"10097:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10106:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"10109:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10102:3:60"},"nodeType":"YulFunctionCall","src":"10102:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10097:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"10077:3:60","statements":[]},"src":"10073:113:60"},{"body":{"nodeType":"YulBlock","src":"10212:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"10225:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"10230:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10221:3:60"},"nodeType":"YulFunctionCall","src":"10221:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"10239:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10214:6:60"},"nodeType":"YulFunctionCall","src":"10214:27:60"},"nodeType":"YulExpressionStatement","src":"10214:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10201:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"10204:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10198:2:60"},"nodeType":"YulFunctionCall","src":"10198:13:60"},"nodeType":"YulIf","src":"10195:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"10022:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"10027:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"10032:6:60","type":""}],"src":"9991:258:60"},{"body":{"nodeType":"YulBlock","src":"10304:267:60","statements":[{"nodeType":"YulVariableDeclaration","src":"10314:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10334:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10328:5:60"},"nodeType":"YulFunctionCall","src":"10328:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10318:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10356:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"10361:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10349:6:60"},"nodeType":"YulFunctionCall","src":"10349:19:60"},"nodeType":"YulExpressionStatement","src":"10349:19:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10403:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"10410:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10399:3:60"},"nodeType":"YulFunctionCall","src":"10399:16:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10421:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"10426:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10417:3:60"},"nodeType":"YulFunctionCall","src":"10417:14:60"},{"name":"length","nodeType":"YulIdentifier","src":"10433:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10377:21:60"},"nodeType":"YulFunctionCall","src":"10377:63:60"},"nodeType":"YulExpressionStatement","src":"10377:63:60"},{"nodeType":"YulAssignment","src":"10449:116:60","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10464:3:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10477:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"10485:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10473:3:60"},"nodeType":"YulFunctionCall","src":"10473:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"10490:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10469:3:60"},"nodeType":"YulFunctionCall","src":"10469:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10460:3:60"},"nodeType":"YulFunctionCall","src":"10460:98:60"},{"kind":"number","nodeType":"YulLiteral","src":"10560:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10456:3:60"},"nodeType":"YulFunctionCall","src":"10456:109:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10449:3:60"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10281:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10288:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10296:3:60","type":""}],"src":"10254:317:60"},{"body":{"nodeType":"YulBlock","src":"10636:556:60","statements":[{"nodeType":"YulVariableDeclaration","src":"10646:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10666:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10660:5:60"},"nodeType":"YulFunctionCall","src":"10660:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10650:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10688:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"10693:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10681:6:60"},"nodeType":"YulFunctionCall","src":"10681:19:60"},"nodeType":"YulExpressionStatement","src":"10681:19:60"},{"nodeType":"YulVariableDeclaration","src":"10709:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"10719:4:60","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10713:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10732:31:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10755:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10760:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10751:3:60"},"nodeType":"YulFunctionCall","src":"10751:12:60"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"10736:11:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10772:24:60","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"10785:11:60"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"10776:5:60","type":""}]},{"nodeType":"YulAssignment","src":"10805:18:60","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"10812:11:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10805:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"10832:38:60","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"10848:5:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10859:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"10862:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10855:3:60"},"nodeType":"YulFunctionCall","src":"10855:14:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10844:3:60"},"nodeType":"YulFunctionCall","src":"10844:26:60"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"10836:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10879:28:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10897:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10904:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10893:3:60"},"nodeType":"YulFunctionCall","src":"10893:14:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"10883:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10916:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"10925:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10920:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10984:182:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11005:3:60"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"11014:4:60"},{"name":"pos_1","nodeType":"YulIdentifier","src":"11020:5:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11010:3:60"},"nodeType":"YulFunctionCall","src":"11010:16:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10998:6:60"},"nodeType":"YulFunctionCall","src":"10998:29:60"},"nodeType":"YulExpressionStatement","src":"10998:29:60"},{"nodeType":"YulAssignment","src":"11040:46:60","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11072:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11066:5:60"},"nodeType":"YulFunctionCall","src":"11066:13:60"},{"name":"tail","nodeType":"YulIdentifier","src":"11081:4:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"11048:17:60"},"nodeType":"YulFunctionCall","src":"11048:38:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11040:4:60"}]},{"nodeType":"YulAssignment","src":"11099:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11113:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"11121:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11109:3:60"},"nodeType":"YulFunctionCall","src":"11109:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11099:6:60"}]},{"nodeType":"YulAssignment","src":"11137:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11148:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"11153:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11144:3:60"},"nodeType":"YulFunctionCall","src":"11144:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11137:3:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10946:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"10949:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10943:2:60"},"nodeType":"YulFunctionCall","src":"10943:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10957:18:60","statements":[{"nodeType":"YulAssignment","src":"10959:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10968:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"10971:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10964:3:60"},"nodeType":"YulFunctionCall","src":"10964:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10959:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"10939:3:60","statements":[]},"src":"10935:231:60"},{"nodeType":"YulAssignment","src":"11175:11:60","value":{"name":"tail","nodeType":"YulIdentifier","src":"11182:4:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11175:3:60"}]}]},"name":"abi_encode_array_string_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10613:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10620:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10628:3:60","type":""}],"src":"10576:616:60"},{"body":{"nodeType":"YulBlock","src":"11362:1268:60","statements":[{"nodeType":"YulVariableDeclaration","src":"11372:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"11382:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11376:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11400:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"11411:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11393:6:60"},"nodeType":"YulFunctionCall","src":"11393:21:60"},"nodeType":"YulExpressionStatement","src":"11393:21:60"},{"nodeType":"YulVariableDeclaration","src":"11423:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11441:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11452:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11437:3:60"},"nodeType":"YulFunctionCall","src":"11437:19:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"11427:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11465:33:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11491:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11485:5:60"},"nodeType":"YulFunctionCall","src":"11485:13:60"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"11469:12:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11518:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"11529:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11514:3:60"},"nodeType":"YulFunctionCall","src":"11514:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"11534:4:60","type":"","value":"0x80"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11507:6:60"},"nodeType":"YulFunctionCall","src":"11507:32:60"},"nodeType":"YulExpressionStatement","src":"11507:32:60"},{"nodeType":"YulVariableDeclaration","src":"11548:17:60","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"11559:6:60"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"11552:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11574:33:60","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"11594:12:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11588:5:60"},"nodeType":"YulFunctionCall","src":"11588:19:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11578:6:60","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"11623:6:60"},{"name":"length","nodeType":"YulIdentifier","src":"11631:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11616:6:60"},"nodeType":"YulFunctionCall","src":"11616:22:60"},"nodeType":"YulExpressionStatement","src":"11616:22:60"},{"nodeType":"YulAssignment","src":"11647:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11658:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11669:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11654:3:60"},"nodeType":"YulFunctionCall","src":"11654:19:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11647:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"11682:35:60","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"11700:12:60"},{"name":"_1","nodeType":"YulIdentifier","src":"11714:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11696:3:60"},"nodeType":"YulFunctionCall","src":"11696:21:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"11686:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11726:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"11735:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11730:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"11794:169:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11815:3:60"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11830:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11824:5:60"},"nodeType":"YulFunctionCall","src":"11824:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"11839:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11820:3:60"},"nodeType":"YulFunctionCall","src":"11820:62:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11808:6:60"},"nodeType":"YulFunctionCall","src":"11808:75:60"},"nodeType":"YulExpressionStatement","src":"11808:75:60"},{"nodeType":"YulAssignment","src":"11896:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11907:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"11912:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11903:3:60"},"nodeType":"YulFunctionCall","src":"11903:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"11896:3:60"}]},{"nodeType":"YulAssignment","src":"11928:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11942:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"11950:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11938:3:60"},"nodeType":"YulFunctionCall","src":"11938:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"11928:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11756:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"11759:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11753:2:60"},"nodeType":"YulFunctionCall","src":"11753:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11767:18:60","statements":[{"nodeType":"YulAssignment","src":"11769:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11778:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"11781:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11774:3:60"},"nodeType":"YulFunctionCall","src":"11774:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"11769:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"11749:3:60","statements":[]},"src":"11745:218:60"},{"nodeType":"YulVariableDeclaration","src":"11972:44:60","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12004:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"12012:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12000:3:60"},"nodeType":"YulFunctionCall","src":"12000:15:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11994:5:60"},"nodeType":"YulFunctionCall","src":"11994:22:60"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"11976:14:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12025:76:60","value":{"kind":"number","nodeType":"YulLiteral","src":"12035:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12029:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12121:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12132:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12117:3:60"},"nodeType":"YulFunctionCall","src":"12117:18:60"},{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12145:3:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"12150:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12141:3:60"},"nodeType":"YulFunctionCall","src":"12141:19:60"},{"name":"_2","nodeType":"YulIdentifier","src":"12162:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12137:3:60"},"nodeType":"YulFunctionCall","src":"12137:28:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12110:6:60"},"nodeType":"YulFunctionCall","src":"12110:56:60"},"nodeType":"YulExpressionStatement","src":"12110:56:60"},{"nodeType":"YulVariableDeclaration","src":"12175:63:60","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"12218:14:60"},{"name":"pos","nodeType":"YulIdentifier","src":"12234:3:60"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"12189:28:60"},"nodeType":"YulFunctionCall","src":"12189:49:60"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"12179:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12247:44:60","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12279:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"12287:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12275:3:60"},"nodeType":"YulFunctionCall","src":"12275:15:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12269:5:60"},"nodeType":"YulFunctionCall","src":"12269:22:60"},"variables":[{"name":"memberValue0_2","nodeType":"YulTypedName","src":"12251:14:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12311:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12322:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12307:3:60"},"nodeType":"YulFunctionCall","src":"12307:18:60"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"12335:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"12343:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12331:3:60"},"nodeType":"YulFunctionCall","src":"12331:22:60"},{"name":"_2","nodeType":"YulIdentifier","src":"12355:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12327:3:60"},"nodeType":"YulFunctionCall","src":"12327:31:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12300:6:60"},"nodeType":"YulFunctionCall","src":"12300:59:60"},"nodeType":"YulExpressionStatement","src":"12300:59:60"},{"nodeType":"YulVariableDeclaration","src":"12368:65:60","value":{"arguments":[{"name":"memberValue0_2","nodeType":"YulIdentifier","src":"12410:14:60"},{"name":"tail_2","nodeType":"YulIdentifier","src":"12426:6:60"}],"functionName":{"name":"abi_encode_array_string_dyn","nodeType":"YulIdentifier","src":"12382:27:60"},"nodeType":"YulFunctionCall","src":"12382:51:60"},"variables":[{"name":"tail_3","nodeType":"YulTypedName","src":"12372:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12442:44:60","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12474:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"12482:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12470:3:60"},"nodeType":"YulFunctionCall","src":"12470:15:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12464:5:60"},"nodeType":"YulFunctionCall","src":"12464:22:60"},"variables":[{"name":"memberValue0_3","nodeType":"YulTypedName","src":"12446:14:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12506:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12517:4:60","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12502:3:60"},"nodeType":"YulFunctionCall","src":"12502:20:60"},{"arguments":[{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"12532:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"12540:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12528:3:60"},"nodeType":"YulFunctionCall","src":"12528:22:60"},{"name":"_2","nodeType":"YulIdentifier","src":"12552:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12524:3:60"},"nodeType":"YulFunctionCall","src":"12524:31:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12495:6:60"},"nodeType":"YulFunctionCall","src":"12495:61:60"},"nodeType":"YulExpressionStatement","src":"12495:61:60"},{"nodeType":"YulAssignment","src":"12565:59:60","value":{"arguments":[{"name":"memberValue0_3","nodeType":"YulIdentifier","src":"12601:14:60"},{"name":"tail_3","nodeType":"YulIdentifier","src":"12617:6:60"}],"functionName":{"name":"abi_encode_array_string_dyn","nodeType":"YulIdentifier","src":"12573:27:60"},"nodeType":"YulFunctionCall","src":"12573:51:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12565:4:60"}]}]},"name":"abi_encode_tuple_t_struct$_ProposalAction_$9586_memory_ptr__to_t_struct$_ProposalAction_$9586_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11331:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11342:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11353:4:60","type":""}],"src":"11197:1433:60"},{"body":{"nodeType":"YulBlock","src":"12705:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"12751:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12760:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12763:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12753:6:60"},"nodeType":"YulFunctionCall","src":"12753:12:60"},"nodeType":"YulExpressionStatement","src":"12753:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12726:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"12735:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12722:3:60"},"nodeType":"YulFunctionCall","src":"12722:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"12747:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12718:3:60"},"nodeType":"YulFunctionCall","src":"12718:32:60"},"nodeType":"YulIf","src":"12715:52:60"},{"nodeType":"YulAssignment","src":"12776:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12799:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12786:12:60"},"nodeType":"YulFunctionCall","src":"12786:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12776:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12671:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12682:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12694:6:60","type":""}],"src":"12635:180:60"},{"body":{"nodeType":"YulBlock","src":"12919:95:60","statements":[{"nodeType":"YulAssignment","src":"12929:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12941:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12952:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12937:3:60"},"nodeType":"YulFunctionCall","src":"12937:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12929:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12971:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12986:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"12994:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12982:3:60"},"nodeType":"YulFunctionCall","src":"12982:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12964:6:60"},"nodeType":"YulFunctionCall","src":"12964:44:60"},"nodeType":"YulExpressionStatement","src":"12964:44:60"}]},"name":"abi_encode_tuple_t_uint40__to_t_uint40__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12888:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12899:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12910:4:60","type":""}],"src":"12820:194:60"},{"body":{"nodeType":"YulBlock","src":"13139:125:60","statements":[{"nodeType":"YulAssignment","src":"13149:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13161:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13172:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13157:3:60"},"nodeType":"YulFunctionCall","src":"13157:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13149:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13191:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13206:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"13214:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13202:3:60"},"nodeType":"YulFunctionCall","src":"13202:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13184:6:60"},"nodeType":"YulFunctionCall","src":"13184:74:60"},"nodeType":"YulExpressionStatement","src":"13184:74:60"}]},"name":"abi_encode_tuple_t_contract$_ITimelock_$10726__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13108:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13119:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13130:4:60","type":""}],"src":"13019:245:60"},{"body":{"nodeType":"YulBlock","src":"13355:166:60","statements":[{"body":{"nodeType":"YulBlock","src":"13401:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13410:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13413:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13403:6:60"},"nodeType":"YulFunctionCall","src":"13403:12:60"},"nodeType":"YulExpressionStatement","src":"13403:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13376:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"13385:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13372:3:60"},"nodeType":"YulFunctionCall","src":"13372:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"13397:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13368:3:60"},"nodeType":"YulFunctionCall","src":"13368:32:60"},"nodeType":"YulIf","src":"13365:52:60"},{"nodeType":"YulAssignment","src":"13426:38:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13454:9:60"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"13436:17:60"},"nodeType":"YulFunctionCall","src":"13436:28:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13426:6:60"}]},{"nodeType":"YulAssignment","src":"13473:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13500:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13511:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13496:3:60"},"nodeType":"YulFunctionCall","src":"13496:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13483:12:60"},"nodeType":"YulFunctionCall","src":"13483:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13473:6:60"}]}]},"name":"abi_decode_tuple_t_uint64t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13313:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13324:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13336:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13344:6:60","type":""}],"src":"13269:252:60"},{"body":{"nodeType":"YulBlock","src":"13669:227:60","statements":[{"nodeType":"YulAssignment","src":"13679:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13691:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13702:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13687:3:60"},"nodeType":"YulFunctionCall","src":"13687:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13679:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13721:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13746:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13739:6:60"},"nodeType":"YulFunctionCall","src":"13739:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13732:6:60"},"nodeType":"YulFunctionCall","src":"13732:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13714:6:60"},"nodeType":"YulFunctionCall","src":"13714:41:60"},"nodeType":"YulExpressionStatement","src":"13714:41:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13775:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13786:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13771:3:60"},"nodeType":"YulFunctionCall","src":"13771:18:60"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13805:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13798:6:60"},"nodeType":"YulFunctionCall","src":"13798:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13791:6:60"},"nodeType":"YulFunctionCall","src":"13791:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13764:6:60"},"nodeType":"YulFunctionCall","src":"13764:50:60"},"nodeType":"YulExpressionStatement","src":"13764:50:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13834:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13845:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13830:3:60"},"nodeType":"YulFunctionCall","src":"13830:18:60"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13854:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"13862:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13850:3:60"},"nodeType":"YulFunctionCall","src":"13850:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13823:6:60"},"nodeType":"YulFunctionCall","src":"13823:67:60"},"nodeType":"YulExpressionStatement","src":"13823:67:60"}]},"name":"abi_encode_tuple_t_bool_t_bool_t_uint96__to_t_bool_t_bool_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13622:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13633:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13641:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13649:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13660:4:60","type":""}],"src":"13526:370:60"},{"body":{"nodeType":"YulBlock","src":"14002:76:60","statements":[{"nodeType":"YulAssignment","src":"14012:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14024:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14035:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14020:3:60"},"nodeType":"YulFunctionCall","src":"14020:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14012:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14054:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"14065:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14047:6:60"},"nodeType":"YulFunctionCall","src":"14047:25:60"},"nodeType":"YulExpressionStatement","src":"14047:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13971:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13982:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13993:4:60","type":""}],"src":"13901:177:60"},{"body":{"nodeType":"YulBlock","src":"14127:93:60","statements":[{"body":{"nodeType":"YulBlock","src":"14198:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14207:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14210:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14200:6:60"},"nodeType":"YulFunctionCall","src":"14200:12:60"},"nodeType":"YulExpressionStatement","src":"14200:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14150:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14161:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"14168:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14157:3:60"},"nodeType":"YulFunctionCall","src":"14157:38:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14147:2:60"},"nodeType":"YulFunctionCall","src":"14147:49:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14140:6:60"},"nodeType":"YulFunctionCall","src":"14140:57:60"},"nodeType":"YulIf","src":"14137:77:60"}]},"name":"validator_revert_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14116:5:60","type":""}],"src":"14083:137:60"},{"body":{"nodeType":"YulBlock","src":"14294:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"14340:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14349:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14352:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14342:6:60"},"nodeType":"YulFunctionCall","src":"14342:12:60"},"nodeType":"YulExpressionStatement","src":"14342:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14315:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"14324:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14311:3:60"},"nodeType":"YulFunctionCall","src":"14311:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"14336:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14307:3:60"},"nodeType":"YulFunctionCall","src":"14307:32:60"},"nodeType":"YulIf","src":"14304:52:60"},{"nodeType":"YulVariableDeclaration","src":"14365:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14391:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14378:12:60"},"nodeType":"YulFunctionCall","src":"14378:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14369:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14434:5:60"}],"functionName":{"name":"validator_revert_uint96","nodeType":"YulIdentifier","src":"14410:23:60"},"nodeType":"YulFunctionCall","src":"14410:30:60"},"nodeType":"YulExpressionStatement","src":"14410:30:60"},{"nodeType":"YulAssignment","src":"14449:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"14459:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14449:6:60"}]}]},"name":"abi_decode_tuple_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14260:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14271:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14283:6:60","type":""}],"src":"14225:245:60"},{"body":{"nodeType":"YulBlock","src":"14517:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"14571:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14580:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14583:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14573:6:60"},"nodeType":"YulFunctionCall","src":"14573:12:60"},"nodeType":"YulExpressionStatement","src":"14573:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14540:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14561:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14554:6:60"},"nodeType":"YulFunctionCall","src":"14554:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14547:6:60"},"nodeType":"YulFunctionCall","src":"14547:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14537:2:60"},"nodeType":"YulFunctionCall","src":"14537:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14530:6:60"},"nodeType":"YulFunctionCall","src":"14530:40:60"},"nodeType":"YulIf","src":"14527:60:60"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14506:5:60","type":""}],"src":"14475:118:60"},{"body":{"nodeType":"YulBlock","src":"14698:281:60","statements":[{"body":{"nodeType":"YulBlock","src":"14744:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14753:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14756:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14746:6:60"},"nodeType":"YulFunctionCall","src":"14746:12:60"},"nodeType":"YulExpressionStatement","src":"14746:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14719:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"14728:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14715:3:60"},"nodeType":"YulFunctionCall","src":"14715:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"14740:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14711:3:60"},"nodeType":"YulFunctionCall","src":"14711:32:60"},"nodeType":"YulIf","src":"14708:52:60"},{"nodeType":"YulAssignment","src":"14769:38:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14797:9:60"}],"functionName":{"name":"abi_decode_uint64","nodeType":"YulIdentifier","src":"14779:17:60"},"nodeType":"YulFunctionCall","src":"14779:28:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14769:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"14816:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14846:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14857:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14842:3:60"},"nodeType":"YulFunctionCall","src":"14842:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14829:12:60"},"nodeType":"YulFunctionCall","src":"14829:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14820:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14892:5:60"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"14870:21:60"},"nodeType":"YulFunctionCall","src":"14870:28:60"},"nodeType":"YulExpressionStatement","src":"14870:28:60"},{"nodeType":"YulAssignment","src":"14907:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"14917:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"14907:6:60"}]},{"nodeType":"YulAssignment","src":"14931:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14958:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14969:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14954:3:60"},"nodeType":"YulFunctionCall","src":"14954:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14941:12:60"},"nodeType":"YulFunctionCall","src":"14941:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"14931:6:60"}]}]},"name":"abi_decode_tuple_t_uint64t_boolt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14648:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14659:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14671:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14679:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14687:6:60","type":""}],"src":"14598:381:60"},{"body":{"nodeType":"YulBlock","src":"15016:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15033:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15036:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15026:6:60"},"nodeType":"YulFunctionCall","src":"15026:88:60"},"nodeType":"YulExpressionStatement","src":"15026:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15130:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15133:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15123:6:60"},"nodeType":"YulFunctionCall","src":"15123:15:60"},"nodeType":"YulExpressionStatement","src":"15123:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15154:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15157:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15147:6:60"},"nodeType":"YulFunctionCall","src":"15147:15:60"},"nodeType":"YulExpressionStatement","src":"15147:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14984:184:60"},{"body":{"nodeType":"YulBlock","src":"15220:183:60","statements":[{"nodeType":"YulVariableDeclaration","src":"15230:22:60","value":{"kind":"number","nodeType":"YulLiteral","src":"15240:12:60","type":"","value":"0xffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15234:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15261:21:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15276:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"15279:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15272:3:60"},"nodeType":"YulFunctionCall","src":"15272:10:60"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"15265:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15291:21:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"15306:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"15309:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15302:3:60"},"nodeType":"YulFunctionCall","src":"15302:10:60"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"15295:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"15346:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15348:16:60"},"nodeType":"YulFunctionCall","src":"15348:18:60"},"nodeType":"YulExpressionStatement","src":"15348:18:60"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"15327:3:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"15336:2:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"15340:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15332:3:60"},"nodeType":"YulFunctionCall","src":"15332:12:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15324:2:60"},"nodeType":"YulFunctionCall","src":"15324:21:60"},"nodeType":"YulIf","src":"15321:47:60"},{"nodeType":"YulAssignment","src":"15377:20:60","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"15388:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"15393:3:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15384:3:60"},"nodeType":"YulFunctionCall","src":"15384:13:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"15377:3:60"}]}]},"name":"checked_add_t_uint40","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"15203:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"15206:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"15212:3:60","type":""}],"src":"15173:230:60"},{"body":{"nodeType":"YulBlock","src":"15489:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"15535:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15544:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15547:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15537:6:60"},"nodeType":"YulFunctionCall","src":"15537:12:60"},"nodeType":"YulExpressionStatement","src":"15537:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15510:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"15519:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15506:3:60"},"nodeType":"YulFunctionCall","src":"15506:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"15531:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15502:3:60"},"nodeType":"YulFunctionCall","src":"15502:32:60"},"nodeType":"YulIf","src":"15499:52:60"},{"nodeType":"YulAssignment","src":"15560:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15576:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15570:5:60"},"nodeType":"YulFunctionCall","src":"15570:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15560:6:60"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15455:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15466:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15478:6:60","type":""}],"src":"15408:184:60"},{"body":{"nodeType":"YulBlock","src":"15645:175:60","statements":[{"nodeType":"YulVariableDeclaration","src":"15655:22:60","value":{"kind":"number","nodeType":"YulLiteral","src":"15665:12:60","type":"","value":"0xffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15659:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15686:21:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15701:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"15704:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15697:3:60"},"nodeType":"YulFunctionCall","src":"15697:10:60"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"15690:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15716:21:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"15731:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"15734:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15727:3:60"},"nodeType":"YulFunctionCall","src":"15727:10:60"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"15720:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"15762:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15764:16:60"},"nodeType":"YulFunctionCall","src":"15764:18:60"},"nodeType":"YulExpressionStatement","src":"15764:18:60"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"15752:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"15757:3:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15749:2:60"},"nodeType":"YulFunctionCall","src":"15749:12:60"},"nodeType":"YulIf","src":"15746:38:60"},{"nodeType":"YulAssignment","src":"15793:21:60","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"15805:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"15810:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15801:3:60"},"nodeType":"YulFunctionCall","src":"15801:13:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"15793:4:60"}]}]},"name":"checked_sub_t_uint40","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"15627:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"15630:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"15636:4:60","type":""}],"src":"15597:223:60"},{"body":{"nodeType":"YulBlock","src":"15872:148:60","statements":[{"body":{"nodeType":"YulBlock","src":"15963:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15965:16:60"},"nodeType":"YulFunctionCall","src":"15965:18:60"},"nodeType":"YulExpressionStatement","src":"15965:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15888:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"15895:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15885:2:60"},"nodeType":"YulFunctionCall","src":"15885:77:60"},"nodeType":"YulIf","src":"15882:103:60"},{"nodeType":"YulAssignment","src":"15994:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16005:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"16012:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16001:3:60"},"nodeType":"YulFunctionCall","src":"16001:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"15994:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15854:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"15864:3:60","type":""}],"src":"15825:195:60"},{"body":{"nodeType":"YulBlock","src":"16574:1192:60","statements":[{"nodeType":"YulVariableDeclaration","src":"16584:13:60","value":{"kind":"number","nodeType":"YulLiteral","src":"16594:3:60","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16588:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16606:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16624:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"16635:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16620:3:60"},"nodeType":"YulFunctionCall","src":"16620:18:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16610:6:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16654:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16669:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"16677:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16665:3:60"},"nodeType":"YulFunctionCall","src":"16665:31:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16647:6:60"},"nodeType":"YulFunctionCall","src":"16647:50:60"},"nodeType":"YulExpressionStatement","src":"16647:50:60"},{"nodeType":"YulVariableDeclaration","src":"16706:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"16716:2:60","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"16710:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16738:9:60"},{"name":"_2","nodeType":"YulIdentifier","src":"16749:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16734:3:60"},"nodeType":"YulFunctionCall","src":"16734:18:60"},{"name":"_1","nodeType":"YulIdentifier","src":"16754:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16727:6:60"},"nodeType":"YulFunctionCall","src":"16727:30:60"},"nodeType":"YulExpressionStatement","src":"16727:30:60"},{"nodeType":"YulVariableDeclaration","src":"16766:17:60","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"16777:6:60"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"16770:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16792:27:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16812:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16806:5:60"},"nodeType":"YulFunctionCall","src":"16806:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16796:6:60","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"16835:6:60"},{"name":"length","nodeType":"YulIdentifier","src":"16843:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16828:6:60"},"nodeType":"YulFunctionCall","src":"16828:22:60"},"nodeType":"YulExpressionStatement","src":"16828:22:60"},{"nodeType":"YulAssignment","src":"16859:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16870:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16881:3:60","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16866:3:60"},"nodeType":"YulFunctionCall","src":"16866:19:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16859:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"16894:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16912:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"16920:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16908:3:60"},"nodeType":"YulFunctionCall","src":"16908:15:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"16898:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16932:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"16941:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"16936:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"17000:169:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17021:3:60"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"17036:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17030:5:60"},"nodeType":"YulFunctionCall","src":"17030:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"17045:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17026:3:60"},"nodeType":"YulFunctionCall","src":"17026:62:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17014:6:60"},"nodeType":"YulFunctionCall","src":"17014:75:60"},"nodeType":"YulExpressionStatement","src":"17014:75:60"},{"nodeType":"YulAssignment","src":"17102:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17113:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"17118:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17109:3:60"},"nodeType":"YulFunctionCall","src":"17109:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"17102:3:60"}]},{"nodeType":"YulAssignment","src":"17134:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"17148:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"17156:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17144:3:60"},"nodeType":"YulFunctionCall","src":"17144:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"17134:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16962:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"16965:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16959:2:60"},"nodeType":"YulFunctionCall","src":"16959:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"16973:18:60","statements":[{"nodeType":"YulAssignment","src":"16975:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16984:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"16987:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16980:3:60"},"nodeType":"YulFunctionCall","src":"16980:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"16975:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"16955:3:60","statements":[]},"src":"16951:218:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17189:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17200:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17185:3:60"},"nodeType":"YulFunctionCall","src":"17185:18:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17209:3:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"17214:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17205:3:60"},"nodeType":"YulFunctionCall","src":"17205:19:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17178:6:60"},"nodeType":"YulFunctionCall","src":"17178:47:60"},"nodeType":"YulExpressionStatement","src":"17178:47:60"},{"nodeType":"YulVariableDeclaration","src":"17234:55:60","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17277:6:60"},{"name":"pos","nodeType":"YulIdentifier","src":"17285:3:60"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"17248:28:60"},"nodeType":"YulFunctionCall","src":"17248:41:60"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"17238:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17309:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17320:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17305:3:60"},"nodeType":"YulFunctionCall","src":"17305:18:60"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"17329:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"17337:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17325:3:60"},"nodeType":"YulFunctionCall","src":"17325:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17298:6:60"},"nodeType":"YulFunctionCall","src":"17298:50:60"},"nodeType":"YulExpressionStatement","src":"17298:50:60"},{"nodeType":"YulVariableDeclaration","src":"17357:57:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17399:6:60"},{"name":"tail_2","nodeType":"YulIdentifier","src":"17407:6:60"}],"functionName":{"name":"abi_encode_array_string_dyn","nodeType":"YulIdentifier","src":"17371:27:60"},"nodeType":"YulFunctionCall","src":"17371:43:60"},"variables":[{"name":"tail_3","nodeType":"YulTypedName","src":"17361:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17434:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17445:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17430:3:60"},"nodeType":"YulFunctionCall","src":"17430:19:60"},{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"17455:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"17463:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17451:3:60"},"nodeType":"YulFunctionCall","src":"17451:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17423:6:60"},"nodeType":"YulFunctionCall","src":"17423:51:60"},"nodeType":"YulExpressionStatement","src":"17423:51:60"},{"nodeType":"YulVariableDeclaration","src":"17483:57:60","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17525:6:60"},{"name":"tail_3","nodeType":"YulIdentifier","src":"17533:6:60"}],"functionName":{"name":"abi_encode_array_string_dyn","nodeType":"YulIdentifier","src":"17497:27:60"},"nodeType":"YulFunctionCall","src":"17497:43:60"},"variables":[{"name":"tail_4","nodeType":"YulTypedName","src":"17487:6:60","type":""}]},{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"17567:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17579:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17590:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17575:3:60"},"nodeType":"YulFunctionCall","src":"17575:19:60"}],"functionName":{"name":"abi_encode_uint40","nodeType":"YulIdentifier","src":"17549:17:60"},"nodeType":"YulFunctionCall","src":"17549:46:60"},"nodeType":"YulExpressionStatement","src":"17549:46:60"},{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"17622:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17634:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17645:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17630:3:60"},"nodeType":"YulFunctionCall","src":"17630:19:60"}],"functionName":{"name":"abi_encode_uint40","nodeType":"YulIdentifier","src":"17604:17:60"},"nodeType":"YulFunctionCall","src":"17604:46:60"},"nodeType":"YulExpressionStatement","src":"17604:46:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17670:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17681:3:60","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17666:3:60"},"nodeType":"YulFunctionCall","src":"17666:19:60"},{"arguments":[{"name":"tail_4","nodeType":"YulIdentifier","src":"17691:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"17699:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17687:3:60"},"nodeType":"YulFunctionCall","src":"17687:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17659:6:60"},"nodeType":"YulFunctionCall","src":"17659:51:60"},"nodeType":"YulExpressionStatement","src":"17659:51:60"},{"nodeType":"YulAssignment","src":"17719:41:60","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"17745:6:60"},{"name":"tail_4","nodeType":"YulIdentifier","src":"17753:6:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"17727:17:60"},"nodeType":"YulFunctionCall","src":"17727:33:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17719:4:60"}]}]},"name":"abi_encode_tuple_t_uint64_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint40_t_uint40_t_string_memory_ptr__to_t_uint64_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint40_t_uint40_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16487:9:60","type":""},{"name":"value7","nodeType":"YulTypedName","src":"16498:6:60","type":""},{"name":"value6","nodeType":"YulTypedName","src":"16506:6:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16514:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16522:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16530:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16538:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16546:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16554:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16565:4:60","type":""}],"src":"16025:1741:60"},{"body":{"nodeType":"YulBlock","src":"17826:382:60","statements":[{"nodeType":"YulAssignment","src":"17836:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17850:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"17853:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"17846:3:60"},"nodeType":"YulFunctionCall","src":"17846:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"17836:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"17867:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"17897:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"17903:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17893:3:60"},"nodeType":"YulFunctionCall","src":"17893:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"17871:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"17944:31:60","statements":[{"nodeType":"YulAssignment","src":"17946:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"17960:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17968:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17956:3:60"},"nodeType":"YulFunctionCall","src":"17956:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"17946:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"17924:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17917:6:60"},"nodeType":"YulFunctionCall","src":"17917:26:60"},"nodeType":"YulIf","src":"17914:61:60"},{"body":{"nodeType":"YulBlock","src":"18034:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18055:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18058:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18048:6:60"},"nodeType":"YulFunctionCall","src":"18048:88:60"},"nodeType":"YulExpressionStatement","src":"18048:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18156:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18159:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18149:6:60"},"nodeType":"YulFunctionCall","src":"18149:15:60"},"nodeType":"YulExpressionStatement","src":"18149:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18184:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18187:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18177:6:60"},"nodeType":"YulFunctionCall","src":"18177:15:60"},"nodeType":"YulExpressionStatement","src":"18177:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"17990:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18013:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"18021:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18010:2:60"},"nodeType":"YulFunctionCall","src":"18010:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17987:2:60"},"nodeType":"YulFunctionCall","src":"17987:38:60"},"nodeType":"YulIf","src":"17984:218:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"17806:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"17815:6:60","type":""}],"src":"17771:437:60"},{"body":{"nodeType":"YulBlock","src":"18261:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"18288:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18290:16:60"},"nodeType":"YulFunctionCall","src":"18290:18:60"},"nodeType":"YulExpressionStatement","src":"18290:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18277:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18284:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18280:3:60"},"nodeType":"YulFunctionCall","src":"18280:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18274:2:60"},"nodeType":"YulFunctionCall","src":"18274:13:60"},"nodeType":"YulIf","src":"18271:39:60"},{"nodeType":"YulAssignment","src":"18319:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18330:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"18333:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18326:3:60"},"nodeType":"YulFunctionCall","src":"18326:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18319:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18244:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"18247:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18253:3:60","type":""}],"src":"18213:128:60"},{"body":{"nodeType":"YulBlock","src":"18378:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18395:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18398:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18388:6:60"},"nodeType":"YulFunctionCall","src":"18388:88:60"},"nodeType":"YulExpressionStatement","src":"18388:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18492:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18495:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18485:6:60"},"nodeType":"YulFunctionCall","src":"18485:15:60"},"nodeType":"YulExpressionStatement","src":"18485:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18516:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18519:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18509:6:60"},"nodeType":"YulFunctionCall","src":"18509:15:60"},"nodeType":"YulExpressionStatement","src":"18509:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"18346:184:60"},{"body":{"nodeType":"YulBlock","src":"18660:163:60","statements":[{"nodeType":"YulAssignment","src":"18670:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18682:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18693:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18678:3:60"},"nodeType":"YulFunctionCall","src":"18678:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18670:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18712:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18727:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"18735:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18723:3:60"},"nodeType":"YulFunctionCall","src":"18723:31:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18705:6:60"},"nodeType":"YulFunctionCall","src":"18705:50:60"},"nodeType":"YulExpressionStatement","src":"18705:50:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18775:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18786:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18771:3:60"},"nodeType":"YulFunctionCall","src":"18771:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18795:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"18803:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18791:3:60"},"nodeType":"YulFunctionCall","src":"18791:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18764:6:60"},"nodeType":"YulFunctionCall","src":"18764:53:60"},"nodeType":"YulExpressionStatement","src":"18764:53:60"}]},"name":"abi_encode_tuple_t_uint64_t_uint40__to_t_uint64_t_uint40__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18621:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18632:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18640:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18651:4:60","type":""}],"src":"18535:288:60"},{"body":{"nodeType":"YulBlock","src":"18884:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18901:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"18904:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18894:6:60"},"nodeType":"YulFunctionCall","src":"18894:14:60"},"nodeType":"YulExpressionStatement","src":"18894:14:60"},{"nodeType":"YulAssignment","src":"18917:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18935:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18938:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"18925:9:60"},"nodeType":"YulFunctionCall","src":"18925:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"18917:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"18867:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"18875:4:60","type":""}],"src":"18828:121:60"},{"body":{"nodeType":"YulBlock","src":"19012:772:60","statements":[{"nodeType":"YulVariableDeclaration","src":"19022:29:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19045:5:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"19039:5:60"},"nodeType":"YulFunctionCall","src":"19039:12:60"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"19026:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19060:50:60","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"19100:9:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"19074:25:60"},"nodeType":"YulFunctionCall","src":"19074:36:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19064:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19126:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"19131:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19119:6:60"},"nodeType":"YulFunctionCall","src":"19119:19:60"},"nodeType":"YulExpressionStatement","src":"19119:19:60"},{"nodeType":"YulVariableDeclaration","src":"19147:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"19157:4:60","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19151:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19170:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"19180:1:60","type":"","value":"1"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"19174:2:60","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"19231:197:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19256:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"19261:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19252:3:60"},"nodeType":"YulFunctionCall","src":"19252:12:60"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"19270:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19281:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19266:3:60"},"nodeType":"YulFunctionCall","src":"19266:82:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19245:6:60"},"nodeType":"YulFunctionCall","src":"19245:104:60"},"nodeType":"YulExpressionStatement","src":"19245:104:60"},{"nodeType":"YulAssignment","src":"19362:56:60","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19377:3:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19386:1:60","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"19403:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19396:6:60"},"nodeType":"YulFunctionCall","src":"19396:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19389:6:60"},"nodeType":"YulFunctionCall","src":"19389:22:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19382:3:60"},"nodeType":"YulFunctionCall","src":"19382:30:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19373:3:60"},"nodeType":"YulFunctionCall","src":"19373:40:60"},{"name":"_1","nodeType":"YulIdentifier","src":"19415:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19369:3:60"},"nodeType":"YulFunctionCall","src":"19369:49:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19362:3:60"}]}]},"nodeType":"YulCase","src":"19224:204:60","value":{"kind":"number","nodeType":"YulLiteral","src":"19229:1:60","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"19444:334:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19465:1:60","type":"","value":"0"},{"name":"value","nodeType":"YulIdentifier","src":"19468:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19458:6:60"},"nodeType":"YulFunctionCall","src":"19458:16:60"},"nodeType":"YulExpressionStatement","src":"19458:16:60"},{"nodeType":"YulVariableDeclaration","src":"19487:31:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19512:1:60","type":"","value":"0"},{"name":"_1","nodeType":"YulIdentifier","src":"19515:2:60"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"19502:9:60"},"nodeType":"YulFunctionCall","src":"19502:16:60"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"19491:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19531:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"19540:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19535:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"19608:120:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19641:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"19646:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19637:3:60"},"nodeType":"YulFunctionCall","src":"19637:11:60"},{"name":"_1","nodeType":"YulIdentifier","src":"19650:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19633:3:60"},"nodeType":"YulFunctionCall","src":"19633:20:60"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"19661:7:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"19655:5:60"},"nodeType":"YulFunctionCall","src":"19655:14:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19626:6:60"},"nodeType":"YulFunctionCall","src":"19626:44:60"},"nodeType":"YulExpressionStatement","src":"19626:44:60"},{"nodeType":"YulAssignment","src":"19687:27:60","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"19702:7:60"},{"name":"_2","nodeType":"YulIdentifier","src":"19711:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19698:3:60"},"nodeType":"YulFunctionCall","src":"19698:16:60"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"19687:7:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19565:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"19568:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19562:2:60"},"nodeType":"YulFunctionCall","src":"19562:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19576:19:60","statements":[{"nodeType":"YulAssignment","src":"19578:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19587:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"19590:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19583:3:60"},"nodeType":"YulFunctionCall","src":"19583:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19578:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"19558:3:60","statements":[]},"src":"19554:174:60"},{"nodeType":"YulAssignment","src":"19741:27:60","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19756:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"19761:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19752:3:60"},"nodeType":"YulFunctionCall","src":"19752:11:60"},{"name":"_1","nodeType":"YulIdentifier","src":"19765:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19748:3:60"},"nodeType":"YulFunctionCall","src":"19748:20:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19741:3:60"}]}]},"nodeType":"YulCase","src":"19437:341:60","value":{"kind":"number","nodeType":"YulLiteral","src":"19442:1:60","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"19201:9:60"},{"name":"_2","nodeType":"YulIdentifier","src":"19212:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19197:3:60"},"nodeType":"YulFunctionCall","src":"19197:18:60"},"nodeType":"YulSwitch","src":"19190:588:60"}]},"name":"abi_encode_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"18989:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"18996:3:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19004:3:60","type":""}],"src":"18954:830:60"},{"body":{"nodeType":"YulBlock","src":"20033:430:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20050:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20065:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"20073:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20061:3:60"},"nodeType":"YulFunctionCall","src":"20061:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20043:6:60"},"nodeType":"YulFunctionCall","src":"20043:74:60"},"nodeType":"YulExpressionStatement","src":"20043:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20137:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20148:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20133:3:60"},"nodeType":"YulFunctionCall","src":"20133:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"20153:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20126:6:60"},"nodeType":"YulFunctionCall","src":"20126:34:60"},"nodeType":"YulExpressionStatement","src":"20126:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20180:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20191:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20176:3:60"},"nodeType":"YulFunctionCall","src":"20176:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"20196:3:60","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20169:6:60"},"nodeType":"YulFunctionCall","src":"20169:31:60"},"nodeType":"YulExpressionStatement","src":"20169:31:60"},{"nodeType":"YulVariableDeclaration","src":"20209:68:60","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"20249:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20261:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20272:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20257:3:60"},"nodeType":"YulFunctionCall","src":"20257:19:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"20223:25:60"},"nodeType":"YulFunctionCall","src":"20223:54:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"20213:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20297:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20308:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20293:3:60"},"nodeType":"YulFunctionCall","src":"20293:18:60"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"20317:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"20325:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20313:3:60"},"nodeType":"YulFunctionCall","src":"20313:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20286:6:60"},"nodeType":"YulFunctionCall","src":"20286:50:60"},"nodeType":"YulExpressionStatement","src":"20286:50:60"},{"nodeType":"YulAssignment","src":"20345:49:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"20379:6:60"},{"name":"tail_1","nodeType":"YulIdentifier","src":"20387:6:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"20353:25:60"},"nodeType":"YulFunctionCall","src":"20353:41:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20345:4:60"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20414:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20425:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20410:3:60"},"nodeType":"YulFunctionCall","src":"20410:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"20435:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"20443:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20431:3:60"},"nodeType":"YulFunctionCall","src":"20431:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20403:6:60"},"nodeType":"YulFunctionCall","src":"20403:54:60"},"nodeType":"YulExpressionStatement","src":"20403:54:60"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19970:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"19981:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19989:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19997:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20005:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20013:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20024:4:60","type":""}],"src":"19789:674:60"},{"body":{"nodeType":"YulBlock","src":"20558:545:60","statements":[{"body":{"nodeType":"YulBlock","src":"20604:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20613:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20616:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20606:6:60"},"nodeType":"YulFunctionCall","src":"20606:12:60"},"nodeType":"YulExpressionStatement","src":"20606:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20579:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"20588:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20575:3:60"},"nodeType":"YulFunctionCall","src":"20575:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"20600:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20571:3:60"},"nodeType":"YulFunctionCall","src":"20571:32:60"},"nodeType":"YulIf","src":"20568:52:60"},{"nodeType":"YulVariableDeclaration","src":"20629:30:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20649:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20643:5:60"},"nodeType":"YulFunctionCall","src":"20643:16:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"20633:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"20702:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20711:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20714:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20704:6:60"},"nodeType":"YulFunctionCall","src":"20704:12:60"},"nodeType":"YulExpressionStatement","src":"20704:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"20674:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"20682:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20671:2:60"},"nodeType":"YulFunctionCall","src":"20671:30:60"},"nodeType":"YulIf","src":"20668:50:60"},{"nodeType":"YulVariableDeclaration","src":"20727:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20741:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"20752:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20737:3:60"},"nodeType":"YulFunctionCall","src":"20737:22:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20731:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"20807:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20816:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20819:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20809:6:60"},"nodeType":"YulFunctionCall","src":"20809:12:60"},"nodeType":"YulExpressionStatement","src":"20809:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20786:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"20790:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20782:3:60"},"nodeType":"YulFunctionCall","src":"20782:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"20797:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20778:3:60"},"nodeType":"YulFunctionCall","src":"20778:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20771:6:60"},"nodeType":"YulFunctionCall","src":"20771:35:60"},"nodeType":"YulIf","src":"20768:55:60"},{"nodeType":"YulVariableDeclaration","src":"20832:19:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20848:2:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20842:5:60"},"nodeType":"YulFunctionCall","src":"20842:9:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"20836:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20860:62:60","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"20918:2:60"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"20889:28:60"},"nodeType":"YulFunctionCall","src":"20889:32:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"20873:15:60"},"nodeType":"YulFunctionCall","src":"20873:49:60"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"20864:5:60","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"20938:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"20945:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20931:6:60"},"nodeType":"YulFunctionCall","src":"20931:17:60"},"nodeType":"YulExpressionStatement","src":"20931:17:60"},{"body":{"nodeType":"YulBlock","src":"20994:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21003:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21006:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20996:6:60"},"nodeType":"YulFunctionCall","src":"20996:12:60"},"nodeType":"YulExpressionStatement","src":"20996:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20971:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"20975:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20967:3:60"},"nodeType":"YulFunctionCall","src":"20967:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"20980:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20963:3:60"},"nodeType":"YulFunctionCall","src":"20963:20:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"20985:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20960:2:60"},"nodeType":"YulFunctionCall","src":"20960:33:60"},"nodeType":"YulIf","src":"20957:53:60"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"21045:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"21049:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21041:3:60"},"nodeType":"YulFunctionCall","src":"21041:11:60"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"21058:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"21065:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21054:3:60"},"nodeType":"YulFunctionCall","src":"21054:14:60"},{"name":"_2","nodeType":"YulIdentifier","src":"21070:2:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"21019:21:60"},"nodeType":"YulFunctionCall","src":"21019:54:60"},"nodeType":"YulExpressionStatement","src":"21019:54:60"},{"nodeType":"YulAssignment","src":"21082:15:60","value":{"name":"array","nodeType":"YulIdentifier","src":"21092:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"21082:6:60"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20524:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"20535:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"20547:6:60","type":""}],"src":"20468:635:60"},{"body":{"nodeType":"YulBlock","src":"21155:197:60","statements":[{"nodeType":"YulVariableDeclaration","src":"21165:36:60","value":{"kind":"number","nodeType":"YulLiteral","src":"21175:26:60","type":"","value":"0xffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21169:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21210:21:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21225:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"21228:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21221:3:60"},"nodeType":"YulFunctionCall","src":"21221:10:60"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"21214:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21240:21:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21255:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"21258:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21251:3:60"},"nodeType":"YulFunctionCall","src":"21251:10:60"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"21244:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"21295:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21297:16:60"},"nodeType":"YulFunctionCall","src":"21297:18:60"},"nodeType":"YulExpressionStatement","src":"21297:18:60"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"21276:3:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"21285:2:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"21289:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21281:3:60"},"nodeType":"YulFunctionCall","src":"21281:12:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21273:2:60"},"nodeType":"YulFunctionCall","src":"21273:21:60"},"nodeType":"YulIf","src":"21270:47:60"},{"nodeType":"YulAssignment","src":"21326:20:60","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"21337:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"21342:3:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21333:3:60"},"nodeType":"YulFunctionCall","src":"21333:13:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"21326:3:60"}]}]},"name":"checked_add_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21138:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"21141:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"21147:3:60","type":""}],"src":"21108:244:60"},{"body":{"nodeType":"YulBlock","src":"21504:236:60","statements":[{"nodeType":"YulAssignment","src":"21514:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21526:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21537:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21522:3:60"},"nodeType":"YulFunctionCall","src":"21522:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21514:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21556:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21571:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"21579:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21567:3:60"},"nodeType":"YulFunctionCall","src":"21567:31:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21549:6:60"},"nodeType":"YulFunctionCall","src":"21549:50:60"},"nodeType":"YulExpressionStatement","src":"21549:50:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21619:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21630:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21615:3:60"},"nodeType":"YulFunctionCall","src":"21615:18:60"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21649:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21642:6:60"},"nodeType":"YulFunctionCall","src":"21642:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21635:6:60"},"nodeType":"YulFunctionCall","src":"21635:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21608:6:60"},"nodeType":"YulFunctionCall","src":"21608:50:60"},"nodeType":"YulExpressionStatement","src":"21608:50:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21678:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21689:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21674:3:60"},"nodeType":"YulFunctionCall","src":"21674:18:60"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"21698:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"21706:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21694:3:60"},"nodeType":"YulFunctionCall","src":"21694:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21667:6:60"},"nodeType":"YulFunctionCall","src":"21667:67:60"},"nodeType":"YulExpressionStatement","src":"21667:67:60"}]},"name":"abi_encode_tuple_t_uint64_t_bool_t_uint96__to_t_uint64_t_bool_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21457:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21468:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21476:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21484:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21495:4:60","type":""}],"src":"21357:383:60"},{"body":{"nodeType":"YulBlock","src":"21826:170:60","statements":[{"body":{"nodeType":"YulBlock","src":"21872:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21881:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21884:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21874:6:60"},"nodeType":"YulFunctionCall","src":"21874:12:60"},"nodeType":"YulExpressionStatement","src":"21874:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"21847:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"21856:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21843:3:60"},"nodeType":"YulFunctionCall","src":"21843:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"21868:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21839:3:60"},"nodeType":"YulFunctionCall","src":"21839:32:60"},"nodeType":"YulIf","src":"21836:52:60"},{"nodeType":"YulVariableDeclaration","src":"21897:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21916:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21910:5:60"},"nodeType":"YulFunctionCall","src":"21910:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"21901:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21960:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"21935:24:60"},"nodeType":"YulFunctionCall","src":"21935:31:60"},"nodeType":"YulExpressionStatement","src":"21935:31:60"},{"nodeType":"YulAssignment","src":"21975:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"21985:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"21975:6:60"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21792:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"21803:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"21815:6:60","type":""}],"src":"21745:251:60"},{"body":{"nodeType":"YulBlock","src":"22061:78:60","statements":[{"nodeType":"YulAssignment","src":"22071:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"22086:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22080:5:60"},"nodeType":"YulFunctionCall","src":"22080:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"22071:5:60"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22127:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"22102:24:60"},"nodeType":"YulFunctionCall","src":"22102:31:60"},"nodeType":"YulExpressionStatement","src":"22102:31:60"}]},"name":"abi_decode_uint160_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"22040:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"22051:5:60","type":""}],"src":"22001:138:60"},{"body":{"nodeType":"YulBlock","src":"22228:204:60","statements":[{"body":{"nodeType":"YulBlock","src":"22272:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22281:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22284:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22274:6:60"},"nodeType":"YulFunctionCall","src":"22274:12:60"},"nodeType":"YulExpressionStatement","src":"22274:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"22249:3:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"22254:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22245:3:60"},"nodeType":"YulFunctionCall","src":"22245:19:60"},{"kind":"number","nodeType":"YulLiteral","src":"22266:4:60","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"22241:3:60"},"nodeType":"YulFunctionCall","src":"22241:30:60"},"nodeType":"YulIf","src":"22238:50:60"},{"nodeType":"YulAssignment","src":"22297:31:60","value":{"arguments":[],"functionName":{"name":"allocate_memory_4403","nodeType":"YulIdentifier","src":"22306:20:60"},"nodeType":"YulFunctionCall","src":"22306:22:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"22297:5:60"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22344:5:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22357:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22351:5:60"},"nodeType":"YulFunctionCall","src":"22351:16:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22337:6:60"},"nodeType":"YulFunctionCall","src":"22337:31:60"},"nodeType":"YulExpressionStatement","src":"22337:31:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22388:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"22395:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22384:3:60"},"nodeType":"YulFunctionCall","src":"22384:14:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22410:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22421:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22406:3:60"},"nodeType":"YulFunctionCall","src":"22406:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22400:5:60"},"nodeType":"YulFunctionCall","src":"22400:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22377:6:60"},"nodeType":"YulFunctionCall","src":"22377:49:60"},"nodeType":"YulExpressionStatement","src":"22377:49:60"}]},"name":"abi_decode_struct_RewardSummations_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22199:9:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"22210:3:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"22218:5:60","type":""}],"src":"22144:288:60"},{"body":{"nodeType":"YulBlock","src":"22496:112:60","statements":[{"nodeType":"YulAssignment","src":"22506:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"22521:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22515:5:60"},"nodeType":"YulFunctionCall","src":"22515:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"22506:5:60"}]},{"body":{"nodeType":"YulBlock","src":"22586:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22595:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22598:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22588:6:60"},"nodeType":"YulFunctionCall","src":"22588:12:60"},"nodeType":"YulExpressionStatement","src":"22588:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22550:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22561:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"22568:14:60","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22557:3:60"},"nodeType":"YulFunctionCall","src":"22557:26:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22547:2:60"},"nodeType":"YulFunctionCall","src":"22547:37:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22540:6:60"},"nodeType":"YulFunctionCall","src":"22540:45:60"},"nodeType":"YulIf","src":"22537:65:60"}]},"name":"abi_decode_uint48_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"22475:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"22486:5:60","type":""}],"src":"22437:171:60"},{"body":{"nodeType":"YulBlock","src":"22721:1038:60","statements":[{"nodeType":"YulVariableDeclaration","src":"22731:33:60","value":{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"22745:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"22754:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22741:3:60"},"nodeType":"YulFunctionCall","src":"22741:23:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22735:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"22789:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22798:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22801:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22791:6:60"},"nodeType":"YulFunctionCall","src":"22791:12:60"},"nodeType":"YulExpressionStatement","src":"22791:12:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"22780:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22784:3:60","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"22776:3:60"},"nodeType":"YulFunctionCall","src":"22776:12:60"},"nodeType":"YulIf","src":"22773:32:60"},{"nodeType":"YulVariableDeclaration","src":"22814:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22834:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22828:5:60"},"nodeType":"YulFunctionCall","src":"22828:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"22818:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"22846:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22868:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"22876:4:60","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22864:3:60"},"nodeType":"YulFunctionCall","src":"22864:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"22850:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"22956:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"22958:16:60"},"nodeType":"YulFunctionCall","src":"22958:18:60"},"nodeType":"YulExpressionStatement","src":"22958:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22899:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"22911:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22896:2:60"},"nodeType":"YulFunctionCall","src":"22896:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22935:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"22947:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22932:2:60"},"nodeType":"YulFunctionCall","src":"22932:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"22893:2:60"},"nodeType":"YulFunctionCall","src":"22893:62:60"},"nodeType":"YulIf","src":"22890:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22994:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22998:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22987:6:60"},"nodeType":"YulFunctionCall","src":"22987:22:60"},"nodeType":"YulExpressionStatement","src":"22987:22:60"},{"body":{"nodeType":"YulBlock","src":"23033:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23042:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23045:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23035:6:60"},"nodeType":"YulFunctionCall","src":"23035:12:60"},"nodeType":"YulExpressionStatement","src":"23035:12:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23025:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"23029:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23021:3:60"},"nodeType":"YulFunctionCall","src":"23021:11:60"},"nodeType":"YulIf","src":"23018:31:60"},{"nodeType":"YulVariableDeclaration","src":"23058:35:60","value":{"arguments":[],"functionName":{"name":"allocate_memory_4403","nodeType":"YulIdentifier","src":"23071:20:60"},"nodeType":"YulFunctionCall","src":"23071:22:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"23062:5:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23102:31:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23123:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23117:5:60"},"nodeType":"YulFunctionCall","src":"23117:16:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"23106:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"23166:7:60"}],"functionName":{"name":"validator_revert_uint96","nodeType":"YulIdentifier","src":"23142:23:60"},"nodeType":"YulFunctionCall","src":"23142:32:60"},"nodeType":"YulExpressionStatement","src":"23142:32:60"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23190:5:60"},{"name":"value_1","nodeType":"YulIdentifier","src":"23197:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23183:6:60"},"nodeType":"YulFunctionCall","src":"23183:22:60"},"nodeType":"YulExpressionStatement","src":"23183:22:60"},{"nodeType":"YulVariableDeclaration","src":"23214:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23239:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23250:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23235:3:60"},"nodeType":"YulFunctionCall","src":"23235:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23229:5:60"},"nodeType":"YulFunctionCall","src":"23229:25:60"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"23218:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"23288:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"23263:24:60"},"nodeType":"YulFunctionCall","src":"23263:33:60"},"nodeType":"YulExpressionStatement","src":"23263:33:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23316:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"23323:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23312:3:60"},"nodeType":"YulFunctionCall","src":"23312:14:60"},{"name":"value_2","nodeType":"YulIdentifier","src":"23328:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23305:6:60"},"nodeType":"YulFunctionCall","src":"23305:31:60"},"nodeType":"YulExpressionStatement","src":"23305:31:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"23352:6:60"},{"name":"value","nodeType":"YulIdentifier","src":"23360:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23345:6:60"},"nodeType":"YulFunctionCall","src":"23345:21:60"},"nodeType":"YulExpressionStatement","src":"23345:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"23386:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"23394:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23382:3:60"},"nodeType":"YulFunctionCall","src":"23382:15:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23449:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23460:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23445:3:60"},"nodeType":"YulFunctionCall","src":"23445:18:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"23465:7:60"}],"functionName":{"name":"abi_decode_struct_RewardSummations_fromMemory","nodeType":"YulIdentifier","src":"23399:45:60"},"nodeType":"YulFunctionCall","src":"23399:74:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23375:6:60"},"nodeType":"YulFunctionCall","src":"23375:99:60"},"nodeType":"YulExpressionStatement","src":"23375:99:60"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"23494:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"23502:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23490:3:60"},"nodeType":"YulFunctionCall","src":"23490:15:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23541:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23552:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23537:3:60"},"nodeType":"YulFunctionCall","src":"23537:19:60"}],"functionName":{"name":"abi_decode_uint160_fromMemory","nodeType":"YulIdentifier","src":"23507:29:60"},"nodeType":"YulFunctionCall","src":"23507:50:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23483:6:60"},"nodeType":"YulFunctionCall","src":"23483:75:60"},"nodeType":"YulExpressionStatement","src":"23483:75:60"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"23578:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"23586:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23574:3:60"},"nodeType":"YulFunctionCall","src":"23574:17:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23626:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23637:4:60","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23622:3:60"},"nodeType":"YulFunctionCall","src":"23622:20:60"}],"functionName":{"name":"abi_decode_uint48_fromMemory","nodeType":"YulIdentifier","src":"23593:28:60"},"nodeType":"YulFunctionCall","src":"23593:50:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23567:6:60"},"nodeType":"YulFunctionCall","src":"23567:77:60"},"nodeType":"YulExpressionStatement","src":"23567:77:60"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"23664:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"23672:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23660:3:60"},"nodeType":"YulFunctionCall","src":"23660:16:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23711:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23722:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23707:3:60"},"nodeType":"YulFunctionCall","src":"23707:19:60"}],"functionName":{"name":"abi_decode_uint48_fromMemory","nodeType":"YulIdentifier","src":"23678:28:60"},"nodeType":"YulFunctionCall","src":"23678:49:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23653:6:60"},"nodeType":"YulFunctionCall","src":"23653:75:60"},"nodeType":"YulExpressionStatement","src":"23653:75:60"},{"nodeType":"YulAssignment","src":"23737:16:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"23747:6:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"23737:6:60"}]}]},"name":"abi_decode_tuple_t_struct$_Position_$10634_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22687:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22698:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22710:6:60","type":""}],"src":"22613:1146:60"},{"body":{"nodeType":"YulBlock","src":"24013:414:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24030:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24045:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"24053:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24041:3:60"},"nodeType":"YulFunctionCall","src":"24041:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24023:6:60"},"nodeType":"YulFunctionCall","src":"24023:74:60"},"nodeType":"YulExpressionStatement","src":"24023:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24117:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24128:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24113:3:60"},"nodeType":"YulFunctionCall","src":"24113:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"24133:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24106:6:60"},"nodeType":"YulFunctionCall","src":"24106:34:60"},"nodeType":"YulExpressionStatement","src":"24106:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24160:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24171:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24156:3:60"},"nodeType":"YulFunctionCall","src":"24156:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"24176:3:60","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24149:6:60"},"nodeType":"YulFunctionCall","src":"24149:31:60"},"nodeType":"YulExpressionStatement","src":"24149:31:60"},{"nodeType":"YulVariableDeclaration","src":"24189:60:60","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"24221:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24233:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24244:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24229:3:60"},"nodeType":"YulFunctionCall","src":"24229:19:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"24203:17:60"},"nodeType":"YulFunctionCall","src":"24203:46:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"24193:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24269:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24280:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24265:3:60"},"nodeType":"YulFunctionCall","src":"24265:18:60"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24289:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"24297:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24285:3:60"},"nodeType":"YulFunctionCall","src":"24285:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24258:6:60"},"nodeType":"YulFunctionCall","src":"24258:50:60"},"nodeType":"YulExpressionStatement","src":"24258:50:60"},{"nodeType":"YulAssignment","src":"24317:41:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24343:6:60"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24351:6:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"24325:17:60"},"nodeType":"YulFunctionCall","src":"24325:33:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24317:4:60"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24378:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24389:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24374:3:60"},"nodeType":"YulFunctionCall","src":"24374:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"24399:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"24407:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24395:3:60"},"nodeType":"YulFunctionCall","src":"24395:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24367:6:60"},"nodeType":"YulFunctionCall","src":"24367:54:60"},"nodeType":"YulExpressionStatement","src":"24367:54:60"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23950:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"23961:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23969:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23977:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23985:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23993:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24004:4:60","type":""}],"src":"23764:663:60"},{"body":{"nodeType":"YulBlock","src":"24533:76:60","statements":[{"nodeType":"YulAssignment","src":"24543:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24555:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24566:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24551:3:60"},"nodeType":"YulFunctionCall","src":"24551:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24543:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24585:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"24596:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24578:6:60"},"nodeType":"YulFunctionCall","src":"24578:25:60"},"nodeType":"YulExpressionStatement","src":"24578:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24502:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24513:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24524:4:60","type":""}],"src":"24432:177:60"},{"body":{"nodeType":"YulBlock","src":"24692:167:60","statements":[{"body":{"nodeType":"YulBlock","src":"24738:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24747:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24750:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24740:6:60"},"nodeType":"YulFunctionCall","src":"24740:12:60"},"nodeType":"YulExpressionStatement","src":"24740:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"24713:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"24722:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24709:3:60"},"nodeType":"YulFunctionCall","src":"24709:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"24734:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"24705:3:60"},"nodeType":"YulFunctionCall","src":"24705:32:60"},"nodeType":"YulIf","src":"24702:52:60"},{"nodeType":"YulVariableDeclaration","src":"24763:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24782:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24776:5:60"},"nodeType":"YulFunctionCall","src":"24776:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"24767:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24823:5:60"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"24801:21:60"},"nodeType":"YulFunctionCall","src":"24801:28:60"},"nodeType":"YulExpressionStatement","src":"24801:28:60"},{"nodeType":"YulAssignment","src":"24838:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"24848:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"24838:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24658:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"24669:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"24681:6:60","type":""}],"src":"24614:245:60"},{"body":{"nodeType":"YulBlock","src":"25114:414:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25131:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25146:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"25154:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25142:3:60"},"nodeType":"YulFunctionCall","src":"25142:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25124:6:60"},"nodeType":"YulFunctionCall","src":"25124:74:60"},"nodeType":"YulExpressionStatement","src":"25124:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25218:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"25229:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25214:3:60"},"nodeType":"YulFunctionCall","src":"25214:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"25234:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25207:6:60"},"nodeType":"YulFunctionCall","src":"25207:34:60"},"nodeType":"YulExpressionStatement","src":"25207:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25261:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"25272:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25257:3:60"},"nodeType":"YulFunctionCall","src":"25257:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"25277:3:60","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25250:6:60"},"nodeType":"YulFunctionCall","src":"25250:31:60"},"nodeType":"YulExpressionStatement","src":"25250:31:60"},{"nodeType":"YulVariableDeclaration","src":"25290:60:60","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"25322:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25334:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"25345:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25330:3:60"},"nodeType":"YulFunctionCall","src":"25330:19:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"25304:17:60"},"nodeType":"YulFunctionCall","src":"25304:46:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"25294:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25370:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"25381:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25366:3:60"},"nodeType":"YulFunctionCall","src":"25366:18:60"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"25390:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"25398:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25386:3:60"},"nodeType":"YulFunctionCall","src":"25386:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25359:6:60"},"nodeType":"YulFunctionCall","src":"25359:50:60"},"nodeType":"YulExpressionStatement","src":"25359:50:60"},{"nodeType":"YulAssignment","src":"25418:41:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"25444:6:60"},{"name":"tail_1","nodeType":"YulIdentifier","src":"25452:6:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"25426:17:60"},"nodeType":"YulFunctionCall","src":"25426:33:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25418:4:60"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25479:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"25490:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25475:3:60"},"nodeType":"YulFunctionCall","src":"25475:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"25500:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"25508:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25496:3:60"},"nodeType":"YulFunctionCall","src":"25496:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25468:6:60"},"nodeType":"YulFunctionCall","src":"25468:54:60"},"nodeType":"YulExpressionStatement","src":"25468:54:60"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25051:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25062:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25070:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25078:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25086:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25094:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25105:4:60","type":""}],"src":"24864:664:60"},{"body":{"nodeType":"YulBlock","src":"25614:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"25660:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25669:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"25672:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"25662:6:60"},"nodeType":"YulFunctionCall","src":"25662:12:60"},"nodeType":"YulExpressionStatement","src":"25662:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"25635:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"25644:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25631:3:60"},"nodeType":"YulFunctionCall","src":"25631:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"25656:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"25627:3:60"},"nodeType":"YulFunctionCall","src":"25627:32:60"},"nodeType":"YulIf","src":"25624:52:60"},{"nodeType":"YulAssignment","src":"25685:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25701:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25695:5:60"},"nodeType":"YulFunctionCall","src":"25695:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"25685:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25580:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"25591:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"25603:6:60","type":""}],"src":"25533:184:60"},{"body":{"nodeType":"YulBlock","src":"25803:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"25836:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"25850:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"25860:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25854:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"25881:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"25885:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25874:6:60"},"nodeType":"YulFunctionCall","src":"25874:17:60"},"nodeType":"YulExpressionStatement","src":"25874:17:60"},{"nodeType":"YulVariableDeclaration","src":"25904:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"25926:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"25930:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"25916:9:60"},"nodeType":"YulFunctionCall","src":"25916:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"25908:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"25948:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"25971:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25981:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"25988:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"26000:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25984:3:60"},"nodeType":"YulFunctionCall","src":"25984:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"25977:3:60"},"nodeType":"YulFunctionCall","src":"25977:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25967:3:60"},"nodeType":"YulFunctionCall","src":"25967:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"25952:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"26042:23:60","statements":[{"nodeType":"YulAssignment","src":"26044:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"26059:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"26044:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"26024:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"26036:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26021:2:60"},"nodeType":"YulFunctionCall","src":"26021:20:60"},"nodeType":"YulIf","src":"26018:47:60"},{"nodeType":"YulVariableDeclaration","src":"26078:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"26092:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26102:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"26109:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"26114:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26105:3:60"},"nodeType":"YulFunctionCall","src":"26105:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"26098:3:60"},"nodeType":"YulFunctionCall","src":"26098:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26088:3:60"},"nodeType":"YulFunctionCall","src":"26088:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"26082:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"26132:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"26145:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"26136:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"26230:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"26239:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"26246:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"26232:6:60"},"nodeType":"YulFunctionCall","src":"26232:17:60"},"nodeType":"YulExpressionStatement","src":"26232:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"26180:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"26187:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26177:2:60"},"nodeType":"YulFunctionCall","src":"26177:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"26191:26:60","statements":[{"nodeType":"YulAssignment","src":"26193:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"26206:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"26213:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26202:3:60"},"nodeType":"YulFunctionCall","src":"26202:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"26193:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"26173:3:60","statements":[]},"src":"26169:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"25819:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"25824:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25816:2:60"},"nodeType":"YulFunctionCall","src":"25816:11:60"},"nodeType":"YulIf","src":"25813:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"25775:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"25782:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"25787:10:60","type":""}],"src":"25722:545:60"},{"body":{"nodeType":"YulBlock","src":"26357:141:60","statements":[{"nodeType":"YulAssignment","src":"26367:125:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"26382:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26400:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"26403:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26396:3:60"},"nodeType":"YulFunctionCall","src":"26396:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"26409:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"26392:3:60"},"nodeType":"YulFunctionCall","src":"26392:84:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"26388:3:60"},"nodeType":"YulFunctionCall","src":"26388:89:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26378:3:60"},"nodeType":"YulFunctionCall","src":"26378:100:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26484:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"26487:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26480:3:60"},"nodeType":"YulFunctionCall","src":"26480:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"26375:2:60"},"nodeType":"YulFunctionCall","src":"26375:117:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"26367:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"26334:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"26340:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"26348:4:60","type":""}],"src":"26272:226:60"},{"body":{"nodeType":"YulBlock","src":"26599:1375:60","statements":[{"nodeType":"YulVariableDeclaration","src":"26609:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"26629:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26623:5:60"},"nodeType":"YulFunctionCall","src":"26623:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"26613:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"26676:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"26678:16:60"},"nodeType":"YulFunctionCall","src":"26678:18:60"},"nodeType":"YulExpressionStatement","src":"26678:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"26648:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"26656:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26645:2:60"},"nodeType":"YulFunctionCall","src":"26645:30:60"},"nodeType":"YulIf","src":"26642:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"26751:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"26789:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"26783:5:60"},"nodeType":"YulFunctionCall","src":"26783:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"26757:25:60"},"nodeType":"YulFunctionCall","src":"26757:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"26797:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"26707:43:60"},"nodeType":"YulFunctionCall","src":"26707:97:60"},"nodeType":"YulExpressionStatement","src":"26707:97:60"},{"nodeType":"YulVariableDeclaration","src":"26813:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"26830:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"26817:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"26840:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"26859:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"26844:11:60","type":""}]},{"nodeType":"YulAssignment","src":"26872:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"26885:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"26872:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"26942:775:60","statements":[{"nodeType":"YulVariableDeclaration","src":"26956:94:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"26975:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"26983:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26971:3:60"},"nodeType":"YulFunctionCall","src":"26971:79:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"26960:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27063:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"27107:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"27077:29:60"},"nodeType":"YulFunctionCall","src":"27077:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"27067:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"27125:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"27134:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"27129:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"27212:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"27237:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"27255:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"27260:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27251:3:60"},"nodeType":"YulFunctionCall","src":"27251:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27245:5:60"},"nodeType":"YulFunctionCall","src":"27245:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"27230:6:60"},"nodeType":"YulFunctionCall","src":"27230:42:60"},"nodeType":"YulExpressionStatement","src":"27230:42:60"},{"nodeType":"YulAssignment","src":"27289:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"27303:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"27311:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27299:3:60"},"nodeType":"YulFunctionCall","src":"27299:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"27289:6:60"}]},{"nodeType":"YulAssignment","src":"27330:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"27347:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"27358:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27343:3:60"},"nodeType":"YulFunctionCall","src":"27343:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"27330:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"27159:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"27162:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27156:2:60"},"nodeType":"YulFunctionCall","src":"27156:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"27171:28:60","statements":[{"nodeType":"YulAssignment","src":"27173:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"27182:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"27185:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27178:3:60"},"nodeType":"YulFunctionCall","src":"27178:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"27173:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"27152:3:60","statements":[]},"src":"27148:236:60"},{"body":{"nodeType":"YulBlock","src":"27432:226:60","statements":[{"nodeType":"YulVariableDeclaration","src":"27450:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"27477:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"27482:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27473:3:60"},"nodeType":"YulFunctionCall","src":"27473:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27467:5:60"},"nodeType":"YulFunctionCall","src":"27467:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"27454:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"27517:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"27529:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27556:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"27559:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27552:3:60"},"nodeType":"YulFunctionCall","src":"27552:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"27568:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27548:3:60"},"nodeType":"YulFunctionCall","src":"27548:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"27574:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"27544:3:60"},"nodeType":"YulFunctionCall","src":"27544:97:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27540:3:60"},"nodeType":"YulFunctionCall","src":"27540:102:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27525:3:60"},"nodeType":"YulFunctionCall","src":"27525:118:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"27510:6:60"},"nodeType":"YulFunctionCall","src":"27510:134:60"},"nodeType":"YulExpressionStatement","src":"27510:134:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"27403:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"27412:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27400:2:60"},"nodeType":"YulFunctionCall","src":"27400:19:60"},"nodeType":"YulIf","src":"27397:261:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"27678:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27692:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"27695:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27688:3:60"},"nodeType":"YulFunctionCall","src":"27688:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"27704:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27684:3:60"},"nodeType":"YulFunctionCall","src":"27684:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"27671:6:60"},"nodeType":"YulFunctionCall","src":"27671:36:60"},"nodeType":"YulExpressionStatement","src":"27671:36:60"}]},"nodeType":"YulCase","src":"26935:782:60","value":{"kind":"number","nodeType":"YulLiteral","src":"26940:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"27734:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"27748:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"27761:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"27752:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"27797:67:60","statements":[{"nodeType":"YulAssignment","src":"27815:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"27834:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"27839:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27830:3:60"},"nodeType":"YulFunctionCall","src":"27830:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27824:5:60"},"nodeType":"YulFunctionCall","src":"27824:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"27815:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"27778:6:60"},"nodeType":"YulIf","src":"27775:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"27884:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27943:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"27950:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"27890:52:60"},"nodeType":"YulFunctionCall","src":"27890:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"27877:6:60"},"nodeType":"YulFunctionCall","src":"27877:81:60"},"nodeType":"YulExpressionStatement","src":"27877:81:60"}]},"nodeType":"YulCase","src":"27726:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"26915:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"26923:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26912:2:60"},"nodeType":"YulFunctionCall","src":"26912:14:60"},"nodeType":"YulSwitch","src":"26905:1063:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"26584:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"26590:3:60","type":""}],"src":"26503:1471:60"},{"body":{"nodeType":"YulBlock","src":"28073:1375:60","statements":[{"nodeType":"YulVariableDeclaration","src":"28083:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"28103:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28097:5:60"},"nodeType":"YulFunctionCall","src":"28097:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"28087:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"28150:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"28152:16:60"},"nodeType":"YulFunctionCall","src":"28152:18:60"},"nodeType":"YulExpressionStatement","src":"28152:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"28122:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"28130:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"28119:2:60"},"nodeType":"YulFunctionCall","src":"28119:30:60"},"nodeType":"YulIf","src":"28116:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"28225:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"28263:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"28257:5:60"},"nodeType":"YulFunctionCall","src":"28257:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"28231:25:60"},"nodeType":"YulFunctionCall","src":"28231:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"28271:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"28181:43:60"},"nodeType":"YulFunctionCall","src":"28181:97:60"},"nodeType":"YulExpressionStatement","src":"28181:97:60"},{"nodeType":"YulVariableDeclaration","src":"28287:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"28304:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"28291:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28314:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"28333:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"28318:11:60","type":""}]},{"nodeType":"YulAssignment","src":"28346:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"28359:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"28346:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"28416:775:60","statements":[{"nodeType":"YulVariableDeclaration","src":"28430:94:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"28449:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"28457:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"28445:3:60"},"nodeType":"YulFunctionCall","src":"28445:79:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"28434:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28537:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"28581:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"28551:29:60"},"nodeType":"YulFunctionCall","src":"28551:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"28541:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"28599:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"28608:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"28603:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"28686:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"28711:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"28729:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"28734:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28725:3:60"},"nodeType":"YulFunctionCall","src":"28725:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28719:5:60"},"nodeType":"YulFunctionCall","src":"28719:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"28704:6:60"},"nodeType":"YulFunctionCall","src":"28704:42:60"},"nodeType":"YulExpressionStatement","src":"28704:42:60"},{"nodeType":"YulAssignment","src":"28763:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"28777:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"28785:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28773:3:60"},"nodeType":"YulFunctionCall","src":"28773:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"28763:6:60"}]},{"nodeType":"YulAssignment","src":"28804:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"28821:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"28832:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28817:3:60"},"nodeType":"YulFunctionCall","src":"28817:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"28804:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"28633:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"28636:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"28630:2:60"},"nodeType":"YulFunctionCall","src":"28630:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"28645:28:60","statements":[{"nodeType":"YulAssignment","src":"28647:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"28656:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"28659:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28652:3:60"},"nodeType":"YulFunctionCall","src":"28652:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"28647:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"28626:3:60","statements":[]},"src":"28622:236:60"},{"body":{"nodeType":"YulBlock","src":"28906:226:60","statements":[{"nodeType":"YulVariableDeclaration","src":"28924:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"28951:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"28956:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28947:3:60"},"nodeType":"YulFunctionCall","src":"28947:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"28941:5:60"},"nodeType":"YulFunctionCall","src":"28941:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"28928:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"28991:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"29003:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29030:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"29033:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29026:3:60"},"nodeType":"YulFunctionCall","src":"29026:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"29042:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29022:3:60"},"nodeType":"YulFunctionCall","src":"29022:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"29048:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"29018:3:60"},"nodeType":"YulFunctionCall","src":"29018:97:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"29014:3:60"},"nodeType":"YulFunctionCall","src":"29014:102:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"28999:3:60"},"nodeType":"YulFunctionCall","src":"28999:118:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"28984:6:60"},"nodeType":"YulFunctionCall","src":"28984:134:60"},"nodeType":"YulExpressionStatement","src":"28984:134:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"28877:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"28886:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"28874:2:60"},"nodeType":"YulFunctionCall","src":"28874:19:60"},"nodeType":"YulIf","src":"28871:261:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"29152:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"29166:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"29169:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"29162:3:60"},"nodeType":"YulFunctionCall","src":"29162:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"29178:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29158:3:60"},"nodeType":"YulFunctionCall","src":"29158:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"29145:6:60"},"nodeType":"YulFunctionCall","src":"29145:36:60"},"nodeType":"YulExpressionStatement","src":"29145:36:60"}]},"nodeType":"YulCase","src":"28409:782:60","value":{"kind":"number","nodeType":"YulLiteral","src":"28414:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"29208:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"29222:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"29235:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"29226:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"29271:67:60","statements":[{"nodeType":"YulAssignment","src":"29289:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"29308:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"29313:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29304:3:60"},"nodeType":"YulFunctionCall","src":"29304:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29298:5:60"},"nodeType":"YulFunctionCall","src":"29298:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"29289:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"29252:6:60"},"nodeType":"YulIf","src":"29249:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"29358:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29417:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"29424:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"29364:52:60"},"nodeType":"YulFunctionCall","src":"29364:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"29351:6:60"},"nodeType":"YulFunctionCall","src":"29351:81:60"},"nodeType":"YulExpressionStatement","src":"29351:81:60"}]},"nodeType":"YulCase","src":"29200:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"28389:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"28397:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"28386:2:60"},"nodeType":"YulFunctionCall","src":"28386:14:60"},"nodeType":"YulSwitch","src":"28379:1063:60"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"28058:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"28064:3:60","type":""}],"src":"27979:1469:60"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_4403() -> memPtr\n    {\n        memPtr := mload(0x40)\n        let newFreePtr := add(memPtr, 0x40)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(0x40, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function array_allocation_size_string(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20)\n    }\n    function abi_decode_available_length_string(src, length, end) -> array\n    {\n        array := allocate_memory(array_allocation_size_string(length))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_array_string_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            mstore(dst, abi_decode_string(add(add(offset, innerOffset), _2), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_array_bytes_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_address_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            let innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff)\n            {\n                let _3 := 0\n                revert(_3, _3)\n            }\n            let _4 := add(offset, innerOffset)\n            if iszero(slt(add(_4, 63), end))\n            {\n                let _5 := 0\n                revert(_5, _5)\n            }\n            mstore(dst, abi_decode_available_length_string(add(_4, 64), calldataload(add(_4, _2)), end))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_string_memory_ptr_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_array_address_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value2 := abi_decode_array_string_dyn(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(0, 0) }\n        value3 := abi_decode_array_bytes_dyn(add(headStart, offset_3), dataEnd)\n        let offset_4 := calldataload(add(headStart, 128))\n        if gt(offset_4, _1) { revert(0, 0) }\n        value4 := abi_decode_string(add(headStart, offset_4), dataEnd)\n        value5 := calldataload(add(headStart, 160))\n    }\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IPangolinStakingPositions_$10650__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint40(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_uint64(headStart)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_enum$_ProposalState_$9544__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 8))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_encode_uint40(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint96_t_uint96_t_uint40_t_uint40_t_uint40_t_bool_t_bool__to_t_uint256_t_uint96_t_uint96_t_uint40_t_uint40_t_uint40_t_bool_t_bool__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 256)\n        mstore(headStart, value0)\n        let _1 := 0xffffffffffffffffffffffff\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        let _2 := 0xffffffffff\n        mstore(add(headStart, 96), and(value3, _2))\n        mstore(add(headStart, 128), and(value4, _2))\n        mstore(add(headStart, 160), and(value5, _2))\n        mstore(add(headStart, 192), iszero(iszero(value6)))\n        mstore(add(headStart, 224), iszero(iszero(value7)))\n    }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_array_string_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            tail := abi_encode_string(mload(srcPtr), tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_struct$_ProposalAction_$9586_memory_ptr__to_t_struct$_ProposalAction_$9586_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let tail_1 := add(headStart, 160)\n        let memberValue0 := mload(value0)\n        mstore(add(headStart, _1), 0x80)\n        let pos := tail_1\n        let length := mload(memberValue0)\n        mstore(tail_1, length)\n        pos := add(headStart, 192)\n        let srcPtr := add(memberValue0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        let memberValue0_1 := mload(add(value0, _1))\n        let _2 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        mstore(add(headStart, 64), add(sub(pos, headStart), _2))\n        let tail_2 := abi_encode_array_uint256_dyn(memberValue0_1, pos)\n        let memberValue0_2 := mload(add(value0, 64))\n        mstore(add(headStart, 96), add(sub(tail_2, headStart), _2))\n        let tail_3 := abi_encode_array_string_dyn(memberValue0_2, tail_2)\n        let memberValue0_3 := mload(add(value0, 96))\n        mstore(add(headStart, 0x80), add(sub(tail_3, headStart), _2))\n        tail := abi_encode_array_string_dyn(memberValue0_3, tail_3)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_uint40__to_t_uint40__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_ITimelock_$10726__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint64t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint64(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool_t_bool_t_uint96__to_t_bool_t_bool_t_uint96__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, iszero(iszero(value0)))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_uint96(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint96(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint96(value)\n        value0 := value\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint64t_boolt_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint64(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value1 := value\n        value2 := calldataload(add(headStart, 64))\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint40(x, y) -> sum\n    {\n        let _1 := 0xffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function checked_sub_t_uint40(x, y) -> diff\n    {\n        let _1 := 0xffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if lt(x_1, y_1) { panic_error_0x11() }\n        diff := sub(x_1, y_1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_uint64_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint40_t_uint40_t_string_memory_ptr__to_t_uint64_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint40_t_uint40_t_string_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 256\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        let _2 := 32\n        mstore(add(headStart, _2), _1)\n        let pos := tail_1\n        let length := mload(value1)\n        mstore(tail_1, length)\n        pos := add(headStart, 288)\n        let srcPtr := add(value1, _2)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _2)\n            srcPtr := add(srcPtr, _2)\n        }\n        mstore(add(headStart, 64), sub(pos, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value2, pos)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        let tail_3 := abi_encode_array_string_dyn(value3, tail_2)\n        mstore(add(headStart, 128), sub(tail_3, headStart))\n        let tail_4 := abi_encode_array_string_dyn(value4, tail_3)\n        abi_encode_uint40(value5, add(headStart, 160))\n        abi_encode_uint40(value6, add(headStart, 192))\n        mstore(add(headStart, 224), sub(tail_4, headStart))\n        tail := abi_encode_string(value7, tail_4)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_uint64_t_uint40__to_t_uint64_t_uint40__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffff))\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        mstore(pos, length)\n        let _1 := 0x20\n        let _2 := 1\n        switch and(slotValue, _2)\n        case 0 {\n            mstore(add(pos, _1), and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(add(pos, shl(5, iszero(iszero(length)))), _1)\n        }\n        case 1 {\n            mstore(0, value)\n            let dataPos := keccak256(0, _1)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _1) }\n            {\n                mstore(add(add(pos, i), _1), sload(dataPos))\n                dataPos := add(dataPos, _2)\n            }\n            ret := add(add(pos, i), _1)\n        }\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_storage_t_bytes_storage_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string_storage(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string_storage(value3, tail_1)\n        mstore(add(headStart, 128), and(value4, 0xffffffffff))\n    }\n    function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := mload(_1)\n        let array := allocate_memory(array_allocation_size_string(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n        value0 := array\n    }\n    function checked_add_t_uint96(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function abi_encode_tuple_t_uint64_t_bool_t_uint96__to_t_uint64_t_bool_t_uint96__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_uint160_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_struct_RewardSummations_fromMemory(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n        value := allocate_memory_4403()\n        mstore(value, mload(headStart))\n        mstore(add(value, 32), mload(add(headStart, 32)))\n    }\n    function abi_decode_uint48_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_Position_$10634_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 224) { revert(0, 0) }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xa0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        if slt(_1, 64) { revert(0, 0) }\n        let value := allocate_memory_4403()\n        let value_1 := mload(headStart)\n        validator_revert_uint96(value_1)\n        mstore(value, value_1)\n        let value_2 := mload(add(headStart, 32))\n        validator_revert_address(value_2)\n        mstore(add(value, 32), value_2)\n        mstore(memPtr, value)\n        mstore(add(memPtr, 32), abi_decode_struct_RewardSummations_fromMemory(add(headStart, 64), dataEnd))\n        mstore(add(memPtr, 64), abi_decode_uint160_fromMemory(add(headStart, 128)))\n        mstore(add(memPtr, 0x60), abi_decode_uint48_fromMemory(add(headStart, 0xa0)))\n        mstore(add(memPtr, 128), abi_decode_uint48_fromMemory(add(headStart, 192)))\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string(value3, tail_1)\n        mstore(add(headStart, 128), and(value4, 0xffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint40__to_t_address_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_string(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        tail := abi_encode_string(value3, tail_1)\n        mstore(add(headStart, 128), and(value4, 0xffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"9497":[{"length":32,"start":987},{"length":32,"start":6317}],"9499":[{"length":32,"start":534},{"length":32,"start":6400}],"9503":[{"length":32,"start":1113},{"length":32,"start":1752},{"length":32,"start":2822},{"length":32,"start":4713},{"length":32,"start":5658},{"length":32,"start":6127},{"length":32,"start":6253},{"length":32,"start":7354},{"length":32,"start":8239},{"length":32,"start":8418},{"length":32,"start":8683}],"9507":[{"length":32,"start":458},{"length":32,"start":7633},{"length":32,"start":7916}]},"linkReferences":{},"object":"6080604052600436106101755760003560e01c8063926c46b2116100cb578063d39046821161007f578063e907dc8111610059578063e907dc81146105cf578063f3dc6314146105ef578063fc45ddcd1461060f57600080fd5b8063d390468214610511578063d6159fe51461058d578063da35c664146105ab57600080fd5b8063b1610d7e116100b0578063b1610d7e146104c2578063b590be77146104e9578063b9a61961146104fc57600080fd5b8063926c46b21461047b578063a6c266031461049b57600080fd5b806331c5eec81161012d5780635ad77de6116101075780635ad77de6146103c95780636ffa2a81146103fd5780637aadef8b1461044757600080fd5b806331c5eec81461029f5780633d928f3c1461037c5780634c125e79146103a957600080fd5b8063176ed5ad1161015e578063176ed5ad146102045780632d4c7bd3146102505780632df23d151461027257600080fd5b80630944db161461017a5780630f1622af146101b8575b600080fd5b34801561018657600080fd5b5061019a61019536600461276d565b61062f565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b506101ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101af565b34801561021057600080fd5b506102387f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160601b0390911681526020016101af565b34801561025c57600080fd5b5061027061026b366004612847565b610afb565b005b34801561027e57600080fd5b5061029261028d366004612886565b610bfb565b6040516101af91906128b7565b3480156102ab57600080fd5b506103276102ba366004612886565b60026020819052600091825260409091208054600182015491909201546001600160601b0380831692600160601b81049091169164ffffffffff600160c01b909204821691818116916501000000000081049091169060ff600160501b8204811691600160581b90041688565b604080519889526001600160601b0397881660208a0152959096169487019490945264ffffffffff928316606087015290821660808601521660a0840152151560c0830152151560e0820152610100016101af565b34801561038857600080fd5b5061039c610397366004612886565b610caf565b6040516101af91906129c7565b3480156103b557600080fd5b506102706103c4366004612886565b610f68565b3480156103d557600080fd5b506102387f000000000000000000000000000000000000000000000000000000000000000081565b34801561040957600080fd5b50610431610418366004612a78565b60056020526000908152604090205464ffffffffff1681565b60405164ffffffffff90911681526020016101af565b34801561045357600080fd5b506101ec7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048757600080fd5b50610270610496366004612886565b61113c565b3480156104a757600080fd5b5060005461023890600160501b90046001600160601b031681565b3480156104ce57600080fd5b506000546104319065010000000000900464ffffffffff1681565b6102706104f7366004612886565b611515565b34801561050857600080fd5b506102706117ed565b34801561051d57600080fd5b5061056761052c366004612a91565b600460209081526000928352604080842090915290825290205460ff808216916101008104909116906201000090046001600160601b031683565b60408051931515845291151560208401526001600160601b0316908201526060016101af565b34801561059957600080fd5b506000546104319064ffffffffff1681565b3480156105b757600080fd5b506105c160015481565b6040519081526020016101af565b3480156105db57600080fd5b506102706105ea366004612ad0565b611862565b3480156105fb57600080fd5b5061027061060a366004612afb565b6119c0565b34801561061b57600080fd5b5061027061062a366004612847565b611caf565b60008551875114158061064457508451875114155b8061065157508351875114155b1561066f57604051634a7f394f60e01b815260040160405180910390fd5b600a8751111561069257604051634a7f394f60e01b815260040160405180910390fd5b61069b82611d98565b600080546106b09064ffffffffff1642612b50565b60008054919250906106d29065010000000000900464ffffffffff1683612b50565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636a42b8f86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190612b79565b6000546107779064ffffffffff65010000000000820481169116612b50565b6107819190612b50565b600054909150600160501b90046001600160601b03166107aa866107a58442612b92565b611e7f565b6001600160601b031610156107d257604051633048076b60e11b815260040160405180910390fd5b60008581526005602052604090205464ffffffffff1642101561080857604051633048076b60e11b815260040160405180910390fd5b6108128142612b50565b6000868152600560205260408120805464ffffffffff191664ffffffffff93909316929092179091556001805490919061084b90612bb8565b91829055506040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290945085815264ffffffffff8085166060808401918252858316608080860191825267ffffffffffffffff8a1660009081526002602081815260409283902089518155818a0151600182018054868d01519a518c16600160c01b027fffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff6001600160601b039c8d16600160601b027fffffffffffffffff0000000000000000000000000000000000000000000000009093169c9094169b909b1717919091169890981790975593519501805460a089015160c08a015160e08b01511515600160581b026bff000000000000000000000019911515600160501b02919091167fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff928b1665010000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941699909a169890981791909117169690961794909417909455825193840183528184528301819052908201819052818101528b815260208082018c905260408083018c9052606083018b905267ffffffffffffffff881660009081526003835220825180518493610a52928492910190612273565b506020828101518051610a6b92600185019201906122f0565b5060408201518051610a8791600284019160209091019061232b565b5060608201518051610aa391600384019160209091019061237d565b509050507f20d9b108f8538dcfcbae90dfbf2df4a0b7df3ec4a7f38db98fea51298228a575868d8d8d8d8a8a8f604051610ae4989796959493929190612bd2565b60405180910390a150505050509695505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4457604051634a7f394f60e01b815260040160405180910390fd5b6203f4808164ffffffffff161015610b6f57604051634a7f394f60e01b815260040160405180910390fd5b62278d008164ffffffffff161115610b9a57604051634a7f394f60e01b815260040160405180910390fd5b6000805469ffffffffff000000000019166501000000000064ffffffffff8416908102919091179091556040519081527fc6bdba91ad0eaeaaa3026c197783f40dff7571fd0e71402de571b9c508329db6906020015b60405180910390a150565b67ffffffffffffffff811660009081526002602081815260408084208151610100810183528154815260018201546001600160601b0380821695830195909552600160601b81049094169281019290925264ffffffffff600160c01b9093048316606083015290920154808216608084015265010000000000810490911660a083015260ff600160501b82048116151560c0840152600160581b90910416151560e0820152610ca990611f8f565b92915050565b610cda6040518060800160405280606081526020016060815260200160608152602001606081525090565b67ffffffffffffffff82166000908152600360209081526040918290208251815460a093810282018401909452608081018481529093919284928491840182828015610d4f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d31575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610da757602002820191906000526020600020905b815481526020019060010190808311610d93575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610e81578382906000526020600020018054610df490612ca1565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2090612ca1565b8015610e6d5780601f10610e4257610100808354040283529160200191610e6d565b820191906000526020600020905b815481529060010190602001808311610e5057829003601f168201915b505050505081526020019060010190610dd5565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b82821015610f5a578382906000526020600020018054610ecd90612ca1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef990612ca1565b8015610f465780601f10610f1b57610100808354040283529160200191610f46565b820191906000526020600020905b815481529060010190602001808311610f2957829003601f168201915b505050505081526020019060010190610eae565b505050915250909392505050565b67ffffffffffffffff811660009081526002602081815260408084208151610100810183528154815260018201546001600160601b0380821695830195909552600160601b81049094169281019290925264ffffffffff600160c01b9093048316606083015292830154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e082015290919061101b90611f8f565b90506007816007811115611031576110316128a1565b148061104e5750600681600781111561104c5761104c6128a1565b145b1561106c5760405163baf3f0f760e01b815260040160405180910390fd5b6000548254600160501b9091046001600160601b03169061108d9042611e7f565b6001600160601b0316106110dd5760008160078111156110af576110af6128a1565b036110c45781546110bf90611d98565b6110dd565b60405163baf3f0f760e01b815260040160405180910390fd5b6002820180546bff00000000000000000000001916600160581b17905560405167ffffffffffffffff841681527fe5c6a12e7989e74f4c07006b06767eae6da096502bba0f69213882f71242aab29060200160405180910390a1505050565b67ffffffffffffffff81166000908152600260205260409020600460408051610100810182528354815260018401546001600160601b038082166020840152600160601b8204169282019290925264ffffffffff600160c01b909204821660608201526002840154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e08201526111ea90611f8f565b60078111156111fb576111fb6128a1565b146112195760405163baf3f0f760e01b815260040160405180910390fd5b67ffffffffffffffff8216600090815260036020908152604080832081517f6a42b8f800000000000000000000000000000000000000000000000000000000815291519093926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636a42b8f892600480830193928290030181865afa1580156112b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d49190612b79565b6112de9042612cdb565b825490915060005b8181101561149d5761149584600001828154811061130657611306612cf3565b6000918252602090912001546001860180546001600160a01b03909216918490811061133457611334612cf3565b906000526020600020015486600201848154811061135457611354612cf3565b90600052602060002001805461136990612ca1565b80601f016020809104026020016040519081016040528092919081815260200182805461139590612ca1565b80156113e25780601f106113b7576101008083540402835291602001916113e2565b820191906000526020600020905b8154815290600101906020018083116113c557829003601f168201915b50505050508760030185815481106113fc576113fc612cf3565b90600052602060002001805461141190612ca1565b80601f016020809104026020016040519081016040528092919081815260200182805461143d90612ca1565b801561148a5780601f1061145f5761010080835404028352916020019161148a565b820191906000526020600020905b81548152906001019060200180831161146d57829003601f168201915b5050505050876120e0565b6001016112e6565b5060028401805469ffffffffff000000000019166501000000000064ffffffffff8516908102919091179091556040805167ffffffffffffffff8816815260208101929092527ffd77b3148cb69f934b0fb64fb5f6dbc650c23d1aaaf91d12bb52d78923c41308910160405180910390a15050505050565b67ffffffffffffffff81166000908152600260205260409020600560408051610100810182528354815260018401546001600160601b038082166020840152600160601b8204169282019290925264ffffffffff600160c01b909204821660608201526002840154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e08201526115c390611f8f565b60078111156115d4576115d46128a1565b146115f25760405163baf3f0f760e01b815260040160405180910390fd5b67ffffffffffffffff82166000908152600360205260408120805490915b81811015611779577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630825f38f84600101838154811061165c5761165c612cf3565b906000526020600020015485600001848154811061167c5761167c612cf3565b6000918252602090912001546001870180546001600160a01b0390921691869081106116aa576116aa612cf3565b90600052602060002001548760020186815481106116ca576116ca612cf3565b906000526020600020018860030187815481106116e9576116e9612cf3565b906000526020600020018a60020160059054906101000a900464ffffffffff166040518763ffffffff1660e01b8152600401611729959493929190612da4565b60006040518083038185885af1158015611747573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526117709190810190612df8565b50600101611610565b506002830180547fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16600160501b17905560405167ffffffffffffffff851681527f2b3962140cfad697e04b60d47af771de8568e6ead5f42b8873c4a8d12bd2b3c79060200160405180910390a150505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630e18b6816040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561184857600080fd5b505af115801561185c573d6000803e3d6000fd5b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118ab57604051634a7f394f60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160601b0316816001600160601b031610156118fe57604051634a7f394f60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160601b0316816001600160601b0316111561195157604051634a7f394f60e01b815260040160405180910390fd5b600080547fffffffffffffffffffff000000000000000000000000ffffffffffffffffffff16600160501b6001600160601b038416908102919091179091556040519081527fff6500f609261dffe81c46cd3a92bfacb4ba18bb4a8fb2244547986c5ba7457f90602001610bf0565b67ffffffffffffffff83166000908152600260205260409020600160408051610100810182528354815260018401546001600160601b038082166020840152600160601b8204169282019290925264ffffffffff600160c01b909204821660608201526002840154808316608083015265010000000000810490921660a082015260ff600160501b83048116151560c0830152600160581b909204909116151560e0820152611a6e90611f8f565b6007811115611a7f57611a7f6128a1565b14611a9d5760405163baf3f0f760e01b815260040160405180910390fd5b611aa682611d98565b6000611ac7838360010160189054906101000a900464ffffffffff16611e7f565b9050806001600160601b0316600003611af357604051633048076b60e11b815260040160405180910390fd5b67ffffffffffffffff851660009081526004602090815260408083208684529091529020805460ff1615611b53576040517f667a709a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80546001600160601b03831662010000027fffffffffffffffffffffffffffffffffffff000000000000000000000000ffff87158015610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009094169390931760011716178255611c0957600183018054839190600090611be09084906001600160601b0316612e6f565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550611c54565b8183600101600c8282829054906101000a90046001600160601b0316611c2f9190612e6f565b92506101000a8154816001600160601b0302191690836001600160601b031602179055505b6040805167ffffffffffffffff8816815286151560208201526001600160601b0384168183015290517fab2f5ddd7116794a68bdc6c3e14b18b5888ce4f48fdea983f4a1032a24a7989b9181900360600190a1505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cf857604051634a7f394f60e01b815260040160405180910390fd5b620151808164ffffffffff161015611d2357604051634a7f394f60e01b815260040160405180910390fd5b62093a808164ffffffffff161115611d4e57604051634a7f394f60e01b815260040160405180910390fd5b6000805464ffffffffff191664ffffffffff83169081179091556040519081527f4b9e05d03a781f25fd55d65f8a28c7452e1ecb4a70c2b761bbfe0d9fb8a9d3cb90602001610bf0565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810182905233906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c9190612e91565b6001600160a01b031614611e7c576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6000808311611eba576040517f0f3e2a3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f99fbab88000000000000000000000000000000000000000000000000000000008152600481018490526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906399fbab889060240160e060405180830381865afa158015611f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5f9190612eff565b90508264ffffffffff16816060015165ffffffffffff161015611f855751519050610ca9565b5060009392505050565b60008160e0015115611fa357506002919050565b816060015164ffffffffff164211611fbd57506000919050565b816080015164ffffffffff164211611fd757506001919050565b81604001516001600160601b031682602001516001600160601b03161161200057506003919050565b8160a0015164ffffffffff1660000361201b57506004919050565b8160c001511561202d57506007919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c1a287e26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120af9190612b79565b8260a0015164ffffffffff166120c59190612cdb565b42106120d357506006919050565b506005919050565b919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2b065378686868686604051602001612128959493929190612fc0565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161215c91815260200190565b602060405180830381865afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d9190612ffa565b156121bb5760405163baf3f0f760e01b815260040160405180910390fd5b6040517f3a66f9010000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633a66f901906122289088908890889088908890600401612fc0565b6020604051808303816000875af1158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b9190612b79565b505050505050565b8280548282559060005260206000209081019282156122e0579160200282015b828111156122e057825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190612293565b506122ec9291506123cf565b5090565b8280548282559060005260206000209081019282156122e0579160200282015b828111156122e0578251825591602001919060010190612310565b828054828255906000526020600020908101928215612371579160200282015b8281111561237157825182906123619082613062565b509160200191906001019061234b565b506122ec9291506123e4565b8280548282559060005260206000209081019282156123c3579160200282015b828111156123c357825182906123b39082613062565b509160200191906001019061239d565b506122ec929150612401565b5b808211156122ec57600081556001016123d0565b808211156122ec5760006123f8828261241e565b506001016123e4565b808211156122ec576000612415828261241e565b50600101612401565b50805461242a90612ca1565b6000825580601f1061243a575050565b601f016020900490600052602060002090810190611e7c91906123cf565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561249157612491612458565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156124c0576124c0612458565b604052919050565b600067ffffffffffffffff8211156124e2576124e2612458565b5060051b60200190565b6001600160a01b0381168114611e7c57600080fd5b600082601f83011261251257600080fd5b81356020612527612522836124c8565b612497565b82815260059290921b8401810191818101908684111561254657600080fd5b8286015b8481101561256a57803561255d816124ec565b835291830191830161254a565b509695505050505050565b600082601f83011261258657600080fd5b81356020612596612522836124c8565b82815260059290921b840181019181810190868411156125b557600080fd5b8286015b8481101561256a57803583529183019183016125b9565b600067ffffffffffffffff8211156125ea576125ea612458565b50601f01601f191660200190565b6000612606612522846125d0565b905082815283838301111561261a57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261264257600080fd5b612651838335602085016125f8565b9392505050565b600082601f83011261266957600080fd5b81356020612679612522836124c8565b82815260059290921b8401810191818101908684111561269857600080fd5b8286015b8481101561256a57803567ffffffffffffffff8111156126bc5760008081fd5b6126ca8986838b0101612631565b84525091830191830161269c565b600082601f8301126126e957600080fd5b813560206126f9612522836124c8565b82815260059290921b8401810191818101908684111561271857600080fd5b8286015b8481101561256a57803567ffffffffffffffff81111561273c5760008081fd5b8701603f8101891361274e5760008081fd5b61275f8986830135604084016125f8565b84525091830191830161271c565b60008060008060008060c0878903121561278657600080fd5b863567ffffffffffffffff8082111561279e57600080fd5b6127aa8a838b01612501565b975060208901359150808211156127c057600080fd5b6127cc8a838b01612575565b965060408901359150808211156127e257600080fd5b6127ee8a838b01612658565b9550606089013591508082111561280457600080fd5b6128108a838b016126d8565b9450608089013591508082111561282657600080fd5b5061283389828a01612631565b92505060a087013590509295509295509295565b60006020828403121561285957600080fd5b813564ffffffffff8116811461265157600080fd5b803567ffffffffffffffff811681146120db57600080fd5b60006020828403121561289857600080fd5b6126518261286e565b634e487b7160e01b600052602160045260246000fd5b60208101600883106128d957634e487b7160e01b600052602160045260246000fd5b91905290565b600081518084526020808501945080840160005b8381101561290f578151875295820195908201906001016128f3565b509495945050505050565b60005b8381101561293557818101518382015260200161291d565b8381111561185c5750506000910152565b6000815180845261295e81602086016020860161291a565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b858110156129ba5782840389526129a8848351612946565b98850198935090840190600101612990565b5091979650505050505050565b60208082528251608083830152805160a0840181905260009291820190839060c08601905b80831015612a155783516001600160a01b031682529284019260019290920191908401906129ec565b50838701519350601f19925082868203016040870152612a3581856128df565b93505050604085015181858403016060860152612a528382612972565b925050606085015181858403016080860152612a6e8382612972565b9695505050505050565b600060208284031215612a8a57600080fd5b5035919050565b60008060408385031215612aa457600080fd5b612aad8361286e565b946020939093013593505050565b6001600160601b0381168114611e7c57600080fd5b600060208284031215612ae257600080fd5b813561265181612abb565b8015158114611e7c57600080fd5b600080600060608486031215612b1057600080fd5b612b198461286e565b92506020840135612b2981612aed565b929592945050506040919091013590565b634e487b7160e01b600052601160045260246000fd5b600064ffffffffff808316818516808303821115612b7057612b70612b3a565b01949350505050565b600060208284031215612b8b57600080fd5b5051919050565b600064ffffffffff83811690831681811015612bb057612bb0612b3a565b039392505050565b60006000198203612bcb57612bcb612b3a565b5060010190565b67ffffffffffffffff89168152610100602080830182905289519183018290526000916101208401918b810191845b81811015612c265783516001600160a01b031685529382019392820192600101612c01565b505050508281036040840152612c3c818a6128df565b90508281036060840152612c508189612972565b90508281036080840152612c648188612972565b64ffffffffff871660a0850152905064ffffffffff851660c084015282810360e0840152612c928185612946565b9b9a5050505050505050505050565b600181811c90821680612cb557607f821691505b602082108103612cd557634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115612cee57612cee612b3a565b500190565b634e487b7160e01b600052603260045260246000fd5b60008154612d1681612ca1565b808552602060018381168015612d335760018114612d6b57612d99565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550612d99565b866000528260002060005b85811015612d915781548a8201860152908301908401612d76565b890184019650505b505050505092915050565b6001600160a01b038616815284602082015260a060408201526000612dcc60a0830186612d09565b8281036060840152612dde8186612d09565b91505064ffffffffff831660808301529695505050505050565b600060208284031215612e0a57600080fd5b815167ffffffffffffffff811115612e2157600080fd5b8201601f81018413612e3257600080fd5b8051612e40612522826125d0565b818152856020838501011115612e5557600080fd5b612e6682602083016020860161291a565b95945050505050565b60006001600160601b03808316818516808303821115612b7057612b70612b3a565b600060208284031215612ea357600080fd5b8151612651816124ec565b80516120db816124ec565b600060408284031215612ecb57600080fd5b612ed361246e565b9050815181526020820151602082015292915050565b805165ffffffffffff811681146120db57600080fd5b600081830360e0811215612f1257600080fd5b60405160a0810181811067ffffffffffffffff82111715612f3557612f35612458565b6040908152821215612f4657600080fd5b612f4e61246e565b91508351612f5b81612abb565b82526020840151612f6b816124ec565b6020830152818152612f808560408601612eb9565b6020820152612f9160808501612eae565b6040820152612fa260a08501612ee9565b6060820152612fb360c08501612ee9565b6080820152949350505050565b6001600160a01b038616815284602082015260a060408201526000612fe860a0830186612946565b8281036060840152612dde8186612946565b60006020828403121561300c57600080fd5b815161265181612aed565b601f82111561305d57600081815260208120601f850160051c8101602086101561303e5750805b601f850160051c820191505b8181101561226b5782815560010161304a565b505050565b815167ffffffffffffffff81111561307c5761307c612458565b6130908161308a8454612ca1565b84613017565b602080601f8311600181146130c557600084156130ad5750858301515b600019600386901b1c1916600185901b17855561226b565b600085815260208120601f198616915b828110156130f4578886015182559484019460019091019084016130d5565b50858210156131125787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212207510720b4c693837355491acfecb686abddf5b28a76543b77d46ecd89564fb9964736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x175 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x926C46B2 GT PUSH2 0xCB JUMPI DUP1 PUSH4 0xD3904682 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xE907DC81 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xE907DC81 EQ PUSH2 0x5CF JUMPI DUP1 PUSH4 0xF3DC6314 EQ PUSH2 0x5EF JUMPI DUP1 PUSH4 0xFC45DDCD EQ PUSH2 0x60F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD3904682 EQ PUSH2 0x511 JUMPI DUP1 PUSH4 0xD6159FE5 EQ PUSH2 0x58D JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB1610D7E GT PUSH2 0xB0 JUMPI DUP1 PUSH4 0xB1610D7E EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xB590BE77 EQ PUSH2 0x4E9 JUMPI DUP1 PUSH4 0xB9A61961 EQ PUSH2 0x4FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x926C46B2 EQ PUSH2 0x47B JUMPI DUP1 PUSH4 0xA6C26603 EQ PUSH2 0x49B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31C5EEC8 GT PUSH2 0x12D JUMPI DUP1 PUSH4 0x5AD77DE6 GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x5AD77DE6 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0x6FFA2A81 EQ PUSH2 0x3FD JUMPI DUP1 PUSH4 0x7AADEF8B EQ PUSH2 0x447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31C5EEC8 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0x3D928F3C EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x4C125E79 EQ PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x176ED5AD GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x176ED5AD EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x2D4C7BD3 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x2DF23D15 EQ PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x944DB16 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1622AF EQ PUSH2 0x1B8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x276D JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x238 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x26B CALLDATASIZE PUSH1 0x4 PUSH2 0x2847 JUMP JUMPDEST PUSH2 0xAFB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x28D CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0xBFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x28B7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x327 PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD SWAP2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP4 AND SWAP3 PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV SWAP1 SWAP2 AND SWAP2 PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND SWAP2 DUP2 DUP2 AND SWAP2 PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP2 AND SWAP1 PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0x58 SHL SWAP1 DIV AND DUP9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP9 DUP10 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP8 DUP9 AND PUSH1 0x20 DUP11 ADD MSTORE SWAP6 SWAP1 SWAP7 AND SWAP5 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH5 0xFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x60 DUP8 ADD MSTORE SWAP1 DUP3 AND PUSH1 0x80 DUP7 ADD MSTORE AND PUSH1 0xA0 DUP5 ADD MSTORE ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x388 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x397 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0xCAF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x29C7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0xF68 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x238 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH2 0x418 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A78 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH5 0xFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EC PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0x113C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x238 SWAP1 PUSH1 0x1 PUSH1 0x50 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x431 SWAP1 PUSH6 0x10000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x270 PUSH2 0x4F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2886 JUMP JUMPDEST PUSH2 0x1515 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x508 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x17ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x567 PUSH2 0x52C CALLDATASIZE PUSH1 0x4 PUSH2 0x2A91 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 DUP2 DIV SWAP1 SWAP2 AND SWAP1 PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE SWAP2 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x431 SWAP1 PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5C1 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x5EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1862 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x60A CALLDATASIZE PUSH1 0x4 PUSH2 0x2AFB JUMP JUMPDEST PUSH2 0x19C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x61B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x270 PUSH2 0x62A CALLDATASIZE PUSH1 0x4 PUSH2 0x2847 JUMP JUMPDEST PUSH2 0x1CAF JUMP JUMPDEST PUSH1 0x0 DUP6 MLOAD DUP8 MLOAD EQ ISZERO DUP1 PUSH2 0x644 JUMPI POP DUP5 MLOAD DUP8 MLOAD EQ ISZERO JUMPDEST DUP1 PUSH2 0x651 JUMPI POP DUP4 MLOAD DUP8 MLOAD EQ ISZERO JUMPDEST ISZERO PUSH2 0x66F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP8 MLOAD GT ISZERO PUSH2 0x692 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x69B DUP3 PUSH2 0x1D98 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x6B0 SWAP1 PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x2B50 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x6D2 SWAP1 PUSH6 0x10000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP4 PUSH2 0x2B50 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6A42B8F8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x734 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x758 SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x777 SWAP1 PUSH5 0xFFFFFFFFFF PUSH6 0x10000000000 DUP3 DIV DUP2 AND SWAP2 AND PUSH2 0x2B50 JUMP JUMPDEST PUSH2 0x781 SWAP2 SWAP1 PUSH2 0x2B50 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x50 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x7AA DUP7 PUSH2 0x7A5 DUP5 TIMESTAMP PUSH2 0x2B92 JUMP JUMPDEST PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x7D2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3048076B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP LT ISZERO PUSH2 0x808 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3048076B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x812 DUP2 TIMESTAMP PUSH2 0x2B50 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH5 0xFFFFFFFFFF NOT AND PUSH5 0xFFFFFFFFFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x84B SWAP1 PUSH2 0x2BB8 JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP5 POP DUP6 DUP2 MSTORE PUSH5 0xFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x60 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP6 DUP4 AND PUSH1 0x80 DUP1 DUP7 ADD SWAP2 DUP3 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP10 MLOAD DUP2 SSTORE DUP2 DUP11 ADD MLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD DUP7 DUP14 ADD MLOAD SWAP11 MLOAD DUP13 AND PUSH1 0x1 PUSH1 0xC0 SHL MUL PUSH32 0xFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP13 DUP14 AND PUSH1 0x1 PUSH1 0x60 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP13 SWAP1 SWAP5 AND SWAP12 SWAP1 SWAP12 OR OR SWAP2 SWAP1 SWAP2 AND SWAP9 SWAP1 SWAP9 OR SWAP1 SWAP8 SSTORE SWAP4 MLOAD SWAP6 ADD DUP1 SLOAD PUSH1 0xA0 DUP10 ADD MLOAD PUSH1 0xC0 DUP11 ADD MLOAD PUSH1 0xE0 DUP12 ADD MLOAD ISZERO ISZERO PUSH1 0x1 PUSH1 0x58 SHL MUL PUSH12 0xFF0000000000000000000000 NOT SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0x50 SHL MUL SWAP2 SWAP1 SWAP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFF SWAP3 DUP12 AND PUSH6 0x10000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000 SWAP1 SWAP5 AND SWAP10 SWAP1 SWAP11 AND SWAP9 SWAP1 SWAP9 OR SWAP2 SWAP1 SWAP2 OR AND SWAP7 SWAP1 SWAP7 OR SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP5 SSTORE DUP3 MLOAD SWAP4 DUP5 ADD DUP4 MSTORE DUP2 DUP5 MSTORE DUP4 ADD DUP2 SWAP1 MSTORE SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 DUP2 ADD MSTORE DUP12 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 ADD DUP13 SWAP1 MSTORE PUSH1 0x60 DUP4 ADD DUP12 SWAP1 MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 MSTORE KECCAK256 DUP3 MLOAD DUP1 MLOAD DUP5 SWAP4 PUSH2 0xA52 SWAP3 DUP5 SWAP3 SWAP2 ADD SWAP1 PUSH2 0x2273 JUMP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD DUP1 MLOAD PUSH2 0xA6B SWAP3 PUSH1 0x1 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x22F0 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0xA87 SWAP2 PUSH1 0x2 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x232B JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0xAA3 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x237D JUMP JUMPDEST POP SWAP1 POP POP PUSH32 0x20D9B108F8538DCFCBAE90DFBF2DF4A0B7DF3EC4A7F38DB98FEA51298228A575 DUP7 DUP14 DUP14 DUP14 DUP14 DUP11 DUP11 DUP16 PUSH1 0x40 MLOAD PUSH2 0xAE4 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BD2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x3F480 DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0xB6F JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x278D00 DUP2 PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0xB9A JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH10 0xFFFFFFFFFF0000000000 NOT AND PUSH6 0x10000000000 PUSH5 0xFFFFFFFFFF DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC6BDBA91AD0EAEAAA3026C197783F40DFF7571FD0E71402DE571B9C508329DB6 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND SWAP6 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV SWAP1 SWAP5 AND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP4 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP1 SWAP3 ADD SLOAD DUP1 DUP3 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP2 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP3 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP2 DIV AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0xCA9 SWAP1 PUSH2 0x1F8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCDA PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP2 SLOAD PUSH1 0xA0 SWAP4 DUP2 MUL DUP3 ADD DUP5 ADD SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP2 ADD DUP5 DUP2 MSTORE SWAP1 SWAP4 SWAP2 SWAP3 DUP5 SWAP3 DUP5 SWAP2 DUP5 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xD4F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD31 JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0xDA7 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xD93 JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xE81 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xDF4 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE20 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE6D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE42 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE6D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE50 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xDD5 JUMP JUMPDEST POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xF5A JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0xECD SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xEF9 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF46 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xF1B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xF46 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xF29 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xEAE JUMP JUMPDEST POP POP POP SWAP2 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND SWAP6 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP2 DIV SWAP1 SWAP5 AND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP4 DIV DUP4 AND PUSH1 0x60 DUP4 ADD MSTORE SWAP3 DUP4 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 SWAP1 PUSH2 0x101B SWAP1 PUSH2 0x1F8F JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1031 JUMPI PUSH2 0x1031 PUSH2 0x28A1 JUMP JUMPDEST EQ DUP1 PUSH2 0x104E JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x104C JUMPI PUSH2 0x104C PUSH2 0x28A1 JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x106C JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x50 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP1 PUSH2 0x108D SWAP1 TIMESTAMP PUSH2 0x1E7F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT PUSH2 0x10DD JUMPI PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x10AF JUMPI PUSH2 0x10AF PUSH2 0x28A1 JUMP JUMPDEST SUB PUSH2 0x10C4 JUMPI DUP2 SLOAD PUSH2 0x10BF SWAP1 PUSH2 0x1D98 JUMP JUMPDEST PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH12 0xFF0000000000000000000000 NOT AND PUSH1 0x1 PUSH1 0x58 SHL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND DUP2 MSTORE PUSH32 0xE5C6A12E7989E74F4C07006B06767EAE6DA096502BBA0F69213882F71242AAB2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD DUP2 MSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP3 DIV AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x11EA SWAP1 PUSH2 0x1F8F JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x11FB JUMPI PUSH2 0x11FB PUSH2 0x28A1 JUMP JUMPDEST EQ PUSH2 0x1219 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH32 0x6A42B8F800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 MLOAD SWAP1 SWAP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D4 SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST PUSH2 0x12DE SWAP1 TIMESTAMP PUSH2 0x2CDB JUMP JUMPDEST DUP3 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x149D JUMPI PUSH2 0x1495 DUP5 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1306 JUMPI PUSH2 0x1306 PUSH2 0x2CF3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 DUP7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x1334 JUMPI PUSH2 0x1334 PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x2 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1354 JUMPI PUSH2 0x1354 PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x1369 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1395 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x13E2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x13B7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x13E2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x13C5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP8 PUSH1 0x3 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x13FC JUMPI PUSH2 0x13FC PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x1411 SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x143D SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x148A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x145F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x148A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x146D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP8 PUSH2 0x20E0 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x12E6 JUMP JUMPDEST POP PUSH1 0x2 DUP5 ADD DUP1 SLOAD PUSH10 0xFFFFFFFFFF0000000000 NOT AND PUSH6 0x10000000000 PUSH5 0xFFFFFFFFFF DUP6 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0xFD77B3148CB69F934B0FB64FB5F6DBC650C23D1AAAF91D12BB52D78923C41308 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD DUP2 MSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP3 DIV AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x15C3 SWAP1 PUSH2 0x1F8F JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D4 PUSH2 0x28A1 JUMP JUMPDEST EQ PUSH2 0x15F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1779 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x825F38F DUP5 PUSH1 0x1 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x165C JUMPI PUSH2 0x165C PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x167C JUMPI PUSH2 0x167C PUSH2 0x2CF3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 DUP8 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x16AA JUMPI PUSH2 0x16AA PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH1 0x2 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x16CA JUMPI PUSH2 0x16CA PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x3 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x16E9 JUMPI PUSH2 0x16E9 PUSH2 0x2CF3 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP11 PUSH1 0x2 ADD PUSH1 0x5 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH5 0xFFFFFFFFFF AND PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1729 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DA4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1747 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1770 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DF8 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1610 JUMP JUMPDEST POP PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x50 SHL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND DUP2 MSTORE PUSH32 0x2B3962140CFAD697E04B60D47AF771DE8568E6EAD5F42B8873C4A8D12BD2B3C7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE18B681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x185C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x18AB JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x18FE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT ISZERO PUSH2 0x1951 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x50 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xFF6500F609261DFFE81C46CD3A92BFACB4BA18BB4A8FB2244547986C5BA7457F SWAP1 PUSH1 0x20 ADD PUSH2 0xBF0 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD DUP2 MSTORE PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x60 SHL DUP3 DIV AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP3 DIV DUP3 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP1 DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0x10000000000 DUP2 DIV SWAP1 SWAP3 AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xFF PUSH1 0x1 PUSH1 0x50 SHL DUP4 DIV DUP2 AND ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x58 SHL SWAP1 SWAP3 DIV SWAP1 SWAP2 AND ISZERO ISZERO PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x1A6E SWAP1 PUSH2 0x1F8F JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1A7F JUMPI PUSH2 0x1A7F PUSH2 0x28A1 JUMP JUMPDEST EQ PUSH2 0x1A9D JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AA6 DUP3 PUSH2 0x1D98 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AC7 DUP4 DUP4 PUSH1 0x1 ADD PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH5 0xFFFFFFFFFF AND PUSH2 0x1E7F JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x1AF3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3048076B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x667A709A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND PUSH3 0x10000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFF DUP8 ISZERO DUP1 ISZERO PUSH2 0x100 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR PUSH1 0x1 OR AND OR DUP3 SSTORE PUSH2 0x1C09 JUMPI PUSH1 0x1 DUP4 ADD DUP1 SLOAD DUP4 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1BE0 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2E6F JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1C54 JUMP JUMPDEST DUP2 DUP4 PUSH1 0x1 ADD PUSH1 0xC DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x1C2F SWAP2 SWAP1 PUSH2 0x2E6F JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP9 AND DUP2 MSTORE DUP7 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xAB2F5DDD7116794A68BDC6C3E14B18B5888CE4F48FDEA983F4A1032A24A7989B SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x1CF8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x15180 DUP2 PUSH5 0xFFFFFFFFFF AND LT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x93A80 DUP2 PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x1D4E JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A7F394F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH5 0xFFFFFFFFFF NOT AND PUSH5 0xFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x4B9E05D03A781F25FD55D65F8A28C7452E1ECB4A70C2B761BBFE0D9FB8A9D3CB SWAP1 PUSH1 0x20 ADD PUSH2 0xBF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x6352211E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E18 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3C SWAP2 SWAP1 PUSH2 0x2E91 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x49E27CFF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 GT PUSH2 0x1EBA JUMPI PUSH1 0x40 MLOAD PUSH32 0xF3E2A3E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x99FBAB8800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x99FBAB88 SWAP1 PUSH1 0x24 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F3B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F5F SWAP2 SWAP1 PUSH2 0x2EFF JUMP JUMPDEST SWAP1 POP DUP3 PUSH5 0xFFFFFFFFFF AND DUP2 PUSH1 0x60 ADD MLOAD PUSH6 0xFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1F85 JUMPI MLOAD MLOAD SWAP1 POP PUSH2 0xCA9 JUMP JUMPDEST POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x1FA3 JUMPI POP PUSH1 0x2 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP GT PUSH2 0x1FBD JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x80 ADD MLOAD PUSH5 0xFFFFFFFFFF AND TIMESTAMP GT PUSH2 0x1FD7 JUMPI POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT PUSH2 0x2000 JUMPI POP PUSH1 0x3 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x201B JUMPI POP PUSH1 0x4 SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x202D JUMPI POP PUSH1 0x7 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC1A287E2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x208B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20AF SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST DUP3 PUSH1 0xA0 ADD MLOAD PUSH5 0xFFFFFFFFFF AND PUSH2 0x20C5 SWAP2 SWAP1 PUSH2 0x2CDB JUMP JUMPDEST TIMESTAMP LT PUSH2 0x20D3 JUMPI POP PUSH1 0x6 SWAP2 SWAP1 POP JUMP JUMPDEST POP PUSH1 0x5 SWAP2 SWAP1 POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF2B06537 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2128 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2FC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x215C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2179 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x219D SWAP2 SWAP1 PUSH2 0x2FFA JUMP JUMPDEST ISZERO PUSH2 0x21BB JUMPI PUSH1 0x40 MLOAD PUSH4 0xBAF3F0F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x3A66F90100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x2228 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2FC0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2247 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x226B SWAP2 SWAP1 PUSH2 0x2B79 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x22E0 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x22E0 JUMPI DUP3 MLOAD DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2293 JUMP JUMPDEST POP PUSH2 0x22EC SWAP3 SWAP2 POP PUSH2 0x23CF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x22E0 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x22E0 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2310 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2371 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2371 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x2361 SWAP1 DUP3 PUSH2 0x3062 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x234B JUMP JUMPDEST POP PUSH2 0x22EC SWAP3 SWAP2 POP PUSH2 0x23E4 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x23C3 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x23C3 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH2 0x23B3 SWAP1 DUP3 PUSH2 0x3062 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x239D JUMP JUMPDEST POP PUSH2 0x22EC SWAP3 SWAP2 POP PUSH2 0x2401 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x23D0 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x0 PUSH2 0x23F8 DUP3 DUP3 PUSH2 0x241E JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x23E4 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x22EC JUMPI PUSH1 0x0 PUSH2 0x2415 DUP3 DUP3 PUSH2 0x241E JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2401 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x242A SWAP1 PUSH2 0x2CA1 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x243A JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1E7C SWAP2 SWAP1 PUSH2 0x23CF JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2491 JUMPI PUSH2 0x2491 PUSH2 0x2458 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x24C0 JUMPI PUSH2 0x24C0 PUSH2 0x2458 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24E2 JUMPI PUSH2 0x24E2 PUSH2 0x2458 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1E7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2527 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST PUSH2 0x2497 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2546 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD PUSH2 0x255D DUP2 PUSH2 0x24EC JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x254A JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2596 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x25B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x25B9 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25EA JUMPI PUSH2 0x25EA PUSH2 0x2458 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2606 PUSH2 0x2522 DUP5 PUSH2 0x25D0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x261A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2642 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2651 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x25F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2679 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26BC JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x26CA DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2631 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x269C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x26E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x26F9 PUSH2 0x2522 DUP4 PUSH2 0x24C8 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x256A JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x273C JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST DUP8 ADD PUSH1 0x3F DUP2 ADD DUP10 SGT PUSH2 0x274E JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x275F DUP10 DUP7 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP5 ADD PUSH2 0x25F8 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x271C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2786 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x279E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27AA DUP11 DUP4 DUP12 ADD PUSH2 0x2501 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27CC DUP11 DUP4 DUP12 ADD PUSH2 0x2575 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x27E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27EE DUP11 DUP4 DUP12 ADD PUSH2 0x2658 JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2804 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2810 DUP11 DUP4 DUP12 ADD PUSH2 0x26D8 JUMP JUMPDEST SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2833 DUP10 DUP3 DUP11 ADD PUSH2 0x2631 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2859 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x20DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2651 DUP3 PUSH2 0x286E JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x8 DUP4 LT PUSH2 0x28D9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x290F JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x28F3 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2935 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x291D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x185C JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x295E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x291A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP4 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP3 DUP7 ADD PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x29BA JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x29A8 DUP5 DUP4 MLOAD PUSH2 0x2946 JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2990 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD PUSH1 0x80 DUP4 DUP4 ADD MSTORE DUP1 MLOAD PUSH1 0xA0 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP3 SWAP2 DUP3 ADD SWAP1 DUP4 SWAP1 PUSH1 0xC0 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x2A15 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0x29EC JUMP JUMPDEST POP DUP4 DUP8 ADD MLOAD SWAP4 POP PUSH1 0x1F NOT SWAP3 POP DUP3 DUP7 DUP3 SUB ADD PUSH1 0x40 DUP8 ADD MSTORE PUSH2 0x2A35 DUP2 DUP6 PUSH2 0x28DF JUMP JUMPDEST SWAP4 POP POP POP PUSH1 0x40 DUP6 ADD MLOAD DUP2 DUP6 DUP5 SUB ADD PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x2A52 DUP4 DUP3 PUSH2 0x2972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD MLOAD DUP2 DUP6 DUP5 SUB ADD PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x2A6E DUP4 DUP3 PUSH2 0x2972 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AAD DUP4 PUSH2 0x286E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1E7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2651 DUP2 PUSH2 0x2ABB JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1E7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2B10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B19 DUP5 PUSH2 0x286E JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2B29 DUP2 PUSH2 0x2AED JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH5 0xFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2B70 JUMPI PUSH2 0x2B70 PUSH2 0x2B3A JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH5 0xFFFFFFFFFF DUP4 DUP2 AND SWAP1 DUP4 AND DUP2 DUP2 LT ISZERO PUSH2 0x2BB0 JUMPI PUSH2 0x2BB0 PUSH2 0x2B3A JUMP JUMPDEST SUB SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x2BCB JUMPI PUSH2 0x2BCB PUSH2 0x2B3A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP10 AND DUP2 MSTORE PUSH2 0x100 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP10 MLOAD SWAP2 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x120 DUP5 ADD SWAP2 DUP12 DUP2 ADD SWAP2 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2C26 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE SWAP4 DUP3 ADD SWAP4 SWAP3 DUP3 ADD SWAP3 PUSH1 0x1 ADD PUSH2 0x2C01 JUMP JUMPDEST POP POP POP POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x2C3C DUP2 DUP11 PUSH2 0x28DF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2C50 DUP2 DUP10 PUSH2 0x2972 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2C64 DUP2 DUP9 PUSH2 0x2972 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP8 AND PUSH1 0xA0 DUP6 ADD MSTORE SWAP1 POP PUSH5 0xFFFFFFFFFF DUP6 AND PUSH1 0xC0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x2C92 DUP2 DUP6 PUSH2 0x2946 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2CB5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2CD5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2CEE JUMPI PUSH2 0x2CEE PUSH2 0x2B3A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2D16 DUP2 PUSH2 0x2CA1 JUMP JUMPDEST DUP1 DUP6 MSTORE PUSH1 0x20 PUSH1 0x1 DUP4 DUP2 AND DUP1 ISZERO PUSH2 0x2D33 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2D6B JUMPI PUSH2 0x2D99 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP6 AND DUP4 DUP10 ADD MSTORE DUP3 DUP5 ISZERO ISZERO PUSH1 0x5 SHL DUP10 ADD ADD SWAP6 POP PUSH2 0x2D99 JUMP JUMPDEST DUP7 PUSH1 0x0 MSTORE DUP3 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2D91 JUMPI DUP2 SLOAD DUP11 DUP3 ADD DUP7 ADD MSTORE SWAP1 DUP4 ADD SWAP1 DUP5 ADD PUSH2 0x2D76 JUMP JUMPDEST DUP10 ADD DUP5 ADD SWAP7 POP POP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2DCC PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2D09 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DDE DUP2 DUP7 PUSH2 0x2D09 JUMP JUMPDEST SWAP2 POP POP PUSH5 0xFFFFFFFFFF DUP4 AND PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2E32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x2E40 PUSH2 0x2522 DUP3 PUSH2 0x25D0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x2E55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E66 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x291A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x2B70 JUMPI PUSH2 0x2B70 PUSH2 0x2B3A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2651 DUP2 PUSH2 0x24EC JUMP JUMPDEST DUP1 MLOAD PUSH2 0x20DB DUP2 PUSH2 0x24EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ECB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2ED3 PUSH2 0x246E JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH6 0xFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x20DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB PUSH1 0xE0 DUP2 SLT ISZERO PUSH2 0x2F12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2F35 JUMPI PUSH2 0x2F35 PUSH2 0x2458 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP3 SLT ISZERO PUSH2 0x2F46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F4E PUSH2 0x246E JUMP JUMPDEST SWAP2 POP DUP4 MLOAD PUSH2 0x2F5B DUP2 PUSH2 0x2ABB JUMP JUMPDEST DUP3 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x2F6B DUP2 PUSH2 0x24EC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x2F80 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x2EB9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2F91 PUSH1 0x80 DUP6 ADD PUSH2 0x2EAE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2FA2 PUSH1 0xA0 DUP6 ADD PUSH2 0x2EE9 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2FB3 PUSH1 0xC0 DUP6 ADD PUSH2 0x2EE9 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2FE8 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2946 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x2DDE DUP2 DUP7 PUSH2 0x2946 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x300C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2651 DUP2 PUSH2 0x2AED JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x305D JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x303E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x226B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x304A JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x307C JUMPI PUSH2 0x307C PUSH2 0x2458 JUMP JUMPDEST PUSH2 0x3090 DUP2 PUSH2 0x308A DUP5 SLOAD PUSH2 0x2CA1 JUMP JUMPDEST DUP5 PUSH2 0x3017 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x30C5 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x30AD JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x226B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x30F4 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x30D5 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3112 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH22 0x10720B4C693837355491ACFECB686ABDDF5B28A76543 0xB7 PUSH30 0x46ECD89564FB9964736F6C634300080F0033000000000000000000000000 ","sourceMap":"956:14847:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6496:2039;;;;;;;;;;-1:-1:-1;6496:2039:37;;;;;:::i;:::-;;:::i;:::-;;;6880:18:60;6868:31;;;6850:50;;6838:2;6823:18;6496:2039:37;;;;;;;;1865:69;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7110:55:60;;;7092:74;;7080:2;7065:18;1865:69:37;6911:261:60;1658:46:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7339:39:60;;;7321:58;;7309:2;7294:18;1658:46:37;7177:208:60;15441:359:37;;;;;;;;;;-1:-1:-1;15441:359:37;;;;;:::i;:::-;;:::i;:::-;;12397:127;;;;;;;;;;-1:-1:-1;12397:127:37;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2110:44::-;;;;;;;;;;-1:-1:-1;2110:44:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2110:44:37;;;;-1:-1:-1;;;2110:44:37;;;;;;;-1:-1:-1;;;2110:44:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2110:44:37;;;;;-1:-1:-1;;;2110:44:37;;;;;;;;;9057:25:60;;;-1:-1:-1;;;;;9163:15:60;;;9158:2;9143:18;;9136:43;9215:15;;;;9195:18;;;9188:43;;;;9250:12;9298:15;;;9293:2;9278:18;;9271:43;9351:15;;;9345:3;9330:19;;9323:44;9404:15;9398:3;9383:19;;9376:44;9464:14;9457:22;9451:3;9436:19;;9429:51;9524:14;9517:22;9511:3;9496:19;;9489:51;9044:3;9029:19;2110:44:37;8736:810:60;13556:138:37;;;;;;;;;;-1:-1:-1;13556:138:37;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8782:784::-;;;;;;;;;;-1:-1:-1;8782:784:37;;;;;:::i;:::-;;:::i;1605:46::-;;;;;;;;;;;;;;;2718:49;;;;;;;;;;-1:-1:-1;2718:49:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12994:12:60;12982:25;;;12964:44;;12952:2;12937:18;2718:49:37;12820:194:60;1759:35:37;;;;;;;;;;;;;;;10501:658;;;;;;;;;;-1:-1:-1;10501:658:37;;;;;:::i;:::-;;:::i;1566:32::-;;;;;;;;;;-1:-1:-1;1566:32:37;;;;-1:-1:-1;;;1566:32:37;;-1:-1:-1;;;;;1566:32:37;;;1328:36;;;;;;;;;;-1:-1:-1;1328:36:37;;;;;;;;;;;11652:647;;;;;;:::i;:::-;;:::i;14562:75::-;;;;;;;;;;;;;:::i;2447:62::-;;;;;;;;;;-1:-1:-1;2447:62:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2447:62:37;;;;;;;13739:14:60;;13732:22;13714:41;;13798:14;;13791:22;13786:2;13771:18;;13764:50;-1:-1:-1;;;;;13850:39:60;13830:18;;;13823:67;13702:2;13687:18;2447:62:37;13526:370:60;1144:35:37;;;;;;;;;;-1:-1:-1;1144:35:37;;;;;;;;1990:28;;;;;;;;;;;;;;;;;;;14047:25:60;;;14035:2;14020:18;1990:28:37;13901:177:60;14645:430:37;;;;;;;;;;-1:-1:-1;14645:430:37;;;;;:::i;:::-;;:::i;9574:919::-;;;;;;;;;;-1:-1:-1;9574:919:37;;;;;:::i;:::-;;:::i;15083:350::-;;;;;;;;;;-1:-1:-1;15083:350:37;;;;;:::i;:::-;;:::i;6496:2039::-;6739:17;6791:6;:13;6773:7;:14;:31;;:70;;;;6826:10;:17;6808:7;:14;:35;;6773:70;:108;;;;6865:9;:16;6847:7;:14;:34;;6773:108;6769:136;;;6890:15;;-1:-1:-1;;;6890:15:37;;;;;;;;;;;6769:136;6937:2;6920:7;:14;:19;6916:47;;;6948:15;;-1:-1:-1;;;6948:15:37;;;;;;;;;;;6916:47;6976:23;6993:5;6976:16;:23::i;:::-;7012:16;7057:12;;7031:38;;7057:12;;7038:15;7031:38;:::i;:::-;7080:14;7109:13;;7012:57;;-1:-1:-1;7080:14:37;7097:25;;7109:13;;;;;7012:57;7097:25;:::i;:::-;7080:42;;7133:28;7202:8;-1:-1:-1;;;;;7202:14:37;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7179:13;;7164:28;;7179:13;;;;;;;7164:12;:28;:::i;:::-;:55;;;;:::i;:::-;7551:18;;7133:86;;-1:-1:-1;;;;7551:18:37;;-1:-1:-1;;;;;7551:18:37;7478:70;7493:5;7500:47;7133:86;7507:15;7500:47;:::i;:::-;7478:14;:70::i;:::-;-1:-1:-1;;;;;7478:91:37;;7474:123;;;7578:19;;-1:-1:-1;;;7578:19:37;;;;;;;;;;;7474:123;7712:22;;;;:15;:22;;;;;;;;7694:15;:40;7690:72;;;7743:19;;-1:-1:-1;;;7743:19:37;;;;;;;;;;;7690:72;7798:47;7824:21;7805:15;7798:47;:::i;:::-;7773:22;;;;:15;:22;;;;;:72;;-1:-1:-1;;7773:72:37;;;;;;;;;;;;;-1:-1:-1;7878:15:37;;-1:-1:-1;;7773:22:37;7878:15;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7878:15:37;;-1:-1:-1;7945:28:37;;;7984:33;;;;:21;;;;:33;;;8028:29;;;:19;;;;:29;;;8070:21;;;7945:20;8070:21;;;:9;:21;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8070:35:37;;-1:-1:-1;;;;;8070:35:37;;;-1:-1:-1;;;8070:35:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8070:35:37;-1:-1:-1;;8070:35:37;;;-1:-1:-1;;;8070:35:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;8168:35:37;;;8214:24;;;;:33;;;8258:28;;;;:41;;;8310:27;;;:39;;;8362:27;;;8168:25;8362:27;;;:15;:27;;;:47;;;;8168:17;;8362:47;;:27;;:47;;;;:::i;:::-;-1:-1:-1;8362:47:37;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8362:47:37;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8362:47:37;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8427:100;8443:10;8455:7;8464:6;8472:10;8484:9;8495;8506:7;8515:11;8427:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;6758:1777;;;;;6496:2039;;;;;;;;:::o;15441:359::-;15516:10;-1:-1:-1;;;;;15538:8:37;15516:31;;15512:59;;15556:15;;-1:-1:-1;;;15556:15:37;;;;;;;;;;;15512:59;15604:6;15586:15;:24;;;15582:52;;;15619:15;;-1:-1:-1;;;15619:15:37;;;;;;;;;;;15582:52;15667:7;15649:15;:25;;;15645:53;;;15683:15;;-1:-1:-1;;;15683:15:37;;;;;;;;;;;15645:53;15709:13;:31;;-1:-1:-1;;15709:31:37;;;;;;;;;;;;;;;15756:36;;12964:44:60;;;15756:36:37;;12952:2:60;12937:18;15756:36:37;;;;;;;;15441:359;:::o;12397:127::-;12494:21;;;12454:13;12494:21;;;:9;:21;;;;;;;;12487:29;;;;;;;;;;;;;;;-1:-1:-1;;;;;12487:29:37;;;;;;;;;;-1:-1:-1;;;12487:29:37;;;;;;;;;;;;;-1:-1:-1;;;12487:29:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12487:29:37;;;;;;;;;;-1:-1:-1;;;12487:29:37;;;;;;;;;;;;:6;:29::i;:::-;12480:36;12397:127;-1:-1:-1;;12397:127:37:o;13556:138::-;13618:21;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13618:21:37;13659:27;;;;;;;:15;:27;;;;;;;;;13652:34;;;;;;;;;;;;;;;;;;;;;;;13659:27;;13652:34;;13659:27;;13652:34;;13659:27;13652:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13652:34:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13652:34:37;;-1:-1:-1;13652:34:37;;13556:138;-1:-1:-1;;;13556:138:37:o;8782:784::-;8865:21;;;8837:25;8865:21;;;:9;:21;;;;;;;;8927:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;8927:16:37;;;;;;;;;;-1:-1:-1;;;8927:16:37;;;;;;;;;;;;;-1:-1:-1;;;8927:16:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8927:16:37;;;;;;;;;;-1:-1:-1;;;8927:16:37;;;;;;;;;;;;8865:21;;8837:25;8927:16;;:6;:16::i;:::-;8897:46;-1:-1:-1;8975:22:37;8958:13;:39;;;;;;;;:::i;:::-;;:81;;;-1:-1:-1;9018:21:37;9001:13;:38;;;;;;;;:::i;:::-;;8958:81;8954:108;;;9048:14;;-1:-1:-1;;;9048:14:37;;;;;;;;;;;8954:108;9254:18;;9207:17;;-1:-1:-1;;;9254:18:37;;;-1:-1:-1;;;;;9254:18:37;;9192:58;;9233:15;9192:14;:58::i;:::-;-1:-1:-1;;;;;9192:80:37;;9188:288;;9310:21;9293:13;:38;;;;;;;;:::i;:::-;;9289:176;;9369:17;;9352:35;;:16;:35::i;:::-;9289:176;;;9435:14;;-1:-1:-1;;;9435:14:37;;;;;;;;;;;9289:176;9488:17;;;:24;;-1:-1:-1;;9488:24:37;-1:-1:-1;;;9488:24:37;;;9530:28;;6880:18:60;6868:31;;6850:50;;9530:28:37;;6838:2:60;6823:18;9530:28:37;;;;;;;8826:740;;8782:784;:::o;10501:658::-;10583:21;;;10555:25;10583:21;;;:9;:21;;;;;10639:23;10619:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10619:16:37;;;;;;;-1:-1:-1;;;10619:16:37;;;;;;;;;;;-1:-1:-1;;;10619:16:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10619:16:37;;;;;;;;;;-1:-1:-1;;;10619:16:37;;;;;;;;;;;;;;:6;:16::i;:::-;:43;;;;;;;;:::i;:::-;;10615:70;;10671:14;;-1:-1:-1;;;10671:14:37;;;;;;;;;;;10615:70;10730:27;;;10698:29;10730:27;;;:15;:27;;;;;;;;10808:16;;;;;;;10730:27;;10698:29;-1:-1:-1;;;;;10808:8:37;:14;;;;:16;;;;;10730:27;10808:16;;;;;:14;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10790:34;;:15;:34;:::i;:::-;10855:21;;10770:55;;-1:-1:-1;10838:14:37;10887:185;10907:6;10903:1;:10;10887:185;;;10931:99;10946:6;:14;;10961:1;10946:17;;;;;;;;:::i;:::-;;;;;;;;;;;;10965:13;;:16;;-1:-1:-1;;;;;10946:17:37;;;;10979:1;;10965:16;;;;;;:::i;:::-;;;;;;;;;10983:6;:17;;11001:1;10983:20;;;;;;;;:::i;:::-;;;;;;;;10931:99;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11005:6;:16;;11022:1;11005:19;;;;;;;;:::i;:::-;;;;;;;;10931:99;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11026:3;10931:14;:99::i;:::-;11056:3;;10887:185;;;-1:-1:-1;11084:12:37;;;:18;;-1:-1:-1;;11084:18:37;;;;;;;;;;;;;;;11120:31;;;18735:18:60;18723:31;;18705:50;;18786:2;18771:18;;18764:53;;;;11120:31:37;;18678:18:60;11120:31:37;;;;;;;10544:615;;;;10501:658;:::o;11652:647::-;11744:21;;;11716:25;11744:21;;;:9;:21;;;;;11800:20;11780:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11780:16:37;;;;;;;-1:-1:-1;;;11780:16:37;;;;;;;;;;;-1:-1:-1;;;11780:16:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11780:16:37;;;;;;;;;;-1:-1:-1;;;11780:16:37;;;;;;;;;;;;;;:6;:16::i;:::-;:40;;;;;;;;:::i;:::-;;11776:67;;11829:14;;-1:-1:-1;;;11829:14:37;;;;;;;;;;;11776:67;11888:27;;;11856:29;11888:27;;;:15;:27;;;;;11945:21;;11888:27;;11977:232;11997:6;11993:1;:10;11977:232;;;12021:8;-1:-1:-1;;;;;12021:27:37;;12056:6;:13;;12070:1;12056:16;;;;;;;;:::i;:::-;;;;;;;;;12074:6;:14;;12089:1;12074:17;;;;;;;;:::i;:::-;;;;;;;;;;;;12093:13;;:16;;-1:-1:-1;;;;;12074:17:37;;;;12107:1;;12093:16;;;;;;:::i;:::-;;;;;;;;;12111:6;:17;;12129:1;12111:20;;;;;;;;:::i;:::-;;;;;;;;12133:6;:16;;12150:1;12133:19;;;;;;;;:::i;:::-;;;;;;;;12154:8;:12;;;;;;;;;;;;12021:146;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12021:146:37;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12193:3:37;;11977:232;;;-1:-1:-1;12221:17:37;;;:24;;;;-1:-1:-1;;;12221:24:37;;;12263:28;;6880:18:60;6868:31;;6850:50;;12263:28:37;;6838:2:60;6823:18;12263:28:37;;;;;;;11705:594;;;11652:647;:::o;14562:75::-;14607:8;-1:-1:-1;;;;;14607:20:37;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14562:75::o;14645:430::-;14730:10;-1:-1:-1;;;;;14752:8:37;14730:31;;14726:59;;14770:15;;-1:-1:-1;;;14770:15:37;;;;;;;;;;;14726:59;14823:22;-1:-1:-1;;;;;14800:45:37;:20;-1:-1:-1;;;;;14800:45:37;;14796:73;;;14854:15;;-1:-1:-1;;;14854:15:37;;;;;;;;;;;14796:73;14907:22;-1:-1:-1;;;;;14884:45:37;:20;-1:-1:-1;;;;;14884:45:37;;14880:73;;;14938:15;;-1:-1:-1;;;14938:15:37;;;;;;;;;;;14880:73;14964:18;:41;;;;-1:-1:-1;;;;;;;;14964:41:37;;;;;;;;;;;;15021:46;;7321:58:60;;;15021:46:37;;7309:2:60;7294:18;15021:46:37;7177:208:60;9574:919:37;9688:21;;;9660:25;9688:21;;;:9;:21;;;;;9744:20;9724:16;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9724:16:37;;;;;;;-1:-1:-1;;;9724:16:37;;;;;;;;;;;-1:-1:-1;;;9724:16:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9724:16:37;;;;;;;;;;-1:-1:-1;;;9724:16:37;;;;;;;;;;;;;;:6;:16::i;:::-;:40;;;;;;;;:::i;:::-;;9720:67;;9773:14;;-1:-1:-1;;;9773:14:37;;;;;;;;;;;9720:67;9800:23;9817:5;9800:16;:23::i;:::-;9894:12;9909:41;9924:5;9931:8;:18;;;;;;;;;;;;9909:14;:41::i;:::-;9894:56;;9965:5;-1:-1:-1;;;;;9965:10:37;9974:1;9965:10;9961:42;;9984:19;;-1:-1:-1;;;9984:19:37;;;;;;;;;;;9961:42;10084:20;;;10058:23;10084:20;;;:8;:20;;;;;;;;:27;;;;;;;;10126:16;;;;10122:42;;;10151:13;;;;;;;;;;;;;;10122:42;10199:23;;-1:-1:-1;;;;;10269:21:37;;;;;10233:25;;;;10199:23;10233:25;;;;;;;;;10218:4;10233:25;10269:21;;;;10303:129;;10331:17;;;:26;;10352:5;;10331:17;;;:26;;10352:5;;-1:-1:-1;;;;;10331:26:37;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10331:26:37;;;;;-1:-1:-1;;;;;10331:26:37;;;;;;10303:129;;;10415:5;10390:8;:21;;;:30;;;;;;;;;;-1:-1:-1;;;;;10390:30:37;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;10390:30:37;;;;;-1:-1:-1;;;;;10390:30:37;;;;;;10303:129;10449:36;;;21579:18:60;21567:31;;21549:50;;21642:14;;21635:22;21630:2;21615:18;;21608:50;-1:-1:-1;;;;;21694:39:60;;21674:18;;;21667:67;10449:36:37;;;;;;;21537:2:60;10449:36:37;;;9649:844;;;9574:919;;;:::o;15083:350::-;15156:10;-1:-1:-1;;;;;15178:8:37;15156:31;;15152:59;;15196:15;;-1:-1:-1;;;15196:15:37;;;;;;;;;;;15152:59;15243:6;15226:14;:23;;;15222:51;;;15258:15;;-1:-1:-1;;;15258:15:37;;;;;;;;;;;15222:51;15305:6;15288:14;:23;;;15284:51;;;15320:15;;-1:-1:-1;;;15320:15:37;;;;;;;;;;;15284:51;15346:12;:29;;-1:-1:-1;;15346:29:37;;;;;;;;;;15391:34;;12964:44:60;;;15391:34:37;;12952:2:60;12937:18;15391:34:37;12820:194:60;13806:155:37;13875:41;;;;;;;;14047:25:60;;;13920:10:37;;-1:-1:-1;;;;;13875:26:37;:34;;;;14020:18:60;;13875:41:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13875:55:37;;13871:82;;13939:14;;;;;;;;;;;;;;13871:82;13806:155;:::o;14153:401::-;14232:6;14264:1;14255:5;:10;14251:35;;14274:12;;;;;;;;;;;;;;14251:35;14350:43;;;;;;;;14047:25:60;;;14297:50:37;;14350:26;-1:-1:-1;;;;;14350:36:37;;;;14020:18:60;;14350:43:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14297:96;;14430:9;14408:31;;:8;:19;;;:31;;;14404:143;;;14463:23;:31;;-1:-1:-1;14456:38:37;;14404:143;-1:-1:-1;14534:1:37;;14153:401;-1:-1:-1;;;14153:401:37:o;12620:846::-;12684:13;12714:8;:17;;;12710:749;;;-1:-1:-1;12755:22:37;;12620:846;-1:-1:-1;12620:846:37:o;12710:749::-;12818:8;:18;;;12799:37;;:15;:37;12795:664;;-1:-1:-1;12860:21:37;;12620:846;-1:-1:-1;12620:846:37:o;12795:664::-;12922:8;:16;;;12903:35;;:15;:35;12899:560;;-1:-1:-1;12962:20:37;;12620:846;-1:-1:-1;12620:846:37:o;12899:560::-;13025:8;:21;;;-1:-1:-1;;;;;13004:42:37;:8;:17;;;-1:-1:-1;;;;;13004:42:37;;13000:459;;-1:-1:-1;13070:22:37;;12620:846;-1:-1:-1;12620:846:37:o;13000:459::-;13114:8;:12;;;:17;;13130:1;13114:17;13110:349;;-1:-1:-1;13155:23:37;;12620:846;-1:-1:-1;12620:846:37:o;13110:349::-;13200:8;:17;;;13196:263;;;-1:-1:-1;13241:22:37;;12620:846;-1:-1:-1;12620:846:37:o;13196:263::-;13319:8;-1:-1:-1;;;;;13319:21:37;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13304:8;:12;;;:38;;;;;;:::i;:::-;13285:15;:57;13281:178;;-1:-1:-1;13366:21:37;;12620:846;-1:-1:-1;12620:846:37:o;13281:178::-;-1:-1:-1;13427:20:37;;12620:846;-1:-1:-1;12620:846:37:o;13281:178::-;12620:846;;;:::o;11167:325::-;11301:8;-1:-1:-1;;;;;11301:27:37;;11350:6;11358:5;11365:9;11376:4;11382:3;11339:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11329:58;;;;;;11301:87;;;;;;;;;;;;;14047:25:60;;14035:2;14020:18;;13901:177;11301:87:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11297:114;;;11397:14;;-1:-1:-1;;;11397:14:37;;;;;;;;;;;11297:114;11422:62;;;;;-1:-1:-1;;;;;11422:8:37;:25;;;;:62;;11448:6;;11456:5;;11463:9;;11474:4;;11480:3;;11422:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11167:325;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:184:60:-;-1:-1:-1;;;63:1:60;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:257;275:4;269:11;;;307:17;;354:18;339:34;;375:22;;;336:62;333:88;;;401:18;;:::i;:::-;437:4;430:24;203:257;:::o;465:334::-;536:2;530:9;592:2;582:13;;-1:-1:-1;;578:86:60;566:99;;695:18;680:34;;716:22;;;677:62;674:88;;;742:18;;:::i;:::-;778:2;771:22;465:334;;-1:-1:-1;465:334:60:o;804:183::-;864:4;897:18;889:6;886:30;883:56;;;919:18;;:::i;:::-;-1:-1:-1;964:1:60;960:14;976:4;956:25;;804:183::o;992:154::-;-1:-1:-1;;;;;1071:5:60;1067:54;1060:5;1057:65;1047:93;;1136:1;1133;1126:12;1151:737;1205:5;1258:3;1251:4;1243:6;1239:17;1235:27;1225:55;;1276:1;1273;1266:12;1225:55;1312:6;1299:20;1338:4;1362:60;1378:43;1418:2;1378:43;:::i;:::-;1362:60;:::i;:::-;1456:15;;;1542:1;1538:10;;;;1526:23;;1522:32;;;1487:12;;;;1566:15;;;1563:35;;;1594:1;1591;1584:12;1563:35;1630:2;1622:6;1618:15;1642:217;1658:6;1653:3;1650:15;1642:217;;;1738:3;1725:17;1755:31;1780:5;1755:31;:::i;:::-;1799:18;;1837:12;;;;1675;;1642:217;;;-1:-1:-1;1877:5:60;1151:737;-1:-1:-1;;;;;;1151:737:60:o;1893:662::-;1947:5;2000:3;1993:4;1985:6;1981:17;1977:27;1967:55;;2018:1;2015;2008:12;1967:55;2054:6;2041:20;2080:4;2104:60;2120:43;2160:2;2120:43;:::i;2104:60::-;2198:15;;;2284:1;2280:10;;;;2268:23;;2264:32;;;2229:12;;;;2308:15;;;2305:35;;;2336:1;2333;2326:12;2305:35;2372:2;2364:6;2360:15;2384:142;2400:6;2395:3;2392:15;2384:142;;;2466:17;;2454:30;;2504:12;;;;2417;;2384:142;;2560:246;2609:4;2642:18;2634:6;2631:30;2628:56;;;2664:18;;:::i;:::-;-1:-1:-1;2721:2:60;2709:15;-1:-1:-1;;2705:88:60;2795:4;2701:99;;2560:246::o;2811:338::-;2876:5;2905:53;2921:36;2950:6;2921:36;:::i;2905:53::-;2896:62;;2981:6;2974:5;2967:21;3021:3;3012:6;3007:3;3003:16;3000:25;2997:45;;;3038:1;3035;3028:12;2997:45;3087:6;3082:3;3075:4;3068:5;3064:16;3051:43;3141:1;3134:4;3125:6;3118:5;3114:18;3110:29;3103:40;2811:338;;;;;:::o;3154:222::-;3197:5;3250:3;3243:4;3235:6;3231:17;3227:27;3217:55;;3268:1;3265;3258:12;3217:55;3290:80;3366:3;3357:6;3344:20;3337:4;3329:6;3325:17;3290:80;:::i;:::-;3281:89;3154:222;-1:-1:-1;;;3154:222:60:o;3381:888::-;3434:5;3487:3;3480:4;3472:6;3468:17;3464:27;3454:55;;3505:1;3502;3495:12;3454:55;3541:6;3528:20;3567:4;3591:60;3607:43;3647:2;3607:43;:::i;3591:60::-;3685:15;;;3771:1;3767:10;;;;3755:23;;3751:32;;;3716:12;;;;3795:15;;;3792:35;;;3823:1;3820;3813:12;3792:35;3859:2;3851:6;3847:15;3871:369;3887:6;3882:3;3879:15;3871:369;;;3973:3;3960:17;4009:18;3996:11;3993:35;3990:125;;;4069:1;4098:2;4094;4087:14;3990:125;4140:57;4193:3;4188:2;4174:11;4166:6;4162:24;4158:33;4140:57;:::i;:::-;4128:70;;-1:-1:-1;4218:12:60;;;;3904;;3871:369;;4274:1088;4326:5;4379:3;4372:4;4364:6;4360:17;4356:27;4346:55;;4397:1;4394;4387:12;4346:55;4433:6;4420:20;4459:4;4483:60;4499:43;4539:2;4499:43;:::i;4483:60::-;4577:15;;;4663:1;4659:10;;;;4647:23;;4643:32;;;4608:12;;;;4687:15;;;4684:35;;;4715:1;4712;4705:12;4684:35;4751:2;4743:6;4739:15;4763:570;4779:6;4774:3;4771:15;4763:570;;;4865:3;4852:17;4901:18;4888:11;4885:35;4882:125;;;4961:1;4990:2;4986;4979:14;4882:125;5030:24;;5089:2;5081:11;;5077:21;-1:-1:-1;5067:119:60;;5140:1;5169:2;5165;5158:14;5067:119;5211:79;5286:3;5280:2;5276;5272:11;5259:25;5254:2;5250;5246:11;5211:79;:::i;:::-;5199:92;;-1:-1:-1;5311:12:60;;;;4796;;4763:570;;5367:1334;5600:6;5608;5616;5624;5632;5640;5693:3;5681:9;5672:7;5668:23;5664:33;5661:53;;;5710:1;5707;5700:12;5661:53;5750:9;5737:23;5779:18;5820:2;5812:6;5809:14;5806:34;;;5836:1;5833;5826:12;5806:34;5859:61;5912:7;5903:6;5892:9;5888:22;5859:61;:::i;:::-;5849:71;;5973:2;5962:9;5958:18;5945:32;5929:48;;6002:2;5992:8;5989:16;5986:36;;;6018:1;6015;6008:12;5986:36;6041:63;6096:7;6085:8;6074:9;6070:24;6041:63;:::i;:::-;6031:73;;6157:2;6146:9;6142:18;6129:32;6113:48;;6186:2;6176:8;6173:16;6170:36;;;6202:1;6199;6192:12;6170:36;6225:62;6279:7;6268:8;6257:9;6253:24;6225:62;:::i;:::-;6215:72;;6340:2;6329:9;6325:18;6312:32;6296:48;;6369:2;6359:8;6356:16;6353:36;;;6385:1;6382;6375:12;6353:36;6408:61;6461:7;6450:8;6439:9;6435:24;6408:61;:::i;:::-;6398:71;;6522:3;6511:9;6507:19;6494:33;6478:49;;6552:2;6542:8;6539:16;6536:36;;;6568:1;6565;6558:12;6536:36;;6591:52;6635:7;6624:8;6613:9;6609:24;6591:52;:::i;:::-;6581:62;;;6690:3;6679:9;6675:19;6662:33;6652:43;;5367:1334;;;;;;;;:::o;7390:278::-;7448:6;7501:2;7489:9;7480:7;7476:23;7472:32;7469:52;;;7517:1;7514;7507:12;7469:52;7556:9;7543:23;7606:12;7599:5;7595:24;7588:5;7585:35;7575:63;;7634:1;7631;7624:12;7673:171;7740:20;;7800:18;7789:30;;7779:41;;7769:69;;7834:1;7831;7824:12;7849:184;7907:6;7960:2;7948:9;7939:7;7935:23;7931:32;7928:52;;;7976:1;7973;7966:12;7928:52;7999:28;8017:9;7999:28;:::i;8038:184::-;-1:-1:-1;;;8087:1:60;8080:88;8187:4;8184:1;8177:15;8211:4;8208:1;8201:15;8227:403;8377:2;8362:18;;8410:1;8399:13;;8389:201;;-1:-1:-1;;;8443:1:60;8436:88;8547:4;8544:1;8537:15;8575:4;8572:1;8565:15;8389:201;8599:25;;;8227:403;:::o;9551:435::-;9604:3;9642:5;9636:12;9669:6;9664:3;9657:19;9695:4;9724:2;9719:3;9715:12;9708:19;;9761:2;9754:5;9750:14;9782:1;9792:169;9806:6;9803:1;9800:13;9792:169;;;9867:13;;9855:26;;9901:12;;;;9936:15;;;;9828:1;9821:9;9792:169;;;-1:-1:-1;9977:3:60;;9551:435;-1:-1:-1;;;;;9551:435:60:o;9991:258::-;10063:1;10073:113;10087:6;10084:1;10081:13;10073:113;;;10163:11;;;10157:18;10144:11;;;10137:39;10109:2;10102:10;10073:113;;;10204:6;10201:1;10198:13;10195:48;;;-1:-1:-1;;10239:1:60;10221:16;;10214:27;9991:258::o;10254:317::-;10296:3;10334:5;10328:12;10361:6;10356:3;10349:19;10377:63;10433:6;10426:4;10421:3;10417:14;10410:4;10403:5;10399:16;10377:63;:::i;:::-;10485:2;10473:15;-1:-1:-1;;10469:88:60;10460:98;;;;10560:4;10456:109;;10254:317;-1:-1:-1;;10254:317:60:o;10576:616::-;10628:3;10666:5;10660:12;10693:6;10688:3;10681:19;10719:4;10760:2;10755:3;10751:12;10785:11;10812;10805:18;;10862:6;10859:1;10855:14;10848:5;10844:26;10832:38;;10904:2;10897:5;10893:14;10925:1;10935:231;10949:6;10946:1;10943:13;10935:231;;;11020:5;11014:4;11010:16;11005:3;10998:29;11048:38;11081:4;11072:6;11066:13;11048:38;:::i;:::-;11144:12;;;;11040:46;-1:-1:-1;11109:15:60;;;;10971:1;10964:9;10935:231;;;-1:-1:-1;11182:4:60;;10576:616;-1:-1:-1;;;;;;;10576:616:60:o;11197:1433::-;11382:2;11393:21;;;11485:13;;11534:4;11514:18;;;11507:32;11588:19;;11452:3;11437:19;;11616:22;;;11353:4;;11382:2;11696:21;;;11353:4;;11669:3;11654:19;;;11745:218;11759:6;11756:1;11753:13;11745:218;;;11824:13;;-1:-1:-1;;;;;11820:62:60;11808:75;;11938:15;;;;11781:1;11774:9;;;;;11903:12;;;;11745:218;;;11749:3;12012:2;12004:6;12000:15;11994:22;11972:44;;-1:-1:-1;;12025:76:60;;12162:2;12150:9;12145:3;12141:19;12137:28;12132:2;12121:9;12117:18;12110:56;12189:49;12234:3;12218:14;12189:49;:::i;:::-;12175:63;;;;12287:2;12279:6;12275:15;12269:22;12355:2;12343:9;12335:6;12331:22;12327:31;12322:2;12311:9;12307:18;12300:59;12382:51;12426:6;12410:14;12382:51;:::i;:::-;12368:65;;;12482:2;12474:6;12470:15;12464:22;12552:2;12540:9;12532:6;12528:22;12524:31;12517:4;12506:9;12502:20;12495:61;12573:51;12617:6;12601:14;12573:51;:::i;:::-;12565:59;11197:1433;-1:-1:-1;;;;;;11197:1433:60:o;12635:180::-;12694:6;12747:2;12735:9;12726:7;12722:23;12718:32;12715:52;;;12763:1;12760;12753:12;12715:52;-1:-1:-1;12786:23:60;;12635:180;-1:-1:-1;12635:180:60:o;13269:252::-;13336:6;13344;13397:2;13385:9;13376:7;13372:23;13368:32;13365:52;;;13413:1;13410;13403:12;13365:52;13436:28;13454:9;13436:28;:::i;:::-;13426:38;13511:2;13496:18;;;;13483:32;;-1:-1:-1;;;13269:252:60:o;14083:137::-;-1:-1:-1;;;;;14161:5:60;14157:38;14150:5;14147:49;14137:77;;14210:1;14207;14200:12;14225:245;14283:6;14336:2;14324:9;14315:7;14311:23;14307:32;14304:52;;;14352:1;14349;14342:12;14304:52;14391:9;14378:23;14410:30;14434:5;14410:30;:::i;14475:118::-;14561:5;14554:13;14547:21;14540:5;14537:32;14527:60;;14583:1;14580;14573:12;14598:381;14671:6;14679;14687;14740:2;14728:9;14719:7;14715:23;14711:32;14708:52;;;14756:1;14753;14746:12;14708:52;14779:28;14797:9;14779:28;:::i;:::-;14769:38;;14857:2;14846:9;14842:18;14829:32;14870:28;14892:5;14870:28;:::i;:::-;14598:381;;14917:5;;-1:-1:-1;;;14969:2:60;14954:18;;;;14941:32;;14598:381::o;14984:184::-;-1:-1:-1;;;15033:1:60;15026:88;15133:4;15130:1;15123:15;15157:4;15154:1;15147:15;15173:230;15212:3;15240:12;15279:2;15276:1;15272:10;15309:2;15306:1;15302:10;15340:3;15336:2;15332:12;15327:3;15324:21;15321:47;;;15348:18;;:::i;:::-;15384:13;;15173:230;-1:-1:-1;;;;15173:230:60:o;15408:184::-;15478:6;15531:2;15519:9;15510:7;15506:23;15502:32;15499:52;;;15547:1;15544;15537:12;15499:52;-1:-1:-1;15570:16:60;;15408:184;-1:-1:-1;15408:184:60:o;15597:223::-;15636:4;15665:12;15727:10;;;;15697;;15749:12;;;15746:38;;;15764:18;;:::i;:::-;15801:13;;15597:223;-1:-1:-1;;;15597:223:60:o;15825:195::-;15864:3;-1:-1:-1;;15888:5:60;15885:77;15882:103;;15965:18;;:::i;:::-;-1:-1:-1;16012:1:60;16001:13;;15825:195::o;16025:1741::-;16677:18;16665:31;;16647:50;;16594:3;16716:2;16734:18;;;16727:30;;;16806:13;;16620:18;;;16828:22;;;16565:4;;16881:3;16866:19;;;16908:15;;;;16565:4;16951:218;16965:6;16962:1;16959:13;16951:218;;;17030:13;;-1:-1:-1;;;;;17026:62:60;17014:75;;17109:12;;;;17144:15;;;;16987:1;16980:9;16951:218;;;16955:3;;;;17214:9;17209:3;17205:19;17200:2;17189:9;17185:18;17178:47;17248:41;17285:3;17277:6;17248:41;:::i;:::-;17234:55;;17337:9;17329:6;17325:22;17320:2;17309:9;17305:18;17298:50;17371:43;17407:6;17399;17371:43;:::i;:::-;17357:57;;17463:9;17455:6;17451:22;17445:3;17434:9;17430:19;17423:51;17497:43;17533:6;17525;17497:43;:::i;:::-;8711:12;8700:24;;17590:3;17575:19;;8688:37;17483:57;-1:-1:-1;8711:12:60;8700:24;;17645:3;17630:19;;8688:37;17699:9;17691:6;17687:22;17681:3;17670:9;17666:19;17659:51;17727:33;17753:6;17745;17727:33;:::i;:::-;17719:41;16025:1741;-1:-1:-1;;;;;;;;;;;16025:1741:60:o;17771:437::-;17850:1;17846:12;;;;17893;;;17914:61;;17968:4;17960:6;17956:17;17946:27;;17914:61;18021:2;18013:6;18010:14;17990:18;17987:38;17984:218;;-1:-1:-1;;;18055:1:60;18048:88;18159:4;18156:1;18149:15;18187:4;18184:1;18177:15;17984:218;;17771:437;;;:::o;18213:128::-;18253:3;18284:1;18280:6;18277:1;18274:13;18271:39;;;18290:18;;:::i;:::-;-1:-1:-1;18326:9:60;;18213:128::o;18346:184::-;-1:-1:-1;;;18395:1:60;18388:88;18495:4;18492:1;18485:15;18519:4;18516:1;18509:15;18954:830;19004:3;19045:5;19039:12;19074:36;19100:9;19074:36;:::i;:::-;19119:19;;;19157:4;19180:1;19197:18;;;19224:204;;;;19442:1;19437:341;;;;19190:588;;19224:204;19281:66;19270:9;19266:82;19261:2;19256:3;19252:12;19245:104;19415:2;19403:6;19396:14;19389:22;19386:1;19382:30;19377:3;19373:40;19369:49;19362:56;;19224:204;;19437:341;19468:5;19465:1;19458:16;19515:2;19512:1;19502:16;19540:1;19554:174;19568:6;19565:1;19562:13;19554:174;;;19655:14;;19637:11;;;19633:20;;19626:44;19698:16;;;;19583:10;;19554:174;;;19752:11;;19748:20;;;-1:-1:-1;;19190:588:60;;;;;;18954:830;;;;:::o;19789:674::-;-1:-1:-1;;;;;20065:6:60;20061:55;20050:9;20043:74;20153:6;20148:2;20137:9;20133:18;20126:34;20196:3;20191:2;20180:9;20176:18;20169:31;20024:4;20223:54;20272:3;20261:9;20257:19;20249:6;20223:54;:::i;:::-;20325:9;20317:6;20313:22;20308:2;20297:9;20293:18;20286:50;20353:41;20387:6;20379;20353:41;:::i;:::-;20345:49;;;20443:12;20435:6;20431:25;20425:3;20414:9;20410:19;20403:54;19789:674;;;;;;;;:::o;20468:635::-;20547:6;20600:2;20588:9;20579:7;20575:23;20571:32;20568:52;;;20616:1;20613;20606:12;20568:52;20649:9;20643:16;20682:18;20674:6;20671:30;20668:50;;;20714:1;20711;20704:12;20668:50;20737:22;;20790:4;20782:13;;20778:27;-1:-1:-1;20768:55:60;;20819:1;20816;20809:12;20768:55;20848:2;20842:9;20873:49;20889:32;20918:2;20889:32;:::i;20873:49::-;20945:2;20938:5;20931:17;20985:7;20980:2;20975;20971;20967:11;20963:20;20960:33;20957:53;;;21006:1;21003;20996:12;20957:53;21019:54;21070:2;21065;21058:5;21054:14;21049:2;21045;21041:11;21019:54;:::i;:::-;21092:5;20468:635;-1:-1:-1;;;;;20468:635:60:o;21108:244::-;21147:3;-1:-1:-1;;;;;21228:2:60;21225:1;21221:10;21258:2;21255:1;21251:10;21289:3;21285:2;21281:12;21276:3;21273:21;21270:47;;;21297:18;;:::i;21745:251::-;21815:6;21868:2;21856:9;21847:7;21843:23;21839:32;21836:52;;;21884:1;21881;21874:12;21836:52;21916:9;21910:16;21935:31;21960:5;21935:31;:::i;22001:138::-;22080:13;;22102:31;22080:13;22102:31;:::i;22144:288::-;22218:5;22266:4;22254:9;22249:3;22245:19;22241:30;22238:50;;;22284:1;22281;22274:12;22238:50;22306:22;;:::i;:::-;22297:31;;22357:9;22351:16;22344:5;22337:31;22421:2;22410:9;22406:18;22400:25;22395:2;22388:5;22384:14;22377:49;22144:288;;;;:::o;22437:171::-;22515:13;;22568:14;22557:26;;22547:37;;22537:65;;22598:1;22595;22588:12;22613:1146;22710:6;22754:9;22745:7;22741:23;22784:3;22780:2;22776:12;22773:32;;;22801:1;22798;22791:12;22773:32;22834:2;22828:9;22876:4;22868:6;22864:17;22947:6;22935:10;22932:22;22911:18;22899:10;22896:34;22893:62;22890:88;;;22958:18;;:::i;:::-;22994:2;22987:22;;;23021:11;;23018:31;;;23045:1;23042;23035:12;23018:31;23071:22;;:::i;:::-;23058:35;;23123:9;23117:16;23142:32;23166:7;23142:32;:::i;:::-;23183:22;;23250:2;23235:18;;23229:25;23263:33;23229:25;23263:33;:::i;:::-;23323:2;23312:14;;23305:31;23345:21;;;23399:74;23465:7;23460:2;23445:18;;23399:74;:::i;:::-;23394:2;23386:6;23382:15;23375:99;23507:50;23552:3;23541:9;23537:19;23507:50;:::i;:::-;23502:2;23494:6;23490:15;23483:75;23593:50;23637:4;23626:9;23622:20;23593:50;:::i;:::-;23586:4;23578:6;23574:17;23567:77;23678:49;23722:3;23711:9;23707:19;23678:49;:::i;:::-;23672:3;23660:16;;23653:75;23664:6;22613:1146;-1:-1:-1;;;;22613:1146:60:o;23764:663::-;-1:-1:-1;;;;;24045:6:60;24041:55;24030:9;24023:74;24133:6;24128:2;24117:9;24113:18;24106:34;24176:3;24171:2;24160:9;24156:18;24149:31;24004:4;24203:46;24244:3;24233:9;24229:19;24221:6;24203:46;:::i;:::-;24297:9;24289:6;24285:22;24280:2;24269:9;24265:18;24258:50;24325:33;24351:6;24343;24325:33;:::i;24614:245::-;24681:6;24734:2;24722:9;24713:7;24709:23;24705:32;24702:52;;;24750:1;24747;24740:12;24702:52;24782:9;24776:16;24801:28;24823:5;24801:28;:::i;25722:545::-;25824:2;25819:3;25816:11;25813:448;;;25860:1;25885:5;25881:2;25874:17;25930:4;25926:2;25916:19;26000:2;25988:10;25984:19;25981:1;25977:27;25971:4;25967:38;26036:4;26024:10;26021:20;26018:47;;;-1:-1:-1;26059:4:60;26018:47;26114:2;26109:3;26105:12;26102:1;26098:20;26092:4;26088:31;26078:41;;26169:82;26187:2;26180:5;26177:13;26169:82;;;26232:17;;;26213:1;26202:13;26169:82;;25813:448;25722:545;;;:::o;26503:1471::-;26629:3;26623:10;26656:18;26648:6;26645:30;26642:56;;;26678:18;;:::i;:::-;26707:97;26797:6;26757:38;26789:4;26783:11;26757:38;:::i;:::-;26751:4;26707:97;:::i;:::-;26859:4;;26923:2;26912:14;;26940:1;26935:782;;;;27761:1;27778:6;27775:89;;;-1:-1:-1;27830:19:60;;;27824:26;27775:89;-1:-1:-1;;26400:1:60;26396:11;;;26392:84;26388:89;26378:100;26484:1;26480:11;;;26375:117;27877:81;;26905:1063;;26935:782;18901:1;18894:14;;;18938:4;18925:18;;-1:-1:-1;;26971:79:60;;;27148:236;27162:7;27159:1;27156:14;27148:236;;;27251:19;;;27245:26;27230:42;;27343:27;;;;27311:1;27299:14;;;;27178:19;;27148:236;;;27152:3;27412:6;27403:7;27400:19;27397:261;;;27473:19;;;27467:26;-1:-1:-1;;27556:1:60;27552:14;;;27568:3;27548:24;27544:97;27540:102;27525:118;27510:134;;27397:261;-1:-1:-1;;;;;27704:1:60;27688:14;;;27684:22;27671:36;;-1:-1:-1;26503:1471:60:o"},"methodIdentifiers":{"PANGOLIN_STAKING_POSITIONS()":"0f1622af","PROPOSAL_THRESHOLD()":"a6c26603","PROPOSAL_THRESHOLD_MAX()":"176ed5ad","PROPOSAL_THRESHOLD_MIN()":"5ad77de6","TIMELOCK()":"7aadef8b","VOTING_DELAY()":"d6159fe5","VOTING_PERIOD()":"b1610d7e","__acceptAdmin()":"b9a61961","__setProposalThreshold(uint96)":"e907dc81","__setVotingDelay(uint40)":"fc45ddcd","__setVotingPeriod(uint40)":"2d4c7bd3","cancel(uint64)":"4c125e79","castVote(uint64,bool,uint256)":"f3dc6314","execute(uint64)":"b590be77","getActions(uint64)":"3d928f3c","proposalCount()":"da35c664","proposalTimeout(uint256)":"6ffa2a81","proposals(uint64)":"31c5eec8","propose(address[],uint256[],string[],bytes[],string,uint256)":"0944db16","queue(uint64)":"926c46b2","receipts(uint64,uint256)":"d3904682","state(uint64)":"2df23d15"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_TIMELOCK\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_PANGOLIN_STAKING_POSITIONS\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"_PROPOSAL_THRESHOLD\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"_PROPOSAL_THRESHOLD_MIN\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"_PROPOSAL_THRESHOLD_MAX\",\"type\":\"uint96\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"IllegalVote\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientVotes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAction\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNFT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidState\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"startTime\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"endTime\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"eta\",\"type\":\"uint40\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"newProposalThreshold\",\"type\":\"uint96\"}],\"name\":\"ProposalThresholdChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"newVotingDelay\",\"type\":\"uint40\"}],\"name\":\"VotingDelayChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"newVotingPeriod\",\"type\":\"uint40\"}],\"name\":\"VotingPeriodChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PANGOLIN_STAKING_POSITIONS\",\"outputs\":[{\"internalType\":\"contract IPangolinStakingPositions\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_THRESHOLD_MAX\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_THRESHOLD_MIN\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK\",\"outputs\":[{\"internalType\":\"contract ITimelock\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VOTING_DELAY\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VOTING_PERIOD\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"__acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"newProposalThreshold\",\"type\":\"uint96\"}],\"name\":\"__setProposalThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"newVotingDelay\",\"type\":\"uint40\"}],\"name\":\"__setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"newVotingPeriod\",\"type\":\"uint40\"}],\"name\":\"__setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"nftId\",\"type\":\"uint256\"}],\"name\":\"castVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"getActions\",\"outputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"}],\"internalType\":\"struct GovernorPango.ProposalAction\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimeout\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposer\",\"type\":\"uint256\"},{\"internalType\":\"uint96\",\"name\":\"forVotes\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"againstVotes\",\"type\":\"uint96\"},{\"internalType\":\"uint40\",\"name\":\"startTime\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"endTime\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"eta\",\"type\":\"uint40\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"nftId\",\"type\":\"uint256\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"queue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"receipts\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"hasVoted\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"proposalId\",\"type\":\"uint64\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum GovernorPango.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"PROPOSAL_THRESHOLD\":{\"details\":\"Can be changed via vote within the range: [PROPOSAL_THRESHOLD_MIN, PROPOSAL_THRESHOLD_MAX]\"},\"VOTING_DELAY\":{\"details\":\"Can be changed via vote within the range: [1 days, 7 days]\"},\"VOTING_PERIOD\":{\"details\":\"Can be changed via vote within the range: [3 days, 30 days]\"},\"proposalTimeout\":{\"details\":\"State growth rate is limited by PROPOSAL_THRESHOLD and the lifecycle time of a proposal. NftId => TimeoutTime\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"PANGOLIN_STAKING_POSITIONS()\":{\"notice\":\"Associated PangolinStakingPositions contract\"},\"PROPOSAL_THRESHOLD()\":{\"notice\":\"The number of votes required in order for a voter to become a proposer\"},\"TIMELOCK()\":{\"notice\":\"Associated Timelock contract\"},\"VOTING_DELAY()\":{\"notice\":\"The delay before voting on a proposal may take place, once proposed\"},\"VOTING_PERIOD()\":{\"notice\":\"The duration of voting on a proposal, in seconds\"},\"proposalCount()\":{\"notice\":\"The total number of proposals\"},\"proposalTimeout(uint256)\":{\"notice\":\"Timestamp when a NFT can be used to propose again\"},\"proposals(uint64)\":{\"notice\":\"The record of all proposals ProposalId => ProposalStruct\"},\"receipts(uint64,uint256)\":{\"notice\":\"The record of all receipts for a given proposal idProposalId => NftId => ReceiptStruct\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/governance/GovernorPango.sol\":\"GovernorPango\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/governance/GovernorPango.sol\":{\"keccak256\":\"0xf4217744e340cf035e9d146cccca11cc6996a40cbeeda5e2b32f8c1c668443ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f07ef2200517e49cfd2723bbf37a30c5279c399c07caadea75a1a564543a5c7\",\"dweb:/ipfs/QmP5Lj25WnQfYGisSJqyi7mPzN58ZweownhrvRH3FSFwhz\"]},\"contracts/governance/interfaces/IPangolinStakingPositions.sol\":{\"keccak256\":\"0xdca492e836b863e60e40f6205fd5f56f6bde63554db51fd31b117766e4925c8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53d3ca9685379982a5843f68716d51f3dacfbbf5b9a65284cd25602023c00588\",\"dweb:/ipfs/QmTv9nsUXd5spQS7ynJzgXQAEJ6vS8Rk1ye6A6tu3obgMF\"]},\"contracts/governance/interfaces/ITimelock.sol\":{\"keccak256\":\"0x72b13d0f7e2415be1f014b4ef9a7b8684278d99792cd22443ebb38d88d2804c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7260643e95ce898e71b8ef43cf890eeefb36eaa02de416d7d59d5a274d6f70e6\",\"dweb:/ipfs/QmehXwTgAC9UTimHA1RNtex76iTfFv52X8vkwXZwP5ykqB\"]}},\"version\":1}"}},"contracts/governance/interfaces/IPangolinStakingPositions.sol":{"IPangolinStakingPositions":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"positions","outputs":[{"components":[{"components":[{"internalType":"uint96","name":"balance","type":"uint96"},{"internalType":"uint160","name":"sumOfEntryTimes","type":"uint160"}],"internalType":"struct IPangolinStakingPositions.ValueVariables","name":"valueVariables","type":"tuple"},{"components":[{"internalType":"uint256","name":"idealPosition","type":"uint256"},{"internalType":"uint256","name":"rewardPerValue","type":"uint256"}],"internalType":"struct IPangolinStakingPositions.RewardSummations","name":"rewardSummationsPaid","type":"tuple"},{"internalType":"uint160","name":"previousValues","type":"uint160"},{"internalType":"uint48","name":"lastUpdate","type":"uint48"},{"internalType":"uint48","name":"lastDevaluation","type":"uint48"}],"internalType":"struct IPangolinStakingPositions.Position","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"ownerOf(uint256)":"6352211e","positions(uint256)":"99fbab88"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"positions\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"balance\",\"type\":\"uint96\"},{\"internalType\":\"uint160\",\"name\":\"sumOfEntryTimes\",\"type\":\"uint160\"}],\"internalType\":\"struct IPangolinStakingPositions.ValueVariables\",\"name\":\"valueVariables\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"idealPosition\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IPangolinStakingPositions.RewardSummations\",\"name\":\"rewardSummationsPaid\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"previousValues\",\"type\":\"uint160\"},{\"internalType\":\"uint48\",\"name\":\"lastUpdate\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"lastDevaluation\",\"type\":\"uint48\"}],\"internalType\":\"struct IPangolinStakingPositions.Position\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/governance/interfaces/IPangolinStakingPositions.sol\":\"IPangolinStakingPositions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/governance/interfaces/IPangolinStakingPositions.sol\":{\"keccak256\":\"0xdca492e836b863e60e40f6205fd5f56f6bde63554db51fd31b117766e4925c8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53d3ca9685379982a5843f68716d51f3dacfbbf5b9a65284cd25602023c00588\",\"dweb:/ipfs/QmTv9nsUXd5spQS7ynJzgXQAEJ6vS8Rk1ye6A6tu3obgMF\"]}},\"version\":1}"}},"contracts/governance/interfaces/ITimelock.sol":{"ITimelock":{"abi":[{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingAdmin_","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","acceptAdmin()":"0e18b681","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537","setDelay(uint256)":"e177246e","setPendingAdmin(address)":"4dd18bf5"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"setDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingAdmin_\",\"type\":\"address\"}],\"name\":\"setPendingAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/governance/interfaces/ITimelock.sol\":\"ITimelock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/governance/interfaces/ITimelock.sol\":{\"keccak256\":\"0x72b13d0f7e2415be1f014b4ef9a7b8684278d99792cd22443ebb38d88d2804c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7260643e95ce898e71b8ef43cf890eeefb36eaa02de416d7d59d5a274d6f70e6\",\"dweb:/ipfs/QmehXwTgAC9UTimHA1RNtex76iTfFv52X8vkwXZwP5ykqB\"]}},\"version\":1}"}},"contracts/pangolin-token/Merkledrop.sol":{"Merkledrop":{"abi":[{"inputs":[{"internalType":"address","name":"airdropToken","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint96","name":"amount","type":"uint96"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"}],"name":"MerkleRootSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"PNG","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint96","name":"amount","type":"uint96"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimedAmounts","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_10795":{"entryPoint":null,"id":10795,"parameterSlots":2,"returnSlots":0},"@_562":{"entryPoint":null,"id":562,"parameterSlots":0,"returnSlots":0},"@_756":{"entryPoint":null,"id":756,"parameterSlots":0,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_pause_820":{"entryPoint":381,"id":820,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_793":{"entryPoint":480,"id":793,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_650":{"entryPoint":301,"id":650,"parameterSlots":1,"returnSlots":0},"@paused_781":{"entryPoint":null,"id":781,"parameterSlots":0,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":568,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":597,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1744:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:60","statements":[{"nodeType":"YulAssignment","src":"84:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:60"},"nodeType":"YulFunctionCall","src":"93:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:60"}]},{"body":{"nodeType":"YulBlock","src":"169:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:60"},"nodeType":"YulFunctionCall","src":"171:12:60"},"nodeType":"YulExpressionStatement","src":"171:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:60"},"nodeType":"YulFunctionCall","src":"150:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:60"},"nodeType":"YulFunctionCall","src":"146:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:60"},"nodeType":"YulFunctionCall","src":"135:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:60"},"nodeType":"YulFunctionCall","src":"125:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:60"},"nodeType":"YulFunctionCall","src":"118:50:60"},"nodeType":"YulIf","src":"115:70:60"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"294:195:60","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:60"},"nodeType":"YulFunctionCall","src":"342:12:60"},"nodeType":"YulExpressionStatement","src":"342:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:60"},"nodeType":"YulFunctionCall","src":"311:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:60"},"nodeType":"YulFunctionCall","src":"307:32:60"},"nodeType":"YulIf","src":"304:52:60"},{"nodeType":"YulAssignment","src":"365:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:60"},"nodeType":"YulFunctionCall","src":"375:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:60"}]},{"nodeType":"YulAssignment","src":"424:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:60"},"nodeType":"YulFunctionCall","src":"464:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:60"},"nodeType":"YulFunctionCall","src":"434:49:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:60","type":""}],"src":"196:293:60"},{"body":{"nodeType":"YulBlock","src":"668:171:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:60"},"nodeType":"YulFunctionCall","src":"678:21:60"},"nodeType":"YulExpressionStatement","src":"678:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:60"},"nodeType":"YulFunctionCall","src":"715:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:60","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:60"},"nodeType":"YulFunctionCall","src":"708:30:60"},"nodeType":"YulExpressionStatement","src":"708:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:60"},"nodeType":"YulFunctionCall","src":"754:18:60"},{"hexValue":"696e76616c696420746f6b656e2061646472657373","kind":"string","nodeType":"YulLiteral","src":"774:23:60","type":"","value":"invalid token address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:60"},"nodeType":"YulFunctionCall","src":"747:51:60"},"nodeType":"YulExpressionStatement","src":"747:51:60"},{"nodeType":"YulAssignment","src":"807:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"819:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"830:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"815:3:60"},"nodeType":"YulFunctionCall","src":"815:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"807:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:60","type":""}],"src":"494:345:60"},{"body":{"nodeType":"YulBlock","src":"1018:171:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1035:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1046:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1028:6:60"},"nodeType":"YulFunctionCall","src":"1028:21:60"},"nodeType":"YulExpressionStatement","src":"1028:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1069:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1080:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1065:3:60"},"nodeType":"YulFunctionCall","src":"1065:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1085:2:60","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1058:6:60"},"nodeType":"YulFunctionCall","src":"1058:30:60"},"nodeType":"YulExpressionStatement","src":"1058:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1108:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1119:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1104:3:60"},"nodeType":"YulFunctionCall","src":"1104:18:60"},{"hexValue":"696e76616c696420696e697469616c206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1124:23:60","type":"","value":"invalid initial owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1097:6:60"},"nodeType":"YulFunctionCall","src":"1097:51:60"},"nodeType":"YulExpressionStatement","src":"1097:51:60"},{"nodeType":"YulAssignment","src":"1157:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1169:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1180:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1165:3:60"},"nodeType":"YulFunctionCall","src":"1165:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1157:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"995:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1009:4:60","type":""}],"src":"844:345:60"},{"body":{"nodeType":"YulBlock","src":"1295:102:60","statements":[{"nodeType":"YulAssignment","src":"1305:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1317:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1328:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1313:3:60"},"nodeType":"YulFunctionCall","src":"1313:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1305:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1347:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1362:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1378:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1383:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1374:3:60"},"nodeType":"YulFunctionCall","src":"1374:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"1387:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1370:3:60"},"nodeType":"YulFunctionCall","src":"1370:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1358:3:60"},"nodeType":"YulFunctionCall","src":"1358:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1340:6:60"},"nodeType":"YulFunctionCall","src":"1340:51:60"},"nodeType":"YulExpressionStatement","src":"1340:51:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1264:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1275:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1286:4:60","type":""}],"src":"1194:203:60"},{"body":{"nodeType":"YulBlock","src":"1576:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1593:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1604:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1586:6:60"},"nodeType":"YulFunctionCall","src":"1586:21:60"},"nodeType":"YulExpressionStatement","src":"1586:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1627:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1638:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1623:3:60"},"nodeType":"YulFunctionCall","src":"1623:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1643:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1616:6:60"},"nodeType":"YulFunctionCall","src":"1616:30:60"},"nodeType":"YulExpressionStatement","src":"1616:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1666:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1677:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:60"},"nodeType":"YulFunctionCall","src":"1662:18:60"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"1682:18:60","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1655:6:60"},"nodeType":"YulFunctionCall","src":"1655:46:60"},"nodeType":"YulExpressionStatement","src":"1655:46:60"},{"nodeType":"YulAssignment","src":"1710:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1722:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1733:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1718:3:60"},"nodeType":"YulFunctionCall","src":"1718:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1710:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1553:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1567:4:60","type":""}],"src":"1402:340:60"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"invalid token address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"invalid initial owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b5060405162000f4938038062000f49833981016040819052620000349162000255565b6200003f336200012d565b6000805460ff60a01b191681556001600160a01b0383163b9003620000ab5760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420746f6b656e2061646472657373000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038116620001035760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420696e697469616c206f776e657200000000000000000000006044820152606401620000a2565b6200010e816200012d565b6001600160a01b038216608052620001256200017d565b50506200028d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000187620001e0565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620001c33390565b6040516001600160a01b03909116815260200160405180910390a1565b620001f4600054600160a01b900460ff1690565b15620002365760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401620000a2565b565b80516001600160a01b03811681146200025057600080fd5b919050565b600080604083850312156200026957600080fd5b620002748362000238565b9150620002846020840162000238565b90509250929050565b608051610c99620002b0600039600081816101f401526105eb0152610c996000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80637cb647591161008157806391a862fa1161005b57806391a862fa146101dc5780639bab65b8146101ef578063f2fde38b1461021657600080fd5b80637cb64759146101825780638456cb59146101955780638da5cb5b1461019d57600080fd5b80635c975abb116100b25780635c975abb1461011257806371417b321461012f578063715018a61461017a57600080fd5b80632eb4a7ab146100d95780633f4ba83a146100f55780635705ae43146100ff575b600080fd5b6100e260025481565b6040519081526020015b60405180910390f35b6100fd610229565b005b6100fd61010d366004610aaf565b610292565b600054600160a01b900460ff1660405190151581526020016100ec565b61015d61013d366004610adb565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff90911681526020016100ec565b6100fd610389565b6100fd610190366004610af8565b61039b565b6100fd6103e6565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ec565b6100fd6101ea366004610b11565b6103f6565b6101b77f000000000000000000000000000000000000000000000000000000000000000081565b6100fd610224366004610adb565b6106f1565b61023161078e565b6002546000036102885760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6102906107f5565b565b61029a610872565b6102a261078e565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810182905273ffffffffffffffffffffffffffffffffffffffff83169063a9059cbb906044016020604051808303816000875af1158015610315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103399190610baa565b6103855760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015260640161027f565b5050565b61039161078e565b61029060006108cb565b6103a3610872565b6103ab61078e565b60028190556040518181527f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b9060200160405180910390a150565b6103ee61078e565b610290610940565b6103fe61099e565b336000908152600160205260409020546bffffffffffffffffffffffff908116908416811061046f5760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d00000000000000000000000000000000604482015260640161027f565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a087901b166034820152600091016040516020818303038152906040526104d390610bcc565b90506105168484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060025491508490506109f8565b6105625760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f6600000000000000000000000000000000000000604482015260640161027f565b336000818152600160205260409081902080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8981169190911790915590517fa9059cbb000000000000000000000000000000000000000000000000000000008152600481019290925295839003958616602482015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190610baa565b6106a45760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015260640161027f565b604080513381526bffffffffffffffffffffffff871660208201527f1f1f3fe51e971f9768a1b748e2a520609176b6de88aa4d9c02ace9fb9177189f910160405180910390a15050505050565b6106f961078e565b73ffffffffffffffffffffffffffffffffffffffff81166107825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161027f565b61078b816108cb565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161027f565b6107fd610872565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b600054600160a01b900460ff166102905760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161027f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61094861099e565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108483390565b600054600160a01b900460ff16156102905760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161027f565b600082610a058584610a0e565b14949350505050565b600081815b8451811015610a5357610a3f82868381518110610a3257610a32610bf3565b6020026020010151610a5b565b915080610a4b81610c22565b915050610a13565b509392505050565b6000818310610a77576000828152602084905260409020610a86565b60008381526020839052604090205b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461078b57600080fd5b60008060408385031215610ac257600080fd5b8235610acd81610a8d565b946020939093013593505050565b600060208284031215610aed57600080fd5b8135610a8681610a8d565b600060208284031215610b0a57600080fd5b5035919050565b600080600060408486031215610b2657600080fd5b83356bffffffffffffffffffffffff81168114610b4257600080fd5b9250602084013567ffffffffffffffff80821115610b5f57600080fd5b818601915086601f830112610b7357600080fd5b813581811115610b8257600080fd5b8760208260051b8501011115610b9757600080fd5b6020830194508093505050509250925092565b600060208284031215610bbc57600080fd5b81518015158114610a8657600080fd5b80516020808301519190811015610bed576000198160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203610c5c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220b0d1945ddb79110deb6d762b36443e16a8db3c4abd238bcf20321e82e6966d6d64736f6c634300080f0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xF49 CODESIZE SUB DUP1 PUSH3 0xF49 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x255 JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x12D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE SWAP1 SUB PUSH3 0xAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420746F6B656E20616464726573730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x103 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E697469616C206F776E65720000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA2 JUMP JUMPDEST PUSH3 0x10E DUP2 PUSH3 0x12D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH3 0x125 PUSH3 0x17D JUMP JUMPDEST POP POP PUSH3 0x28D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH3 0x187 PUSH3 0x1E0 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH3 0x1C3 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH3 0x1F4 PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH3 0x236 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA2 JUMP JUMPDEST JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x274 DUP4 PUSH3 0x238 JUMP JUMPDEST SWAP2 POP PUSH3 0x284 PUSH1 0x20 DUP5 ADD PUSH3 0x238 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xC99 PUSH3 0x2B0 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1F4 ADD MSTORE PUSH2 0x5EB ADD MSTORE PUSH2 0xC99 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 0xD4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7CB64759 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0x91A862FA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91A862FA EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x9BAB65B8 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7CB64759 EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x112 JUMPI DUP1 PUSH4 0x71417B32 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0x5705AE43 EQ PUSH2 0xFF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE2 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFD PUSH2 0x229 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFD PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x292 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0x15D PUSH2 0x13D CALLDATASIZE PUSH1 0x4 PUSH2 0xADB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0xFD PUSH2 0x389 JUMP JUMPDEST PUSH2 0xFD PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0xAF8 JUMP JUMPDEST PUSH2 0x39B JUMP JUMPDEST PUSH2 0xFD PUSH2 0x3E6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0xFD PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0xB11 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST PUSH2 0x1B7 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xFD PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x6F1 JUMP JUMPDEST PUSH2 0x231 PUSH2 0x78E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SUB PUSH2 0x288 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D65726B6C6520726F6F74206E6F742073657400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x290 PUSH2 0x7F5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x29A PUSH2 0x872 JUMP JUMPDEST PUSH2 0x2A2 PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x385 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x391 PUSH2 0x78E JUMP JUMPDEST PUSH2 0x290 PUSH1 0x0 PUSH2 0x8CB JUMP JUMPDEST PUSH2 0x3A3 PUSH2 0x872 JUMP JUMPDEST PUSH2 0x3AB PUSH2 0x78E JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x42CBC405E4DBF1B691E85B9A34B08ECFCF7A9AD9078BF4D645CCFA1FAC11C10B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x3EE PUSH2 0x78E JUMP JUMPDEST PUSH2 0x290 PUSH2 0x940 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x99E JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP5 AND DUP2 LT PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7468696E6720746F20636C61696D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 PUSH1 0xA0 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x4D3 SWAP1 PUSH2 0xBCC JUMP JUMPDEST SWAP1 POP PUSH2 0x516 DUP5 DUP5 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x2 SLOAD SWAP2 POP DUP5 SWAP1 POP PUSH2 0x9F8 JUMP JUMPDEST PUSH2 0x562 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070726F6F6600000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP6 DUP4 SWAP1 SUB SWAP6 DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x658 SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x6A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1F1F3FE51E971F9768A1B748E2A520609176B6DE88AA4D9C02ACE9FB9177189F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6F9 PUSH2 0x78E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x782 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x27F JUMP JUMPDEST PUSH2 0x78B DUP2 PUSH2 0x8CB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH2 0x7FD PUSH2 0x872 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x948 PUSH2 0x99E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x848 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA05 DUP6 DUP5 PUSH2 0xA0E JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xA53 JUMPI PUSH2 0xA3F DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xA32 JUMPI PUSH2 0xA32 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xA5B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0xA4B DUP2 PUSH2 0xC22 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA13 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0xA77 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xA86 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x78B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xACD DUP2 PUSH2 0xA8D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA86 DUP2 PUSH2 0xA8D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xB82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xB97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0xBED JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xC5C JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xD1 SWAP5 0x5D 0xDB PUSH26 0x110DEB6D762B36443E16A8DB3C4ABD238BCF20321E82E6966D6D PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"301:1753:40:-:0;;;575:308;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:24;936:18:4;:32::i;:::-;1006:5:6;996:15;;-1:-1:-1;;;;996:15:6;;;-1:-1:-1;;;;;650:24:40;;;:29;;642:63;;;;-1:-1:-1;;;642:63:40;;696:2:60;642:63:40;;;678:21:60;735:2;715:18;;;708:30;774:23;754:18;;;747:51;815:18;;642:63:40;;;;;;;;;-1:-1:-1;;;;;724:26:40;;716:60;;;;-1:-1:-1;;;716:60:40;;1046:2:60;716:60:40;;;1028:21:60;1085:2;1065:18;;;1058:30;1124:23;1104:18;;;1097:51;1165:18;;716:60:40;844:345:60;716:60:40;787:32;806:12;787:18;:32::i;:::-;-1:-1:-1;;;;;830:26:40;;;;867:8;:6;:8::i;:::-;575:308;;301:1753;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:6:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;;;2245:14:6::1;-1:-1:-1::0;;;2245:14:6::1;::::0;;2274:20:::1;2281:12;719:10:24::0;;640:96;2281:12:6::1;2274:20;::::0;-1:-1:-1;;;;;1358:32:60;;;1340:51;;1328:2;1313:18;2274:20:6::1;;;;;;;2186:115::o:0;1767:106::-;1837:8;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;;1615:84;1837:8;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:6;;1604:2:60;1828:38:6;;;1586:21:60;1643:2;1623:18;;;1616:30;-1:-1:-1;;;1662:18:60;;;1655:46;1718:18;;1828:38:6;1402:340:60;1828:38:6;1767:106::o;14:177:60:-;93:13;;-1:-1:-1;;;;;135:31:60;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;1402:340::-;301:1753:40;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@PNG_10743":{"entryPoint":null,"id":10743,"parameterSlots":0,"returnSlots":0},"@_checkOwner_593":{"entryPoint":1934,"id":593,"parameterSlots":0,"returnSlots":0},"@_efficientHash_5951":{"entryPoint":null,"id":5951,"parameterSlots":2,"returnSlots":1},"@_hashPair_5940":{"entryPoint":2651,"id":5940,"parameterSlots":2,"returnSlots":1},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_pause_820":{"entryPoint":2368,"id":820,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_793":{"entryPoint":2462,"id":793,"parameterSlots":0,"returnSlots":0},"@_requirePaused_804":{"entryPoint":2162,"id":804,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_650":{"entryPoint":2251,"id":650,"parameterSlots":1,"returnSlots":0},"@_unpause_836":{"entryPoint":2037,"id":836,"parameterSlots":0,"returnSlots":0},"@claim_10870":{"entryPoint":1014,"id":10870,"parameterSlots":3,"returnSlots":0},"@claimedAmounts_10740":{"entryPoint":null,"id":10740,"parameterSlots":0,"returnSlots":0},"@merkleRoot_10745":{"entryPoint":null,"id":10745,"parameterSlots":0,"returnSlots":0},"@owner_579":{"entryPoint":null,"id":579,"parameterSlots":0,"returnSlots":1},"@pause_10920":{"entryPoint":998,"id":10920,"parameterSlots":0,"returnSlots":0},"@paused_781":{"entryPoint":null,"id":781,"parameterSlots":0,"returnSlots":1},"@processProof_5535":{"entryPoint":2574,"id":5535,"parameterSlots":2,"returnSlots":1},"@recover_10911":{"entryPoint":658,"id":10911,"parameterSlots":2,"returnSlots":0},"@renounceOwnership_607":{"entryPoint":905,"id":607,"parameterSlots":0,"returnSlots":0},"@setMerkleRoot_10888":{"entryPoint":923,"id":10888,"parameterSlots":1,"returnSlots":0},"@transferOwnership_630":{"entryPoint":1777,"id":630,"parameterSlots":1,"returnSlots":0},"@unpause_10936":{"entryPoint":553,"id":10936,"parameterSlots":0,"returnSlots":0},"@verify_5474":{"entryPoint":2552,"id":5474,"parameterSlots":3,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2779,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":2986,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":2808,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20_$1502t_uint256":{"entryPoint":2735,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptr":{"entryPoint":2833,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":3020,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":3106,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":3059,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IERC20":{"entryPoint":2701,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8242:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:60","statements":[{"nodeType":"YulAssignment","src":"125:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:60"},"nodeType":"YulFunctionCall","src":"133:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:60"},"nodeType":"YulFunctionCall","src":"160:25:60"},"nodeType":"YulExpressionStatement","src":"160:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"249:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"336:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"345:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"348:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"338:6:60"},"nodeType":"YulFunctionCall","src":"338:12:60"},"nodeType":"YulExpressionStatement","src":"338:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"272:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"283:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"290:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"279:3:60"},"nodeType":"YulFunctionCall","src":"279:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"269:2:60"},"nodeType":"YulFunctionCall","src":"269:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"262:6:60"},"nodeType":"YulFunctionCall","src":"262:73:60"},"nodeType":"YulIf","src":"259:93:60"}]},"name":"validator_revert_contract_IERC20","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"238:5:60","type":""}],"src":"196:162:60"},{"body":{"nodeType":"YulBlock","src":"465:236:60","statements":[{"body":{"nodeType":"YulBlock","src":"511:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"520:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"523:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"513:6:60"},"nodeType":"YulFunctionCall","src":"513:12:60"},"nodeType":"YulExpressionStatement","src":"513:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"486:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"495:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"482:3:60"},"nodeType":"YulFunctionCall","src":"482:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"507:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"478:3:60"},"nodeType":"YulFunctionCall","src":"478:32:60"},"nodeType":"YulIf","src":"475:52:60"},{"nodeType":"YulVariableDeclaration","src":"536:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"562:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"549:12:60"},"nodeType":"YulFunctionCall","src":"549:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"540:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"614:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"581:32:60"},"nodeType":"YulFunctionCall","src":"581:39:60"},"nodeType":"YulExpressionStatement","src":"581:39:60"},{"nodeType":"YulAssignment","src":"629:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"639:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"629:6:60"}]},{"nodeType":"YulAssignment","src":"653:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"680:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"691:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"676:3:60"},"nodeType":"YulFunctionCall","src":"676:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"663:12:60"},"nodeType":"YulFunctionCall","src":"663:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"653:6:60"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$1502t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"423:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"434:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"446:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"454:6:60","type":""}],"src":"363:338:60"},{"body":{"nodeType":"YulBlock","src":"801:92:60","statements":[{"nodeType":"YulAssignment","src":"811:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"823:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"834:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"819:3:60"},"nodeType":"YulFunctionCall","src":"819:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"811:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"853:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"878:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"871:6:60"},"nodeType":"YulFunctionCall","src":"871:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"864:6:60"},"nodeType":"YulFunctionCall","src":"864:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"846:6:60"},"nodeType":"YulFunctionCall","src":"846:41:60"},"nodeType":"YulExpressionStatement","src":"846:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"770:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"781:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"792:4:60","type":""}],"src":"706:187:60"},{"body":{"nodeType":"YulBlock","src":"968:185:60","statements":[{"body":{"nodeType":"YulBlock","src":"1014:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1023:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1026:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1016:6:60"},"nodeType":"YulFunctionCall","src":"1016:12:60"},"nodeType":"YulExpressionStatement","src":"1016:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"989:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"998:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"985:3:60"},"nodeType":"YulFunctionCall","src":"985:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1010:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"981:3:60"},"nodeType":"YulFunctionCall","src":"981:32:60"},"nodeType":"YulIf","src":"978:52:60"},{"nodeType":"YulVariableDeclaration","src":"1039:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1065:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1052:12:60"},"nodeType":"YulFunctionCall","src":"1052:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1043:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1117:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"1084:32:60"},"nodeType":"YulFunctionCall","src":"1084:39:60"},"nodeType":"YulExpressionStatement","src":"1084:39:60"},{"nodeType":"YulAssignment","src":"1132:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1142:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1132:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"934:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"945:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"957:6:60","type":""}],"src":"898:255:60"},{"body":{"nodeType":"YulBlock","src":"1257:109:60","statements":[{"nodeType":"YulAssignment","src":"1267:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1279:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1290:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1275:3:60"},"nodeType":"YulFunctionCall","src":"1275:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1267:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1309:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1324:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1332:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1320:3:60"},"nodeType":"YulFunctionCall","src":"1320:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1302:6:60"},"nodeType":"YulFunctionCall","src":"1302:58:60"},"nodeType":"YulExpressionStatement","src":"1302:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1226:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1237:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1248:4:60","type":""}],"src":"1158:208:60"},{"body":{"nodeType":"YulBlock","src":"1441:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"1487:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1496:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1499:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1489:6:60"},"nodeType":"YulFunctionCall","src":"1489:12:60"},"nodeType":"YulExpressionStatement","src":"1489:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1462:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1471:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1458:3:60"},"nodeType":"YulFunctionCall","src":"1458:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1483:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1454:3:60"},"nodeType":"YulFunctionCall","src":"1454:32:60"},"nodeType":"YulIf","src":"1451:52:60"},{"nodeType":"YulAssignment","src":"1512:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1535:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1522:12:60"},"nodeType":"YulFunctionCall","src":"1522:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1512:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1407:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1418:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1430:6:60","type":""}],"src":"1371:180:60"},{"body":{"nodeType":"YulBlock","src":"1657:125:60","statements":[{"nodeType":"YulAssignment","src":"1667:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1679:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1690:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1675:3:60"},"nodeType":"YulFunctionCall","src":"1675:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1667:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1709:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1724:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1732:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1720:3:60"},"nodeType":"YulFunctionCall","src":"1720:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1702:6:60"},"nodeType":"YulFunctionCall","src":"1702:74:60"},"nodeType":"YulExpressionStatement","src":"1702:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1626:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1637:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1648:4:60","type":""}],"src":"1556:226:60"},{"body":{"nodeType":"YulBlock","src":"1908:674:60","statements":[{"body":{"nodeType":"YulBlock","src":"1954:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1963:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1966:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1956:6:60"},"nodeType":"YulFunctionCall","src":"1956:12:60"},"nodeType":"YulExpressionStatement","src":"1956:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1929:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1938:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1925:3:60"},"nodeType":"YulFunctionCall","src":"1925:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1950:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1921:3:60"},"nodeType":"YulFunctionCall","src":"1921:32:60"},"nodeType":"YulIf","src":"1918:52:60"},{"nodeType":"YulVariableDeclaration","src":"1979:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2005:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1992:12:60"},"nodeType":"YulFunctionCall","src":"1992:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1983:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2085:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2094:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2097:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2087:6:60"},"nodeType":"YulFunctionCall","src":"2087:12:60"},"nodeType":"YulExpressionStatement","src":"2087:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2037:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2048:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"2055:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2044:3:60"},"nodeType":"YulFunctionCall","src":"2044:38:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2034:2:60"},"nodeType":"YulFunctionCall","src":"2034:49:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2027:6:60"},"nodeType":"YulFunctionCall","src":"2027:57:60"},"nodeType":"YulIf","src":"2024:77:60"},{"nodeType":"YulAssignment","src":"2110:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"2120:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2110:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"2134:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2165:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2176:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2161:3:60"},"nodeType":"YulFunctionCall","src":"2161:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2148:12:60"},"nodeType":"YulFunctionCall","src":"2148:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2138:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2189:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2199:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2193:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2244:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2253:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2256:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2246:6:60"},"nodeType":"YulFunctionCall","src":"2246:12:60"},"nodeType":"YulExpressionStatement","src":"2246:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2232:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2240:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2229:2:60"},"nodeType":"YulFunctionCall","src":"2229:14:60"},"nodeType":"YulIf","src":"2226:34:60"},{"nodeType":"YulVariableDeclaration","src":"2269:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2283:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"2294:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2279:3:60"},"nodeType":"YulFunctionCall","src":"2279:22:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2273:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2349:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2358:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2361:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2351:6:60"},"nodeType":"YulFunctionCall","src":"2351:12:60"},"nodeType":"YulExpressionStatement","src":"2351:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2328:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"2332:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2324:3:60"},"nodeType":"YulFunctionCall","src":"2324:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2339:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2320:3:60"},"nodeType":"YulFunctionCall","src":"2320:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2313:6:60"},"nodeType":"YulFunctionCall","src":"2313:35:60"},"nodeType":"YulIf","src":"2310:55:60"},{"nodeType":"YulVariableDeclaration","src":"2374:30:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2401:2:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2388:12:60"},"nodeType":"YulFunctionCall","src":"2388:16:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2378:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2431:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2440:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2443:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2433:6:60"},"nodeType":"YulFunctionCall","src":"2433:12:60"},"nodeType":"YulExpressionStatement","src":"2433:12:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2419:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2427:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2416:2:60"},"nodeType":"YulFunctionCall","src":"2416:14:60"},"nodeType":"YulIf","src":"2413:34:60"},{"body":{"nodeType":"YulBlock","src":"2505:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2514:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2517:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2507:6:60"},"nodeType":"YulFunctionCall","src":"2507:12:60"},"nodeType":"YulExpressionStatement","src":"2507:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2470:2:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2478:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"2481:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2474:3:60"},"nodeType":"YulFunctionCall","src":"2474:14:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2466:3:60"},"nodeType":"YulFunctionCall","src":"2466:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2491:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2462:3:60"},"nodeType":"YulFunctionCall","src":"2462:32:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2496:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2459:2:60"},"nodeType":"YulFunctionCall","src":"2459:45:60"},"nodeType":"YulIf","src":"2456:65:60"},{"nodeType":"YulAssignment","src":"2530:21:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2544:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"2548:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2540:3:60"},"nodeType":"YulFunctionCall","src":"2540:11:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2530:6:60"}]},{"nodeType":"YulAssignment","src":"2560:16:60","value":{"name":"length","nodeType":"YulIdentifier","src":"2570:6:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2560:6:60"}]}]},"name":"abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1858:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1869:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1881:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1889:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1897:6:60","type":""}],"src":"1787:795:60"},{"body":{"nodeType":"YulBlock","src":"2703:125:60","statements":[{"nodeType":"YulAssignment","src":"2713:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2725:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2736:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2721:3:60"},"nodeType":"YulFunctionCall","src":"2721:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2713:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2755:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2770:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2778:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2766:3:60"},"nodeType":"YulFunctionCall","src":"2766:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2748:6:60"},"nodeType":"YulFunctionCall","src":"2748:74:60"},"nodeType":"YulExpressionStatement","src":"2748:74:60"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2672:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2683:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2694:4:60","type":""}],"src":"2587:241:60"},{"body":{"nodeType":"YulBlock","src":"3007:169:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3024:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3035:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3017:6:60"},"nodeType":"YulFunctionCall","src":"3017:21:60"},"nodeType":"YulExpressionStatement","src":"3017:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3058:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3069:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3054:3:60"},"nodeType":"YulFunctionCall","src":"3054:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3074:2:60","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3047:6:60"},"nodeType":"YulFunctionCall","src":"3047:30:60"},"nodeType":"YulExpressionStatement","src":"3047:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3097:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3108:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3093:3:60"},"nodeType":"YulFunctionCall","src":"3093:18:60"},{"hexValue":"6d65726b6c6520726f6f74206e6f7420736574","kind":"string","nodeType":"YulLiteral","src":"3113:21:60","type":"","value":"merkle root not set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3086:6:60"},"nodeType":"YulFunctionCall","src":"3086:49:60"},"nodeType":"YulExpressionStatement","src":"3086:49:60"},{"nodeType":"YulAssignment","src":"3144:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3156:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3167:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3152:3:60"},"nodeType":"YulFunctionCall","src":"3152:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3144:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2984:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2998:4:60","type":""}],"src":"2833:343:60"},{"body":{"nodeType":"YulBlock","src":"3310:168:60","statements":[{"nodeType":"YulAssignment","src":"3320:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3332:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3343:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3328:3:60"},"nodeType":"YulFunctionCall","src":"3328:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3320:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3362:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3377:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3385:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3373:3:60"},"nodeType":"YulFunctionCall","src":"3373:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3355:6:60"},"nodeType":"YulFunctionCall","src":"3355:74:60"},"nodeType":"YulExpressionStatement","src":"3355:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3449:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3460:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3445:3:60"},"nodeType":"YulFunctionCall","src":"3445:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"3465:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3438:6:60"},"nodeType":"YulFunctionCall","src":"3438:34:60"},"nodeType":"YulExpressionStatement","src":"3438:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3271:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3282:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3290:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3301:4:60","type":""}],"src":"3181:297:60"},{"body":{"nodeType":"YulBlock","src":"3561:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"3607:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3616:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3619:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3609:6:60"},"nodeType":"YulFunctionCall","src":"3609:12:60"},"nodeType":"YulExpressionStatement","src":"3609:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3582:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3591:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3578:3:60"},"nodeType":"YulFunctionCall","src":"3578:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3603:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3574:3:60"},"nodeType":"YulFunctionCall","src":"3574:32:60"},"nodeType":"YulIf","src":"3571:52:60"},{"nodeType":"YulVariableDeclaration","src":"3632:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3645:5:60"},"nodeType":"YulFunctionCall","src":"3645:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3636:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3714:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3723:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3726:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3716:6:60"},"nodeType":"YulFunctionCall","src":"3716:12:60"},"nodeType":"YulExpressionStatement","src":"3716:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3683:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3704:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3697:6:60"},"nodeType":"YulFunctionCall","src":"3697:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3690:6:60"},"nodeType":"YulFunctionCall","src":"3690:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3680:2:60"},"nodeType":"YulFunctionCall","src":"3680:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3673:6:60"},"nodeType":"YulFunctionCall","src":"3673:40:60"},"nodeType":"YulIf","src":"3670:60:60"},{"nodeType":"YulAssignment","src":"3739:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"3749:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3739:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3527:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3538:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3550:6:60","type":""}],"src":"3483:277:60"},{"body":{"nodeType":"YulBlock","src":"3939:165:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3956:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3967:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3949:6:60"},"nodeType":"YulFunctionCall","src":"3949:21:60"},"nodeType":"YulExpressionStatement","src":"3949:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3990:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4001:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3986:3:60"},"nodeType":"YulFunctionCall","src":"3986:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4006:2:60","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3979:6:60"},"nodeType":"YulFunctionCall","src":"3979:30:60"},"nodeType":"YulExpressionStatement","src":"3979:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4029:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4040:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4025:3:60"},"nodeType":"YulFunctionCall","src":"4025:18:60"},{"hexValue":"7472616e73666572206661696c6564","kind":"string","nodeType":"YulLiteral","src":"4045:17:60","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4018:6:60"},"nodeType":"YulFunctionCall","src":"4018:45:60"},"nodeType":"YulExpressionStatement","src":"4018:45:60"},{"nodeType":"YulAssignment","src":"4072:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4084:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4095:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4080:3:60"},"nodeType":"YulFunctionCall","src":"4080:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4072:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3916:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3930:4:60","type":""}],"src":"3765:339:60"},{"body":{"nodeType":"YulBlock","src":"4283:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4300:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4311:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4293:6:60"},"nodeType":"YulFunctionCall","src":"4293:21:60"},"nodeType":"YulExpressionStatement","src":"4293:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4334:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4345:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4330:3:60"},"nodeType":"YulFunctionCall","src":"4330:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4350:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4323:6:60"},"nodeType":"YulFunctionCall","src":"4323:30:60"},"nodeType":"YulExpressionStatement","src":"4323:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4373:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4384:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4369:3:60"},"nodeType":"YulFunctionCall","src":"4369:18:60"},{"hexValue":"6e6f7468696e6720746f20636c61696d","kind":"string","nodeType":"YulLiteral","src":"4389:18:60","type":"","value":"nothing to claim"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4362:6:60"},"nodeType":"YulFunctionCall","src":"4362:46:60"},"nodeType":"YulExpressionStatement","src":"4362:46:60"},{"nodeType":"YulAssignment","src":"4417:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4429:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4440:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4425:3:60"},"nodeType":"YulFunctionCall","src":"4425:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4417:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4260:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4274:4:60","type":""}],"src":"4109:340:60"},{"body":{"nodeType":"YulBlock","src":"4599:265:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4616:3:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4629:2:60","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"4633:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4625:3:60"},"nodeType":"YulFunctionCall","src":"4625:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"4642:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4621:3:60"},"nodeType":"YulFunctionCall","src":"4621:88:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4609:6:60"},"nodeType":"YulFunctionCall","src":"4609:101:60"},"nodeType":"YulExpressionStatement","src":"4609:101:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4730:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"4735:2:60","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4726:3:60"},"nodeType":"YulFunctionCall","src":"4726:12:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4748:3:60","type":"","value":"160"},{"name":"value1","nodeType":"YulIdentifier","src":"4753:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4744:3:60"},"nodeType":"YulFunctionCall","src":"4744:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"4762:66:60","type":"","value":"0xffffffffffffffffffffffff0000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4740:3:60"},"nodeType":"YulFunctionCall","src":"4740:89:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4719:6:60"},"nodeType":"YulFunctionCall","src":"4719:111:60"},"nodeType":"YulExpressionStatement","src":"4719:111:60"},{"nodeType":"YulAssignment","src":"4839:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4850:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"4855:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4846:3:60"},"nodeType":"YulFunctionCall","src":"4846:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4839:3:60"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4567:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4572:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4580:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4591:3:60","type":""}],"src":"4454:410:60"},{"body":{"nodeType":"YulBlock","src":"4963:263:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4973:26:60","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"4993:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4987:5:60"},"nodeType":"YulFunctionCall","src":"4987:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4977:6:60","type":""}]},{"nodeType":"YulAssignment","src":"5008:32:60","value":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5027:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"5034:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5023:3:60"},"nodeType":"YulFunctionCall","src":"5023:16:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5017:5:60"},"nodeType":"YulFunctionCall","src":"5017:23:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5008:5:60"}]},{"body":{"nodeType":"YulBlock","src":"5077:143:60","statements":[{"nodeType":"YulAssignment","src":"5091:119:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5104:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5119:1:60","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5126:4:60","type":"","value":"0x20"},{"name":"length","nodeType":"YulIdentifier","src":"5132:6:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5122:3:60"},"nodeType":"YulFunctionCall","src":"5122:17:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5115:3:60"},"nodeType":"YulFunctionCall","src":"5115:25:60"},{"kind":"number","nodeType":"YulLiteral","src":"5142:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5111:3:60"},"nodeType":"YulFunctionCall","src":"5111:98:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5100:3:60"},"nodeType":"YulFunctionCall","src":"5100:110:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5091:5:60"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5055:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5063:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5052:2:60"},"nodeType":"YulFunctionCall","src":"5052:16:60"},"nodeType":"YulIf","src":"5049:171:60"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"4943:5:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4953:5:60","type":""}],"src":"4869:357:60"},{"body":{"nodeType":"YulBlock","src":"5405:163:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5422:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5433:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5415:6:60"},"nodeType":"YulFunctionCall","src":"5415:21:60"},"nodeType":"YulExpressionStatement","src":"5415:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5456:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5467:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5452:3:60"},"nodeType":"YulFunctionCall","src":"5452:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5472:2:60","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5445:6:60"},"nodeType":"YulFunctionCall","src":"5445:30:60"},"nodeType":"YulExpressionStatement","src":"5445:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5495:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5506:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5491:3:60"},"nodeType":"YulFunctionCall","src":"5491:18:60"},{"hexValue":"696e76616c69642070726f6f66","kind":"string","nodeType":"YulLiteral","src":"5511:15:60","type":"","value":"invalid proof"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5484:6:60"},"nodeType":"YulFunctionCall","src":"5484:43:60"},"nodeType":"YulExpressionStatement","src":"5484:43:60"},{"nodeType":"YulAssignment","src":"5536:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5548:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5559:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5544:3:60"},"nodeType":"YulFunctionCall","src":"5544:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5536:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5382:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5396:4:60","type":""}],"src":"5231:337:60"},{"body":{"nodeType":"YulBlock","src":"5701:201:60","statements":[{"nodeType":"YulAssignment","src":"5711:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5723:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5734:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5719:3:60"},"nodeType":"YulFunctionCall","src":"5719:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5711:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5753:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5768:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5776:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5764:3:60"},"nodeType":"YulFunctionCall","src":"5764:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5746:6:60"},"nodeType":"YulFunctionCall","src":"5746:74:60"},"nodeType":"YulExpressionStatement","src":"5746:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5840:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5851:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5836:3:60"},"nodeType":"YulFunctionCall","src":"5836:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5860:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5868:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5856:3:60"},"nodeType":"YulFunctionCall","src":"5856:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5829:6:60"},"nodeType":"YulFunctionCall","src":"5829:67:60"},"nodeType":"YulExpressionStatement","src":"5829:67:60"}]},"name":"abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5662:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5673:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5681:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5692:4:60","type":""}],"src":"5573:329:60"},{"body":{"nodeType":"YulBlock","src":"6034:201:60","statements":[{"nodeType":"YulAssignment","src":"6044:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6056:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6067:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6052:3:60"},"nodeType":"YulFunctionCall","src":"6052:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6044:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6086:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6101:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6109:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6097:3:60"},"nodeType":"YulFunctionCall","src":"6097:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6079:6:60"},"nodeType":"YulFunctionCall","src":"6079:74:60"},"nodeType":"YulExpressionStatement","src":"6079:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6173:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6184:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6169:3:60"},"nodeType":"YulFunctionCall","src":"6169:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6193:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6201:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6189:3:60"},"nodeType":"YulFunctionCall","src":"6189:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6162:6:60"},"nodeType":"YulFunctionCall","src":"6162:67:60"},"nodeType":"YulExpressionStatement","src":"6162:67:60"}]},"name":"abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5995:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6006:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6014:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6025:4:60","type":""}],"src":"5907:328:60"},{"body":{"nodeType":"YulBlock","src":"6414:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6431:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6442:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6424:6:60"},"nodeType":"YulFunctionCall","src":"6424:21:60"},"nodeType":"YulExpressionStatement","src":"6424:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6465:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6476:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6461:3:60"},"nodeType":"YulFunctionCall","src":"6461:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6481:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6454:6:60"},"nodeType":"YulFunctionCall","src":"6454:30:60"},"nodeType":"YulExpressionStatement","src":"6454:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6504:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6515:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6500:3:60"},"nodeType":"YulFunctionCall","src":"6500:18:60"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"6520:34:60","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6493:6:60"},"nodeType":"YulFunctionCall","src":"6493:62:60"},"nodeType":"YulExpressionStatement","src":"6493:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6575:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6586:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6571:3:60"},"nodeType":"YulFunctionCall","src":"6571:18:60"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"6591:8:60","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6564:6:60"},"nodeType":"YulFunctionCall","src":"6564:36:60"},"nodeType":"YulExpressionStatement","src":"6564:36:60"},{"nodeType":"YulAssignment","src":"6609:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6621:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6632:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6617:3:60"},"nodeType":"YulFunctionCall","src":"6617:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6609:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6391:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6405:4:60","type":""}],"src":"6240:402:60"},{"body":{"nodeType":"YulBlock","src":"6821:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6838:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6849:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6831:6:60"},"nodeType":"YulFunctionCall","src":"6831:21:60"},"nodeType":"YulExpressionStatement","src":"6831:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6872:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6883:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6868:3:60"},"nodeType":"YulFunctionCall","src":"6868:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6888:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6861:6:60"},"nodeType":"YulFunctionCall","src":"6861:30:60"},"nodeType":"YulExpressionStatement","src":"6861:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6911:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6922:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6907:3:60"},"nodeType":"YulFunctionCall","src":"6907:18:60"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"6927:34:60","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6900:6:60"},"nodeType":"YulFunctionCall","src":"6900:62:60"},"nodeType":"YulExpressionStatement","src":"6900:62:60"},{"nodeType":"YulAssignment","src":"6971:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6983:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6994:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6979:3:60"},"nodeType":"YulFunctionCall","src":"6979:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6971:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6798:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6812:4:60","type":""}],"src":"6647:356:60"},{"body":{"nodeType":"YulBlock","src":"7182:170:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7199:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7210:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7192:6:60"},"nodeType":"YulFunctionCall","src":"7192:21:60"},"nodeType":"YulExpressionStatement","src":"7192:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7233:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7244:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7229:3:60"},"nodeType":"YulFunctionCall","src":"7229:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7249:2:60","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7222:6:60"},"nodeType":"YulFunctionCall","src":"7222:30:60"},"nodeType":"YulExpressionStatement","src":"7222:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7272:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7283:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7268:3:60"},"nodeType":"YulFunctionCall","src":"7268:18:60"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"7288:22:60","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7261:6:60"},"nodeType":"YulFunctionCall","src":"7261:50:60"},"nodeType":"YulExpressionStatement","src":"7261:50:60"},{"nodeType":"YulAssignment","src":"7320:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7332:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7343:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7328:3:60"},"nodeType":"YulFunctionCall","src":"7328:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7320:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7159:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7173:4:60","type":""}],"src":"7008:344:60"},{"body":{"nodeType":"YulBlock","src":"7531:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7548:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7559:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7541:6:60"},"nodeType":"YulFunctionCall","src":"7541:21:60"},"nodeType":"YulExpressionStatement","src":"7541:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7582:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7593:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7578:3:60"},"nodeType":"YulFunctionCall","src":"7578:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7598:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7571:6:60"},"nodeType":"YulFunctionCall","src":"7571:30:60"},"nodeType":"YulExpressionStatement","src":"7571:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7621:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7632:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7617:3:60"},"nodeType":"YulFunctionCall","src":"7617:18:60"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"7637:18:60","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7610:6:60"},"nodeType":"YulFunctionCall","src":"7610:46:60"},"nodeType":"YulExpressionStatement","src":"7610:46:60"},{"nodeType":"YulAssignment","src":"7665:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7677:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7688:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7673:3:60"},"nodeType":"YulFunctionCall","src":"7673:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7665:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7508:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7522:4:60","type":""}],"src":"7357:340:60"},{"body":{"nodeType":"YulBlock","src":"7734:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7751:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7754:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7744:6:60"},"nodeType":"YulFunctionCall","src":"7744:88:60"},"nodeType":"YulExpressionStatement","src":"7744:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7848:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7851:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7841:6:60"},"nodeType":"YulFunctionCall","src":"7841:15:60"},"nodeType":"YulExpressionStatement","src":"7841:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7872:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7875:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7865:6:60"},"nodeType":"YulFunctionCall","src":"7865:15:60"},"nodeType":"YulExpressionStatement","src":"7865:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"7702:184:60"},{"body":{"nodeType":"YulBlock","src":"7938:302:60","statements":[{"body":{"nodeType":"YulBlock","src":"8037:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8058:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8061:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8051:6:60"},"nodeType":"YulFunctionCall","src":"8051:88:60"},"nodeType":"YulExpressionStatement","src":"8051:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8159:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8162:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8152:6:60"},"nodeType":"YulFunctionCall","src":"8152:15:60"},"nodeType":"YulExpressionStatement","src":"8152:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8187:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8190:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8180:6:60"},"nodeType":"YulFunctionCall","src":"8180:15:60"},"nodeType":"YulExpressionStatement","src":"8180:15:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7954:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7961:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7951:2:60"},"nodeType":"YulFunctionCall","src":"7951:77:60"},"nodeType":"YulIf","src":"7948:257:60"},{"nodeType":"YulAssignment","src":"8214:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8225:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"8232:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8221:3:60"},"nodeType":"YulFunctionCall","src":"8221:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"8214:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7920:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"7930:3:60","type":""}],"src":"7891:349:60"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_contract_IERC20(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$1502t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"merkle root not set\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"transfer failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"nothing to claim\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        mstore(add(pos, 20), and(shl(160, value1), 0xffffffffffffffffffffffff0000000000000000000000000000000000000000))\n        end := add(pos, 32)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"invalid proof\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address_t_uint96__to_t_address_t_uint96__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := add(value, 1)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"10743":[{"length":32,"start":500},{"length":32,"start":1515}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100d45760003560e01c80637cb647591161008157806391a862fa1161005b57806391a862fa146101dc5780639bab65b8146101ef578063f2fde38b1461021657600080fd5b80637cb64759146101825780638456cb59146101955780638da5cb5b1461019d57600080fd5b80635c975abb116100b25780635c975abb1461011257806371417b321461012f578063715018a61461017a57600080fd5b80632eb4a7ab146100d95780633f4ba83a146100f55780635705ae43146100ff575b600080fd5b6100e260025481565b6040519081526020015b60405180910390f35b6100fd610229565b005b6100fd61010d366004610aaf565b610292565b600054600160a01b900460ff1660405190151581526020016100ec565b61015d61013d366004610adb565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff90911681526020016100ec565b6100fd610389565b6100fd610190366004610af8565b61039b565b6100fd6103e6565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ec565b6100fd6101ea366004610b11565b6103f6565b6101b77f000000000000000000000000000000000000000000000000000000000000000081565b6100fd610224366004610adb565b6106f1565b61023161078e565b6002546000036102885760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6102906107f5565b565b61029a610872565b6102a261078e565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081523360048201526024810182905273ffffffffffffffffffffffffffffffffffffffff83169063a9059cbb906044016020604051808303816000875af1158015610315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103399190610baa565b6103855760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015260640161027f565b5050565b61039161078e565b61029060006108cb565b6103a3610872565b6103ab61078e565b60028190556040518181527f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b9060200160405180910390a150565b6103ee61078e565b610290610940565b6103fe61099e565b336000908152600160205260409020546bffffffffffffffffffffffff908116908416811061046f5760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d00000000000000000000000000000000604482015260640161027f565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a087901b166034820152600091016040516020818303038152906040526104d390610bcc565b90506105168484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060025491508490506109f8565b6105625760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f6600000000000000000000000000000000000000604482015260640161027f565b336000818152600160205260409081902080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8981169190911790915590517fa9059cbb000000000000000000000000000000000000000000000000000000008152600481019290925295839003958616602482015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190610baa565b6106a45760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015260640161027f565b604080513381526bffffffffffffffffffffffff871660208201527f1f1f3fe51e971f9768a1b748e2a520609176b6de88aa4d9c02ace9fb9177189f910160405180910390a15050505050565b6106f961078e565b73ffffffffffffffffffffffffffffffffffffffff81166107825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161027f565b61078b816108cb565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161027f565b6107fd610872565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b600054600160a01b900460ff166102905760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161027f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61094861099e565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108483390565b600054600160a01b900460ff16156102905760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161027f565b600082610a058584610a0e565b14949350505050565b600081815b8451811015610a5357610a3f82868381518110610a3257610a32610bf3565b6020026020010151610a5b565b915080610a4b81610c22565b915050610a13565b509392505050565b6000818310610a77576000828152602084905260409020610a86565b60008381526020839052604090205b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461078b57600080fd5b60008060408385031215610ac257600080fd5b8235610acd81610a8d565b946020939093013593505050565b600060208284031215610aed57600080fd5b8135610a8681610a8d565b600060208284031215610b0a57600080fd5b5035919050565b600080600060408486031215610b2657600080fd5b83356bffffffffffffffffffffffff81168114610b4257600080fd5b9250602084013567ffffffffffffffff80821115610b5f57600080fd5b818601915086601f830112610b7357600080fd5b813581811115610b8257600080fd5b8760208260051b8501011115610b9757600080fd5b6020830194508093505050509250925092565b600060208284031215610bbc57600080fd5b81518015158114610a8657600080fd5b80516020808301519190811015610bed576000198160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203610c5c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220b0d1945ddb79110deb6d762b36443e16a8db3c4abd238bcf20321e82e6966d6d64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xD4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7CB64759 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0x91A862FA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x91A862FA EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x9BAB65B8 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7CB64759 EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5C975ABB GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x112 JUMPI DUP1 PUSH4 0x71417B32 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x17A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0x5705AE43 EQ PUSH2 0xFF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE2 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFD PUSH2 0x229 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFD PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0xAAF JUMP JUMPDEST PUSH2 0x292 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0x15D PUSH2 0x13D CALLDATASIZE PUSH1 0x4 PUSH2 0xADB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0xFD PUSH2 0x389 JUMP JUMPDEST PUSH2 0xFD PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0xAF8 JUMP JUMPDEST PUSH2 0x39B JUMP JUMPDEST PUSH2 0xFD PUSH2 0x3E6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xEC JUMP JUMPDEST PUSH2 0xFD PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0xB11 JUMP JUMPDEST PUSH2 0x3F6 JUMP JUMPDEST PUSH2 0x1B7 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xFD PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0xADB JUMP JUMPDEST PUSH2 0x6F1 JUMP JUMPDEST PUSH2 0x231 PUSH2 0x78E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SUB PUSH2 0x288 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D65726B6C6520726F6F74206E6F742073657400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x290 PUSH2 0x7F5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x29A PUSH2 0x872 JUMP JUMPDEST PUSH2 0x2A2 PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x385 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x391 PUSH2 0x78E JUMP JUMPDEST PUSH2 0x290 PUSH1 0x0 PUSH2 0x8CB JUMP JUMPDEST PUSH2 0x3A3 PUSH2 0x872 JUMP JUMPDEST PUSH2 0x3AB PUSH2 0x78E JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x42CBC405E4DBF1B691E85B9A34B08ECFCF7A9AD9078BF4D645CCFA1FAC11C10B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x3EE PUSH2 0x78E JUMP JUMPDEST PUSH2 0x290 PUSH2 0x940 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x99E JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP5 AND DUP2 LT PUSH2 0x46F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7468696E6720746F20636C61696D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 PUSH1 0xA0 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x4D3 SWAP1 PUSH2 0xBCC JUMP JUMPDEST SWAP1 POP PUSH2 0x516 DUP5 DUP5 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x2 SLOAD SWAP2 POP DUP5 SWAP1 POP PUSH2 0x9F8 JUMP JUMPDEST PUSH2 0x562 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070726F6F6600000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP6 DUP4 SWAP1 SUB SWAP6 DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x634 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x658 SWAP2 SWAP1 PUSH2 0xBAA JUMP JUMPDEST PUSH2 0x6A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD CALLER DUP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x1F1F3FE51E971F9768A1B748E2A520609176B6DE88AA4D9C02ACE9FB9177189F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x6F9 PUSH2 0x78E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x782 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x27F JUMP JUMPDEST PUSH2 0x78B DUP2 PUSH2 0x8CB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH2 0x7FD PUSH2 0x872 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x948 PUSH2 0x99E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x848 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x290 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x27F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA05 DUP6 DUP5 PUSH2 0xA0E JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xA53 JUMPI PUSH2 0xA3F DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xA32 JUMPI PUSH2 0xA32 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xA5B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0xA4B DUP2 PUSH2 0xC22 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA13 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0xA77 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xA86 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x78B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xACD DUP2 PUSH2 0xA8D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA86 DUP2 PUSH2 0xA8D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB5F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xB82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xB97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xA86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0xBED JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xC5C JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xD1 SWAP5 0x5D 0xDB PUSH26 0x110DEB6D762B36443E16A8DB3C4ABD238BCF20321E82E6966D6D PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"301:1753:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;438:25;;;;;;;;;160::60;;;148:2;133:18;438:25:40;;;;;;;;1923:128;;;:::i;:::-;;1686:158;;;;;;:::i;:::-;;:::i;1615:84:6:-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1615:84;;871:14:60;;864:22;846:41;;834:2;819:18;1615:84:6;706:187:60;349:48:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1332:26:60;1320:39;;;1302:58;;1290:2;1275:18;349:48:40;1158:208:60;1831:101:4;;;:::i;1513:165:40:-;;;;;;:::i;:::-;;:::i;1852:63::-;;;:::i;1201:85:4:-;1247:7;1273:6;;;1201:85;;;1732:42:60;1720:55;;;1702:74;;1690:2;1675:18;1201:85:4;1556:226:60;891:614:40;;;;;;:::i;:::-;;:::i;404:27::-;;;;;2081:198:4;;;;;;:::i;:::-;;:::i;1923:128:40:-;1094:13:4;:11;:13::i;:::-;1980:10:40::1;::::0;1994:4:::1;1980:18:::0;1972:50:::1;;;::::0;-1:-1:-1;;;1972:50:40;;3035:2:60;1972:50:40::1;::::0;::::1;3017:21:60::0;3074:2;3054:18;;;3047:30;3113:21;3093:18;;;3086:49;3152:18;;1972:50:40::1;;;;;;;;;2033:10;:8;:10::i;:::-;1923:128::o:0;1686:158::-;1486:16:6;:14;:16::i;:::-;1094:13:4::1;:11;:13::i;:::-;1782:34:40::2;::::0;;;;1797:10:::2;1782:34;::::0;::::2;3355:74:60::0;3445:18;;;3438:34;;;1782:14:40::2;::::0;::::2;::::0;::::2;::::0;3328:18:60;;1782:34:40::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1774:62;;;::::0;-1:-1:-1;;;1774:62:40;;3967:2:60;1774:62:40::2;::::0;::::2;3949:21:60::0;4006:2;3986:18;;;3979:30;4045:17;4025:18;;;4018:45;4080:18;;1774:62:40::2;3765:339:60::0;1774:62:40::2;1686:158:::0;;:::o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;1513:165:40:-:0;1486:16:6;:14;:16::i;:::-;1094:13:4::1;:11;:13::i;:::-;1600:10:40::2;:26:::0;;;1642:28:::2;::::0;160:25:60;;;1642:28:40::2;::::0;148:2:60;133:18;1642:28:40::2;;;;;;;1513:165:::0;:::o;1852:63::-;1094:13:4;:11;:13::i;:::-;1899:8:40::1;:6;:8::i;891:614::-:0;1239:19:6;:17;:19::i;:::-;1029:10:40::1;987:24;1014:26:::0;;;:14:::1;:26;::::0;;;;;::::1;::::0;;::::1;::::0;1059;::::1;::::0;::::1;1051:55;;;::::0;-1:-1:-1;;;1051:55:40;;4311:2:60;1051:55:40::1;::::0;::::1;4293:21:60::0;4350:2;4330:18;;;4323:30;4389:18;4369;;;4362:46;4425:18;;1051:55:40::1;4109:340:60::0;1051:55:40::1;1140:36;::::0;;-1:-1:-1;;1157:10:40::1;4629:2:60::0;4625:15;4621:88;1140:36:40::1;::::0;::::1;4609:101:60::0;4762:66;4748:3;4744:16;;;4740:89;4726:12;;;4719:111;1117:12:40::1;::::0;4846::60;1140:36:40::1;;;;;;;;;;;;1132:45;;;:::i;:::-;1117:60;;1196:49;1215:11;;1196:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;1228:10:40::1;::::0;;-1:-1:-1;1240:4:40;;-1:-1:-1;1196:18:40::1;:49::i;:::-;1188:75;;;::::0;-1:-1:-1;;;1188:75:40;;5433:2:60;1188:75:40::1;::::0;::::1;5415:21:60::0;5472:2;5452:18;;;5445:30;5511:15;5491:18;;;5484:43;5544:18;;1188:75:40::1;5231:337:60::0;1188:75:40::1;1289:10;1274:26;::::0;;;:14:::1;:26;::::0;;;;;;:35;;-1:-1:-1;;1274:35:40::1;;::::0;;::::1;::::0;;;::::1;::::0;;;1402:32;;;;;::::1;::::0;::::1;5746:74:60::0;;;;1345:27:40;;;::::1;5856:39:60::0;;;5836:18;;;5829:67;1274:26:40::1;1402:3;:12;::::0;::::1;::::0;5719:18:60;;1402:32:40::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1394:60;;;::::0;-1:-1:-1;;;1394:60:40;;3967:2:60;1394:60:40::1;::::0;::::1;3949:21:60::0;4006:2;3986:18;;;3979:30;4045:17;4025:18;;;4018:45;4080:18;;1394:60:40::1;3765:339:60::0;1394:60:40::1;1470:27;::::0;;1478:10:::1;5746:74:60::0;;5868:26;5856:39;;5851:2;5836:18;;5829:67;1470:27:40::1;::::0;5719:18:60;1470:27:40::1;;;;;;;976:529;;891:614:::0;;;:::o;2081:198:4:-;1094:13;:11;:13::i;:::-;2169:22:::1;::::0;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;6442:2:60;2161:73:4::1;::::0;::::1;6424:21:60::0;6481:2;6461:18;;;6454:30;6520:34;6500:18;;;6493:62;6591:8;6571:18;;;6564:36;6617:19;;2161:73:4::1;6240:402:60::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;1422:23;1273:6;719:10:24;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;6849:2:60;1414:68:4;;;6831:21:60;;;6868:18;;;6861:30;6927:34;6907:18;;;6900:62;6979:18;;1414:68:4;6647:356:60;2433:117:6;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;;::::1;::::0;;2521:22:::1;719:10:24::0;2530:12:6::1;2521:22;::::0;1732:42:60;1720:55;;;1702:74;;1690:2;1675:18;2521:22:6::1;;;;;;;2433:117::o:0;1945:106::-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;2003:41;;;;-1:-1:-1;;;2003:41:6;;7210:2:60;2003:41:6;;;7192:21:60;7249:2;7229:18;;;7222:30;7288:22;7268:18;;;7261:50;7328:18;;2003:41:6;7008:344:60;2433:187:4;2506:16;2525:6;;;2541:17;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:6:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;;::::1;-1:-1:-1::0;;;2245:14:6::1;::::0;;2274:20:::1;2281:12;719:10:24::0;;640:96;1767:106:6;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:6;;7559:2:60;1828:38:6;;;7541:21:60;7598:2;7578:18;;;7571:30;7637:18;7617;;;7610:46;7673:18;;1828:38:6;7357:340:60;1156:184:29;1277:4;1329;1300:25;1313:5;1320:4;1300:12;:25::i;:::-;:33;;1156:184;-1:-1:-1;;;;1156:184:29:o;1994:290::-;2077:7;2119:4;2077:7;2133:116;2157:5;:12;2153:1;:16;2133:116;;;2205:33;2215:12;2229:5;2235:1;2229:8;;;;;;;;:::i;:::-;;;;;;;2205:9;:33::i;:::-;2190:48;-1:-1:-1;2171:3:29;;;;:::i;:::-;;;;2133:116;;;-1:-1:-1;2265:12:29;1994:290;-1:-1:-1;;;1994:290:29:o;8879:147::-;8942:7;8972:1;8968;:5;:51;;9100:13;9191:15;;;9226:4;9219:15;;;9272:4;9256:21;;8968:51;;;9100:13;9191:15;;;9226:4;9219:15;;;9272:4;9256:21;;8976:20;8961:58;8879:147;-1:-1:-1;;;8879:147:29:o;196:162:60:-;290:42;283:5;279:54;272:5;269:65;259:93;;348:1;345;338:12;363:338;446:6;454;507:2;495:9;486:7;482:23;478:32;475:52;;;523:1;520;513:12;475:52;562:9;549:23;581:39;614:5;581:39;:::i;:::-;639:5;691:2;676:18;;;;663:32;;-1:-1:-1;;;363:338:60:o;898:255::-;957:6;1010:2;998:9;989:7;985:23;981:32;978:52;;;1026:1;1023;1016:12;978:52;1065:9;1052:23;1084:39;1117:5;1084:39;:::i;1371:180::-;1430:6;1483:2;1471:9;1462:7;1458:23;1454:32;1451:52;;;1499:1;1496;1489:12;1451:52;-1:-1:-1;1522:23:60;;1371:180;-1:-1:-1;1371:180:60:o;1787:795::-;1881:6;1889;1897;1950:2;1938:9;1929:7;1925:23;1921:32;1918:52;;;1966:1;1963;1956:12;1918:52;2005:9;1992:23;2055:26;2048:5;2044:38;2037:5;2034:49;2024:77;;2097:1;2094;2087:12;2024:77;2120:5;-1:-1:-1;2176:2:60;2161:18;;2148:32;2199:18;2229:14;;;2226:34;;;2256:1;2253;2246:12;2226:34;2294:6;2283:9;2279:22;2269:32;;2339:7;2332:4;2328:2;2324:13;2320:27;2310:55;;2361:1;2358;2351:12;2310:55;2401:2;2388:16;2427:2;2419:6;2416:14;2413:34;;;2443:1;2440;2433:12;2413:34;2496:7;2491:2;2481:6;2478:1;2474:14;2470:2;2466:23;2462:32;2459:45;2456:65;;;2517:1;2514;2507:12;2456:65;2548:2;2544;2540:11;2530:21;;2570:6;2560:16;;;;;1787:795;;;;;:::o;3483:277::-;3550:6;3603:2;3591:9;3582:7;3578:23;3574:32;3571:52;;;3619:1;3616;3609:12;3571:52;3651:9;3645:16;3704:5;3697:13;3690:21;3683:5;3680:32;3670:60;;3726:1;3723;3716:12;4869:357;4987:12;;5034:4;5023:16;;;5017:23;;4987:12;5052:16;;5049:171;;;-1:-1:-1;;5132:6:60;5126:4;5122:17;5119:1;5115:25;5111:98;5104:5;5100:110;5091:119;;5049:171;;4869:357;;;:::o;7702:184::-;7754:77;7751:1;7744:88;7851:4;7848:1;7841:15;7875:4;7872:1;7865:15;7891:349;7930:3;-1:-1:-1;;7954:5:60;7951:77;7948:257;;8061:77;8058:1;8051:88;8162:4;8159:1;8152:15;8190:4;8187:1;8180:15;7948:257;-1:-1:-1;8232:1:60;8221:13;;7891:349::o"},"methodIdentifiers":{"PNG()":"9bab65b8","claim(uint96,bytes32[])":"91a862fa","claimedAmounts(address)":"71417b32","merkleRoot()":"2eb4a7ab","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","recover(address,uint256)":"5705ae43","renounceOwnership()":"715018a6","setMerkleRoot(bytes32)":"7cb64759","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"airdropToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"MerkleRootSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PNG\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimedAmounts\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"recover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"setMerkleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-token/Merkledrop.sol\":\"Merkledrop\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xd466e8b07f4c6220eac16da5127f3ff142e65f0c15c03c7d38f257b02c8585e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6b3cab69f655e40117bbdd8e68d7423f26d1b24248fb189c295f08de8940616\",\"dweb:/ipfs/QmWoyRthsBDMa7gJpH5UCjpa8uNUQfyaGbSgY3uvhBH9F3\"]},\"contracts/pangolin-token/Merkledrop.sol\":{\"keccak256\":\"0xb3a7f83fc9624b4a6db38d8ffc825b224a7ae18479ed7ab532a4257475570b22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b76bdb6bef0c7266270f3c0204d40e01d68c753432670179634876c0383c99b7\",\"dweb:/ipfs/QmZWtPvmCUviT9TtaLazxojHSvfHsPHaMkDTqipgQCFo2A\"]}},\"version\":1}"}},"contracts/pangolin-token/MerkledropToStaking.sol":{"IPangolinStakingPositions":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(uint256)":"a0712d68","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-token/MerkledropToStaking.sol\":\"IPangolinStakingPositions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xd466e8b07f4c6220eac16da5127f3ff142e65f0c15c03c7d38f257b02c8585e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6b3cab69f655e40117bbdd8e68d7423f26d1b24248fb189c295f08de8940616\",\"dweb:/ipfs/QmWoyRthsBDMa7gJpH5UCjpa8uNUQfyaGbSgY3uvhBH9F3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/pangolin-token/MerkledropToStaking.sol\":{\"keccak256\":\"0xb2393e8e3b883b2f83a525ca38560d028c519af89d452acc87daa953924d4c15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e47bb2abed489ee73a929123dbc32aec1bc4ffb83160f56492089ec2559781d\",\"dweb:/ipfs/QmZkfwXofF8pgVg6Lb1ciQwPcyh1kAzaE1ic5ASLHGCMGh\"]}},\"version\":1}"},"MerkledropToStaking":{"abi":[{"inputs":[{"internalType":"address","name":"airdropToken","type":"address"},{"internalType":"address","name":"stakingPositions","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint96","name":"amount","type":"uint96"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"}],"name":"MerkleRootSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"PNG","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SAR","outputs":[{"internalType":"contract IPangolinStakingPositions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint96","name":"amount","type":"uint96"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint96","name":"amount","type":"uint96"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claimTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimedAmounts","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11051":{"entryPoint":null,"id":11051,"parameterSlots":3,"returnSlots":0},"@_562":{"entryPoint":null,"id":562,"parameterSlots":0,"returnSlots":0},"@_756":{"entryPoint":null,"id":756,"parameterSlots":0,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_pause_820":{"entryPoint":600,"id":820,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_793":{"entryPoint":699,"id":793,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_650":{"entryPoint":520,"id":650,"parameterSlots":1,"returnSlots":0},"@paused_781":{"entryPoint":null,"id":781,"parameterSlots":0,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":787,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_address_fromMemory":{"entryPoint":816,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2742:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:60","statements":[{"nodeType":"YulAssignment","src":"84:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:60"},"nodeType":"YulFunctionCall","src":"93:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:60"}]},{"body":{"nodeType":"YulBlock","src":"169:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:60"},"nodeType":"YulFunctionCall","src":"171:12:60"},"nodeType":"YulExpressionStatement","src":"171:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:60"},"nodeType":"YulFunctionCall","src":"150:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:60"},"nodeType":"YulFunctionCall","src":"146:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:60"},"nodeType":"YulFunctionCall","src":"135:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:60"},"nodeType":"YulFunctionCall","src":"125:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:60"},"nodeType":"YulFunctionCall","src":"118:50:60"},"nodeType":"YulIf","src":"115:70:60"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"311:263:60","statements":[{"body":{"nodeType":"YulBlock","src":"357:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"366:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"369:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"359:6:60"},"nodeType":"YulFunctionCall","src":"359:12:60"},"nodeType":"YulExpressionStatement","src":"359:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"332:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"341:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"328:3:60"},"nodeType":"YulFunctionCall","src":"328:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"353:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"324:3:60"},"nodeType":"YulFunctionCall","src":"324:32:60"},"nodeType":"YulIf","src":"321:52:60"},{"nodeType":"YulAssignment","src":"382:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"422:9:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"392:29:60"},"nodeType":"YulFunctionCall","src":"392:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"382:6:60"}]},{"nodeType":"YulAssignment","src":"441:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"485:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"496:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:60"},"nodeType":"YulFunctionCall","src":"481:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"451:29:60"},"nodeType":"YulFunctionCall","src":"451:49:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"441:6:60"}]},{"nodeType":"YulAssignment","src":"509:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"553:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"564:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"549:3:60"},"nodeType":"YulFunctionCall","src":"549:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"519:29:60"},"nodeType":"YulFunctionCall","src":"519:49:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"509:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"261:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"272:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"284:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"292:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"300:6:60","type":""}],"src":"196:378:60"},{"body":{"nodeType":"YulBlock","src":"753:171:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"770:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"781:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"763:6:60"},"nodeType":"YulFunctionCall","src":"763:21:60"},"nodeType":"YulExpressionStatement","src":"763:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"804:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"815:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"800:3:60"},"nodeType":"YulFunctionCall","src":"800:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"820:2:60","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"793:6:60"},"nodeType":"YulFunctionCall","src":"793:30:60"},"nodeType":"YulExpressionStatement","src":"793:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"843:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"854:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"839:3:60"},"nodeType":"YulFunctionCall","src":"839:18:60"},{"hexValue":"696e76616c696420746f6b656e2061646472657373","kind":"string","nodeType":"YulLiteral","src":"859:23:60","type":"","value":"invalid token address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"832:6:60"},"nodeType":"YulFunctionCall","src":"832:51:60"},"nodeType":"YulExpressionStatement","src":"832:51:60"},{"nodeType":"YulAssignment","src":"892:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"904:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"915:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"900:3:60"},"nodeType":"YulFunctionCall","src":"900:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"892:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"730:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"744:4:60","type":""}],"src":"579:345:60"},{"body":{"nodeType":"YulBlock","src":"1103:173:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1120:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1131:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1113:6:60"},"nodeType":"YulFunctionCall","src":"1113:21:60"},"nodeType":"YulExpressionStatement","src":"1113:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1154:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1165:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1150:3:60"},"nodeType":"YulFunctionCall","src":"1150:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1170:2:60","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1143:6:60"},"nodeType":"YulFunctionCall","src":"1143:30:60"},"nodeType":"YulExpressionStatement","src":"1143:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1193:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1204:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1189:3:60"},"nodeType":"YulFunctionCall","src":"1189:18:60"},{"hexValue":"696e76616c6964207374616b696e672061646472657373","kind":"string","nodeType":"YulLiteral","src":"1209:25:60","type":"","value":"invalid staking address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1182:6:60"},"nodeType":"YulFunctionCall","src":"1182:53:60"},"nodeType":"YulExpressionStatement","src":"1182:53:60"},{"nodeType":"YulAssignment","src":"1244:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1256:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1267:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1252:3:60"},"nodeType":"YulFunctionCall","src":"1252:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1244:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1080:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1094:4:60","type":""}],"src":"929:347:60"},{"body":{"nodeType":"YulBlock","src":"1455:171:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1472:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1483:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1465:6:60"},"nodeType":"YulFunctionCall","src":"1465:21:60"},"nodeType":"YulExpressionStatement","src":"1465:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1506:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1517:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1502:3:60"},"nodeType":"YulFunctionCall","src":"1502:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1522:2:60","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1495:6:60"},"nodeType":"YulFunctionCall","src":"1495:30:60"},"nodeType":"YulExpressionStatement","src":"1495:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1545:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1556:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1541:3:60"},"nodeType":"YulFunctionCall","src":"1541:18:60"},{"hexValue":"696e76616c696420696e697469616c206f776e6572","kind":"string","nodeType":"YulLiteral","src":"1561:23:60","type":"","value":"invalid initial owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1534:6:60"},"nodeType":"YulFunctionCall","src":"1534:51:60"},"nodeType":"YulExpressionStatement","src":"1534:51:60"},{"nodeType":"YulAssignment","src":"1594:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1606:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1617:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:60"},"nodeType":"YulFunctionCall","src":"1602:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1594:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1446:4:60","type":""}],"src":"1281:345:60"},{"body":{"nodeType":"YulBlock","src":"1760:145:60","statements":[{"nodeType":"YulAssignment","src":"1770:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1782:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1793:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1778:3:60"},"nodeType":"YulFunctionCall","src":"1778:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1770:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1812:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1827:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1843:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1848:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1839:3:60"},"nodeType":"YulFunctionCall","src":"1839:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"1852:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1835:3:60"},"nodeType":"YulFunctionCall","src":"1835:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1823:3:60"},"nodeType":"YulFunctionCall","src":"1823:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1805:6:60"},"nodeType":"YulFunctionCall","src":"1805:51:60"},"nodeType":"YulExpressionStatement","src":"1805:51:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1876:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1887:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1872:3:60"},"nodeType":"YulFunctionCall","src":"1872:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"1892:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1865:6:60"},"nodeType":"YulFunctionCall","src":"1865:34:60"},"nodeType":"YulExpressionStatement","src":"1865:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1721:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1732:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1740:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1751:4:60","type":""}],"src":"1631:274:60"},{"body":{"nodeType":"YulBlock","src":"1988:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"2034:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2043:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2046:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2036:6:60"},"nodeType":"YulFunctionCall","src":"2036:12:60"},"nodeType":"YulExpressionStatement","src":"2036:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2009:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2018:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2005:3:60"},"nodeType":"YulFunctionCall","src":"2005:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2030:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2001:3:60"},"nodeType":"YulFunctionCall","src":"2001:32:60"},"nodeType":"YulIf","src":"1998:52:60"},{"nodeType":"YulVariableDeclaration","src":"2059:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2078:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2072:5:60"},"nodeType":"YulFunctionCall","src":"2072:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2063:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2141:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2150:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2153:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2143:6:60"},"nodeType":"YulFunctionCall","src":"2143:12:60"},"nodeType":"YulExpressionStatement","src":"2143:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2110:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2131:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2124:6:60"},"nodeType":"YulFunctionCall","src":"2124:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2117:6:60"},"nodeType":"YulFunctionCall","src":"2117:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2107:2:60"},"nodeType":"YulFunctionCall","src":"2107:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2100:6:60"},"nodeType":"YulFunctionCall","src":"2100:40:60"},"nodeType":"YulIf","src":"2097:60:60"},{"nodeType":"YulAssignment","src":"2166:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"2176:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2166:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1954:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1965:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1977:6:60","type":""}],"src":"1910:277:60"},{"body":{"nodeType":"YulBlock","src":"2293:102:60","statements":[{"nodeType":"YulAssignment","src":"2303:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2315:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2326:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2311:3:60"},"nodeType":"YulFunctionCall","src":"2311:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2303:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2345:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2360:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2376:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2381:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2372:3:60"},"nodeType":"YulFunctionCall","src":"2372:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"2385:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2368:3:60"},"nodeType":"YulFunctionCall","src":"2368:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2356:3:60"},"nodeType":"YulFunctionCall","src":"2356:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2338:6:60"},"nodeType":"YulFunctionCall","src":"2338:51:60"},"nodeType":"YulExpressionStatement","src":"2338:51:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2262:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2273:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2284:4:60","type":""}],"src":"2192:203:60"},{"body":{"nodeType":"YulBlock","src":"2574:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2591:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2602:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2584:6:60"},"nodeType":"YulFunctionCall","src":"2584:21:60"},"nodeType":"YulExpressionStatement","src":"2584:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2625:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2636:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2621:3:60"},"nodeType":"YulFunctionCall","src":"2621:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"2641:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2614:6:60"},"nodeType":"YulFunctionCall","src":"2614:30:60"},"nodeType":"YulExpressionStatement","src":"2614:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2664:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2675:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2660:3:60"},"nodeType":"YulFunctionCall","src":"2660:18:60"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"2680:18:60","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2653:6:60"},"nodeType":"YulFunctionCall","src":"2653:46:60"},"nodeType":"YulExpressionStatement","src":"2653:46:60"},{"nodeType":"YulAssignment","src":"2708:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2720:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2731:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2716:3:60"},"nodeType":"YulFunctionCall","src":"2716:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2708:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2551:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2565:4:60","type":""}],"src":"2400:340:60"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"invalid token address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"invalid staking address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"invalid initial owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c06040523480156200001157600080fd5b506040516200115138038062001151833981016040819052620000349162000330565b6200003f3362000208565b6000805460ff60a01b191681556001600160a01b0384163b9003620000ab5760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420746f6b656e2061646472657373000000000000000000000060448201526064015b60405180910390fd5b816001600160a01b03163b600003620001075760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964207374616b696e6720616464726573730000000000000000006044820152606401620000a2565b6001600160a01b0381166200015f5760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420696e697469616c206f776e657200000000000000000000006044820152606401620000a2565b6200016a8162000208565b60405163095ea7b360e01b81526001600160a01b038381166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af1158015620001bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e191906200037a565b506001600160a01b03808416608052821660a052620001ff62000258565b505050620003a5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000262620002bb565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200029e3390565b6040516001600160a01b03909116815260200160405180910390a1565b620002cf600054600160a01b900460ff1690565b15620003115760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401620000a2565b565b80516001600160a01b03811681146200032b57600080fd5b919050565b6000806000606084860312156200034657600080fd5b620003518462000313565b9250620003616020850162000313565b9150620003716040850162000313565b90509250925092565b6000602082840312156200038d57600080fd5b815180151581146200039e57600080fd5b9392505050565b60805160a051610d78620003d9600039600081816101100152818161060c01526106c10152600061021b0152610d786000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80637cb647591161008c57806391a862fa1161006657806391a862fa146102035780639bab65b814610216578063d8ef8ad41461023d578063f2fde38b1461025057600080fd5b80637cb64759146101d75780638456cb59146101ea5780638da5cb5b146101f257600080fd5b80635705ae43116100c85780635705ae43146101545780635c975abb1461016757806371417b3214610184578063715018a6146101cf57600080fd5b80632eb4a7ab146100ef57806333c88ff61461010b5780633f4ba83a1461014a575b600080fd5b6100f860025481565b6040519081526020015b60405180910390f35b6101327f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610102565b610152610263565b005b610152610162366004610aeb565b6102cc565b600054600160a01b900460ff166040519015158152602001610102565b6101b2610192366004610b17565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610102565b6101526103b6565b6101526101e5366004610b34565b6103c8565b61015261040b565b6000546001600160a01b0316610132565b610152610211366004610bba565b61041b565b6101327f000000000000000000000000000000000000000000000000000000000000000081565b61015261024b366004610c0d565b61042c565b61015261025e366004610b17565b61076e565b61026b6107fe565b6002546000036102c25760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6102ca610858565b565b6102d46108c8565b6102dc6107fe565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103669190610c70565b6103b25760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c6564000000000000000000000000000000000060448201526064016102b9565b5050565b6103be6107fe565b6102ca6000610921565b6103d06108c8565b6103d86107fe565b600281905560405181907f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b90600090a250565b6104136107fe565b6102ca610989565b6104273384848461042c565b505050565b6104346109e7565b336000908152600160205260409020546bffffffffffffffffffffffff90811690841681106104a55760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d0000000000000000000000000000000060448201526064016102b9565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a087901b1660348201526000910160405160208183030381529060405261050990610c92565b905061054c848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610a41565b6105985760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f660000000000000000000000000000000000000060448201526064016102b9565b3360009081526001602052604080822080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8981169190911790915590517fa0712d68000000000000000000000000000000000000000000000000000000008152968490039081166004880152956001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a0712d68906024016020604051808303816000875af1158015610655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190610cb9565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038981166024830152604482018390529192507f0000000000000000000000000000000000000000000000000000000000000000909116906342842e0e90606401600060405180830381600087803b15801561070757600080fd5b505af115801561071b573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff891692506001600160a01b038a16915033907ff9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab790600090a450505050505050565b6107766107fe565b6001600160a01b0381166107f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102b9565b6107fb81610921565b50565b6000546001600160a01b031633146102ca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b6108606108c8565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054600160a01b900460ff166102ca5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016102b9565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109916109e7565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108ab3390565b600054600160a01b900460ff16156102ca5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016102b9565b600082610a4e8584610a57565b14949350505050565b600081815b8451811015610a9c57610a8882868381518110610a7b57610a7b610cd2565b6020026020010151610aa4565b915080610a9481610d01565b915050610a5c565b509392505050565b6000818310610ac0576000828152602084905260409020610acf565b60008381526020839052604090205b9392505050565b6001600160a01b03811681146107fb57600080fd5b60008060408385031215610afe57600080fd5b8235610b0981610ad6565b946020939093013593505050565b600060208284031215610b2957600080fd5b8135610acf81610ad6565b600060208284031215610b4657600080fd5b5035919050565b80356bffffffffffffffffffffffff81168114610b6957600080fd5b919050565b60008083601f840112610b8057600080fd5b50813567ffffffffffffffff811115610b9857600080fd5b6020830191508360208260051b8501011115610bb357600080fd5b9250929050565b600080600060408486031215610bcf57600080fd5b610bd884610b4d565b9250602084013567ffffffffffffffff811115610bf457600080fd5b610c0086828701610b6e565b9497909650939450505050565b60008060008060608587031215610c2357600080fd5b8435610c2e81610ad6565b9350610c3c60208601610b4d565b9250604085013567ffffffffffffffff811115610c5857600080fd5b610c6487828801610b6e565b95989497509550505050565b600060208284031215610c8257600080fd5b81518015158114610acf57600080fd5b80516020808301519190811015610cb3576000198160200360031b1b821691505b50919050565b600060208284031215610ccb57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203610d3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220ce29e94f1de4b8adba6df4a95038b14d7251b6345927a6b0c8a5a4adc37c911664736f6c634300080f0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1151 CODESIZE SUB DUP1 PUSH3 0x1151 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x330 JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x208 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE SWAP1 SUB PUSH3 0xAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420746F6B656E20616464726573730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH3 0x107 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C6964207374616B696E672061646472657373000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x15F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E697469616C206F776E65720000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA2 JUMP JUMPDEST PUSH3 0x16A DUP2 PUSH3 0x208 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 NOT PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0x1BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x1E1 SWAP2 SWAP1 PUSH3 0x37A JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x80 MSTORE DUP3 AND PUSH1 0xA0 MSTORE PUSH3 0x1FF PUSH3 0x258 JUMP JUMPDEST POP POP POP PUSH3 0x3A5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH3 0x262 PUSH3 0x2BB JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH3 0x29E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH3 0x2CF PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH3 0x311 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA2 JUMP JUMPDEST JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x32B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x351 DUP5 PUSH3 0x313 JUMP JUMPDEST SWAP3 POP PUSH3 0x361 PUSH1 0x20 DUP6 ADD PUSH3 0x313 JUMP JUMPDEST SWAP2 POP PUSH3 0x371 PUSH1 0x40 DUP6 ADD PUSH3 0x313 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH3 0x39E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0xD78 PUSH3 0x3D9 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x110 ADD MSTORE DUP2 DUP2 PUSH2 0x60C ADD MSTORE PUSH2 0x6C1 ADD MSTORE PUSH1 0x0 PUSH2 0x21B ADD MSTORE PUSH2 0xD78 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 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7CB64759 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x91A862FA GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x91A862FA EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x9BAB65B8 EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xD8EF8AD4 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7CB64759 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5705AE43 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x5705AE43 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x71417B32 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x33C88FF6 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x132 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x263 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x152 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x3B6 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x40B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x132 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0xBBA JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH2 0x132 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x42C JUMP JUMPDEST PUSH2 0x152 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0xB17 JUMP JUMPDEST PUSH2 0x76E JUMP JUMPDEST PUSH2 0x26B PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SUB PUSH2 0x2C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D65726B6C6520726F6F74206E6F742073657400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CA PUSH2 0x858 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2D4 PUSH2 0x8C8 JUMP JUMPDEST PUSH2 0x2DC PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x342 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x366 SWAP2 SWAP1 PUSH2 0xC70 JUMP JUMPDEST PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3BE PUSH2 0x7FE JUMP JUMPDEST PUSH2 0x2CA PUSH1 0x0 PUSH2 0x921 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0x8C8 JUMP JUMPDEST PUSH2 0x3D8 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x42CBC405E4DBF1B691E85B9A34B08ECFCF7A9AD9078BF4D645CCFA1FAC11C10B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x413 PUSH2 0x7FE JUMP JUMPDEST PUSH2 0x2CA PUSH2 0x989 JUMP JUMPDEST PUSH2 0x427 CALLER DUP5 DUP5 DUP5 PUSH2 0x42C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x434 PUSH2 0x9E7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP5 AND DUP2 LT PUSH2 0x4A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7468696E6720746F20636C61696D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 PUSH1 0xA0 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x509 SWAP1 PUSH2 0xC92 JUMP JUMPDEST SWAP1 POP PUSH2 0x54C DUP5 DUP5 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x2 SLOAD SWAP2 POP DUP5 SWAP1 POP PUSH2 0xA41 JUMP JUMPDEST PUSH2 0x598 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070726F6F6600000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH32 0xA0712D6800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP7 DUP5 SWAP1 SUB SWAP1 DUP2 AND PUSH1 0x4 DUP9 ADD MSTORE SWAP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA0712D68 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x679 SWAP2 SWAP1 PUSH2 0xCB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42842E0E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x707 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x71B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND SWAP2 POP CALLER SWAP1 PUSH32 0xF9DDF109EB32AE61850B998BB6A5BFBCB1B0D513AB98D1F98D5FF43D977B9AB7 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x776 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x7FB DUP2 PUSH2 0x921 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x860 PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x991 PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x8AB CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA4E DUP6 DUP5 PUSH2 0xA57 JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xA9C JUMPI PUSH2 0xA88 DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xA7B JUMPI PUSH2 0xA7B PUSH2 0xCD2 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xAA4 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0xA94 DUP2 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA5C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0xAC0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xACF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xB09 DUP2 PUSH2 0xAD6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xACF DUP2 PUSH2 0xAD6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xBB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xBCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBD8 DUP5 PUSH2 0xB4D JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC00 DUP7 DUP3 DUP8 ADD PUSH2 0xB6E JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0xC2E DUP2 PUSH2 0xAD6 JUMP JUMPDEST SWAP4 POP PUSH2 0xC3C PUSH1 0x20 DUP7 ADD PUSH2 0xB4D JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC64 DUP8 DUP3 DUP9 ADD PUSH2 0xB6E JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0xCB3 JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xD3B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0x29 0xE9 0x4F SAR 0xE4 0xB8 0xAD 0xBA PUSH14 0xF4A95038B14D7251B6345927A6B0 0xC8 0xA5 LOG4 0xAD 0xC3 PUSH29 0x911664736F6C634300080F003300000000000000000000000000000000 ","sourceMap":"490:2325:41:-:0;;;867:550;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:24;936:18:4;:32::i;:::-;1006:5:6;996:15;;-1:-1:-1;;;;996:15:6;;;-1:-1:-1;;;;;968:24:41;;;:29;;960:63;;;;-1:-1:-1;;;960:63:41;;781:2:60;960:63:41;;;763:21:60;820:2;800:18;;;793:30;859:23;839:18;;;832:51;900:18;;960:63:41;;;;;;;;;1042:16;-1:-1:-1;;;;;1042:28:41;;1074:1;1042:33;1034:69;;;;-1:-1:-1;;;1034:69:41;;1131:2:60;1034:69:41;;;1113:21:60;1170:2;1150:18;;;1143:30;1209:25;1189:18;;;1182:53;1252:18;;1034:69:41;929:347:60;1034:69:41;-1:-1:-1;;;;;1122:26:41;;1114:60;;;;-1:-1:-1;;;1114:60:41;;1483:2:60;1114:60:41;;;1465:21:60;1522:2;1502:18;;;1495:30;1561:23;1541:18;;;1534:51;1602:18;;1114:60:41;1281:345:60;1114:60:41;1185:32;1204:12;1185:18;:32::i;:::-;1228:65;;-1:-1:-1;;;1228:65:41;;-1:-1:-1;;;;;1823:32:60;;;1228:65:41;;;1805:51:60;-1:-1:-1;;1872:18:60;;;1865:34;1228:28:41;;;;;1778:18:60;;1228:65:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1304:26:41;;;;;1341:49;;;;1401:8;:6;:8::i;:::-;867:550;;;490:2325;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:6:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;;;2245:14:6::1;-1:-1:-1::0;;;2245:14:6::1;::::0;;2274:20:::1;2281:12;719:10:24::0;;640:96;2281:12:6::1;2274:20;::::0;-1:-1:-1;;;;;2356:32:60;;;2338:51;;2326:2;2311:18;2274:20:6::1;;;;;;;2186:115::o:0;1767:106::-;1837:8;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;;1615:84;1837:8;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:6;;2602:2:60;1828:38:6;;;2584:21:60;2641:2;2621:18;;;2614:30;-1:-1:-1;;;2660:18:60;;;2653:46;2716:18;;1828:38:6;2400:340:60;1828:38:6;1767:106::o;14:177:60:-;93:13;;-1:-1:-1;;;;;135:31:60;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;1910:277::-;1977:6;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2078:9;2072:16;2131:5;2124:13;2117:21;2110:5;2107:32;2097:60;;2153:1;2150;2143:12;2097:60;2176:5;1910:277;-1:-1:-1;;;1910:277:60:o;2400:340::-;490:2325:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@PNG_10965":{"entryPoint":null,"id":10965,"parameterSlots":0,"returnSlots":0},"@SAR_10968":{"entryPoint":null,"id":10968,"parameterSlots":0,"returnSlots":0},"@_checkOwner_593":{"entryPoint":2046,"id":593,"parameterSlots":0,"returnSlots":0},"@_efficientHash_5951":{"entryPoint":null,"id":5951,"parameterSlots":2,"returnSlots":1},"@_hashPair_5940":{"entryPoint":2724,"id":5940,"parameterSlots":2,"returnSlots":1},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_pause_820":{"entryPoint":2441,"id":820,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_793":{"entryPoint":2535,"id":793,"parameterSlots":0,"returnSlots":0},"@_requirePaused_804":{"entryPoint":2248,"id":804,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_650":{"entryPoint":2337,"id":650,"parameterSlots":1,"returnSlots":0},"@_unpause_836":{"entryPoint":2136,"id":836,"parameterSlots":0,"returnSlots":0},"@claimTo_11153":{"entryPoint":1068,"id":11153,"parameterSlots":4,"returnSlots":0},"@claim_11067":{"entryPoint":1051,"id":11067,"parameterSlots":3,"returnSlots":0},"@claimedAmounts_10962":{"entryPoint":null,"id":10962,"parameterSlots":0,"returnSlots":0},"@merkleRoot_10970":{"entryPoint":null,"id":10970,"parameterSlots":0,"returnSlots":0},"@owner_579":{"entryPoint":null,"id":579,"parameterSlots":0,"returnSlots":1},"@pause_11203":{"entryPoint":1035,"id":11203,"parameterSlots":0,"returnSlots":0},"@paused_781":{"entryPoint":null,"id":781,"parameterSlots":0,"returnSlots":1},"@processProof_5535":{"entryPoint":2647,"id":5535,"parameterSlots":2,"returnSlots":1},"@recover_11194":{"entryPoint":716,"id":11194,"parameterSlots":2,"returnSlots":0},"@renounceOwnership_607":{"entryPoint":950,"id":607,"parameterSlots":0,"returnSlots":0},"@setMerkleRoot_11171":{"entryPoint":968,"id":11171,"parameterSlots":1,"returnSlots":0},"@transferOwnership_630":{"entryPoint":1902,"id":630,"parameterSlots":1,"returnSlots":0},"@unpause_11219":{"entryPoint":611,"id":11219,"parameterSlots":0,"returnSlots":0},"@verify_5474":{"entryPoint":2625,"id":5474,"parameterSlots":3,"returnSlots":1},"abi_decode_array_bytes32_dyn_calldata":{"entryPoint":2926,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":2839,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint96t_array$_t_bytes32_$dyn_calldata_ptr":{"entryPoint":3085,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":3184,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":2868,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20_$1502t_uint256":{"entryPoint":2795,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3257,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptr":{"entryPoint":3002,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_uint96":{"entryPoint":2893,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPangolinStakingPositions_$10954__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":3218,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":3329,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":3282,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IERC20":{"entryPoint":2774,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:9574:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:60","statements":[{"nodeType":"YulAssignment","src":"125:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:60"},"nodeType":"YulFunctionCall","src":"133:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:60"},"nodeType":"YulFunctionCall","src":"160:25:60"},"nodeType":"YulExpressionStatement","src":"160:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"332:125:60","statements":[{"nodeType":"YulAssignment","src":"342:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"354:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"365:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:60"},"nodeType":"YulFunctionCall","src":"350:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"342:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"384:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"399:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"407:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"395:3:60"},"nodeType":"YulFunctionCall","src":"395:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"377:6:60"},"nodeType":"YulFunctionCall","src":"377:74:60"},"nodeType":"YulExpressionStatement","src":"377:74:60"}]},"name":"abi_encode_tuple_t_contract$_IPangolinStakingPositions_$10954__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"301:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"312:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"323:4:60","type":""}],"src":"196:261:60"},{"body":{"nodeType":"YulBlock","src":"515:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"602:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"611:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"614:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"604:6:60"},"nodeType":"YulFunctionCall","src":"604:12:60"},"nodeType":"YulExpressionStatement","src":"604:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"538:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"549:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"556:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"545:3:60"},"nodeType":"YulFunctionCall","src":"545:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"535:2:60"},"nodeType":"YulFunctionCall","src":"535:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"528:6:60"},"nodeType":"YulFunctionCall","src":"528:73:60"},"nodeType":"YulIf","src":"525:93:60"}]},"name":"validator_revert_contract_IERC20","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"504:5:60","type":""}],"src":"462:162:60"},{"body":{"nodeType":"YulBlock","src":"731:236:60","statements":[{"body":{"nodeType":"YulBlock","src":"777:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"786:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"789:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"779:6:60"},"nodeType":"YulFunctionCall","src":"779:12:60"},"nodeType":"YulExpressionStatement","src":"779:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"752:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"761:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"748:3:60"},"nodeType":"YulFunctionCall","src":"748:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"773:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"744:3:60"},"nodeType":"YulFunctionCall","src":"744:32:60"},"nodeType":"YulIf","src":"741:52:60"},{"nodeType":"YulVariableDeclaration","src":"802:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"828:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"815:12:60"},"nodeType":"YulFunctionCall","src":"815:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"806:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"880:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"847:32:60"},"nodeType":"YulFunctionCall","src":"847:39:60"},"nodeType":"YulExpressionStatement","src":"847:39:60"},{"nodeType":"YulAssignment","src":"895:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"905:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"895:6:60"}]},{"nodeType":"YulAssignment","src":"919:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"957:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"942:3:60"},"nodeType":"YulFunctionCall","src":"942:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"929:12:60"},"nodeType":"YulFunctionCall","src":"929:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"919:6:60"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$1502t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"689:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"700:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"712:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"720:6:60","type":""}],"src":"629:338:60"},{"body":{"nodeType":"YulBlock","src":"1067:92:60","statements":[{"nodeType":"YulAssignment","src":"1077:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:60"},"nodeType":"YulFunctionCall","src":"1085:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1077:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1119:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1144:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1137:6:60"},"nodeType":"YulFunctionCall","src":"1137:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1130:6:60"},"nodeType":"YulFunctionCall","src":"1130:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1112:6:60"},"nodeType":"YulFunctionCall","src":"1112:41:60"},"nodeType":"YulExpressionStatement","src":"1112:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1036:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1047:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1058:4:60","type":""}],"src":"972:187:60"},{"body":{"nodeType":"YulBlock","src":"1234:185:60","statements":[{"body":{"nodeType":"YulBlock","src":"1280:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1289:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1292:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1282:6:60"},"nodeType":"YulFunctionCall","src":"1282:12:60"},"nodeType":"YulExpressionStatement","src":"1282:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1255:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1264:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1251:3:60"},"nodeType":"YulFunctionCall","src":"1251:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1276:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1247:3:60"},"nodeType":"YulFunctionCall","src":"1247:32:60"},"nodeType":"YulIf","src":"1244:52:60"},{"nodeType":"YulVariableDeclaration","src":"1305:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1331:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1318:12:60"},"nodeType":"YulFunctionCall","src":"1318:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1309:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1383:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"1350:32:60"},"nodeType":"YulFunctionCall","src":"1350:39:60"},"nodeType":"YulExpressionStatement","src":"1350:39:60"},{"nodeType":"YulAssignment","src":"1398:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1408:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1398:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1200:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1211:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1223:6:60","type":""}],"src":"1164:255:60"},{"body":{"nodeType":"YulBlock","src":"1523:109:60","statements":[{"nodeType":"YulAssignment","src":"1533:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1545:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1556:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1541:3:60"},"nodeType":"YulFunctionCall","src":"1541:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1533:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1575:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1590:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1598:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1586:3:60"},"nodeType":"YulFunctionCall","src":"1586:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1568:6:60"},"nodeType":"YulFunctionCall","src":"1568:58:60"},"nodeType":"YulExpressionStatement","src":"1568:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1492:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1503:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1514:4:60","type":""}],"src":"1424:208:60"},{"body":{"nodeType":"YulBlock","src":"1707:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"1753:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1762:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1765:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1755:6:60"},"nodeType":"YulFunctionCall","src":"1755:12:60"},"nodeType":"YulExpressionStatement","src":"1755:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1728:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1737:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1724:3:60"},"nodeType":"YulFunctionCall","src":"1724:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1749:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1720:3:60"},"nodeType":"YulFunctionCall","src":"1720:32:60"},"nodeType":"YulIf","src":"1717:52:60"},{"nodeType":"YulAssignment","src":"1778:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1801:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1788:12:60"},"nodeType":"YulFunctionCall","src":"1788:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1778:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1673:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1684:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1696:6:60","type":""}],"src":"1637:180:60"},{"body":{"nodeType":"YulBlock","src":"1923:125:60","statements":[{"nodeType":"YulAssignment","src":"1933:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1945:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1956:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1941:3:60"},"nodeType":"YulFunctionCall","src":"1941:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1933:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1975:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1990:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1998:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1986:3:60"},"nodeType":"YulFunctionCall","src":"1986:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1968:6:60"},"nodeType":"YulFunctionCall","src":"1968:74:60"},"nodeType":"YulExpressionStatement","src":"1968:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1892:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1903:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1914:4:60","type":""}],"src":"1822:226:60"},{"body":{"nodeType":"YulBlock","src":"2101:131:60","statements":[{"nodeType":"YulAssignment","src":"2111:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2133:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2120:12:60"},"nodeType":"YulFunctionCall","src":"2120:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2111:5:60"}]},{"body":{"nodeType":"YulBlock","src":"2210:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2219:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2222:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2212:6:60"},"nodeType":"YulFunctionCall","src":"2212:12:60"},"nodeType":"YulExpressionStatement","src":"2212:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2162:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2173:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"2180:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2169:3:60"},"nodeType":"YulFunctionCall","src":"2169:38:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2159:2:60"},"nodeType":"YulFunctionCall","src":"2159:49:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2152:6:60"},"nodeType":"YulFunctionCall","src":"2152:57:60"},"nodeType":"YulIf","src":"2149:77:60"}]},"name":"abi_decode_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2080:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2091:5:60","type":""}],"src":"2053:179:60"},{"body":{"nodeType":"YulBlock","src":"2321:283:60","statements":[{"body":{"nodeType":"YulBlock","src":"2370:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2379:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2382:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2372:6:60"},"nodeType":"YulFunctionCall","src":"2372:12:60"},"nodeType":"YulExpressionStatement","src":"2372:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2349:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2357:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2345:3:60"},"nodeType":"YulFunctionCall","src":"2345:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"2364:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2341:3:60"},"nodeType":"YulFunctionCall","src":"2341:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2334:6:60"},"nodeType":"YulFunctionCall","src":"2334:35:60"},"nodeType":"YulIf","src":"2331:55:60"},{"nodeType":"YulAssignment","src":"2395:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2418:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2405:12:60"},"nodeType":"YulFunctionCall","src":"2405:20:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2395:6:60"}]},{"body":{"nodeType":"YulBlock","src":"2468:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2477:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2480:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2470:6:60"},"nodeType":"YulFunctionCall","src":"2470:12:60"},"nodeType":"YulExpressionStatement","src":"2470:12:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2440:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2448:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2437:2:60"},"nodeType":"YulFunctionCall","src":"2437:30:60"},"nodeType":"YulIf","src":"2434:50:60"},{"nodeType":"YulAssignment","src":"2493:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2509:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2517:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2505:3:60"},"nodeType":"YulFunctionCall","src":"2505:17:60"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"2493:8:60"}]},{"body":{"nodeType":"YulBlock","src":"2582:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2591:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2594:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2584:6:60"},"nodeType":"YulFunctionCall","src":"2584:12:60"},"nodeType":"YulExpressionStatement","src":"2584:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2545:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2557:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"2560:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2553:3:60"},"nodeType":"YulFunctionCall","src":"2553:14:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2541:3:60"},"nodeType":"YulFunctionCall","src":"2541:27:60"},{"kind":"number","nodeType":"YulLiteral","src":"2570:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2537:3:60"},"nodeType":"YulFunctionCall","src":"2537:38:60"},{"name":"end","nodeType":"YulIdentifier","src":"2577:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2534:2:60"},"nodeType":"YulFunctionCall","src":"2534:47:60"},"nodeType":"YulIf","src":"2531:67:60"}]},"name":"abi_decode_array_bytes32_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2284:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"2292:3:60","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"2300:8:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"2310:6:60","type":""}],"src":"2237:367:60"},{"body":{"nodeType":"YulBlock","src":"2730:388:60","statements":[{"body":{"nodeType":"YulBlock","src":"2776:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2785:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2788:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2778:6:60"},"nodeType":"YulFunctionCall","src":"2778:12:60"},"nodeType":"YulExpressionStatement","src":"2778:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2751:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2760:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2747:3:60"},"nodeType":"YulFunctionCall","src":"2747:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2772:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2743:3:60"},"nodeType":"YulFunctionCall","src":"2743:32:60"},"nodeType":"YulIf","src":"2740:52:60"},{"nodeType":"YulAssignment","src":"2801:38:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2829:9:60"}],"functionName":{"name":"abi_decode_uint96","nodeType":"YulIdentifier","src":"2811:17:60"},"nodeType":"YulFunctionCall","src":"2811:28:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2801:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"2848:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2879:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2890:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2875:3:60"},"nodeType":"YulFunctionCall","src":"2875:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2862:12:60"},"nodeType":"YulFunctionCall","src":"2862:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2852:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2937:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2946:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2949:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2939:6:60"},"nodeType":"YulFunctionCall","src":"2939:12:60"},"nodeType":"YulExpressionStatement","src":"2939:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2909:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2917:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2906:2:60"},"nodeType":"YulFunctionCall","src":"2906:30:60"},"nodeType":"YulIf","src":"2903:50:60"},{"nodeType":"YulVariableDeclaration","src":"2962:96:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3030:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"3041:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3026:3:60"},"nodeType":"YulFunctionCall","src":"3026:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3050:7:60"}],"functionName":{"name":"abi_decode_array_bytes32_dyn_calldata","nodeType":"YulIdentifier","src":"2988:37:60"},"nodeType":"YulFunctionCall","src":"2988:70:60"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"2966:8:60","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"2976:8:60","type":""}]},{"nodeType":"YulAssignment","src":"3067:18:60","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3077:8:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3067:6:60"}]},{"nodeType":"YulAssignment","src":"3094:18:60","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3104:8:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3094:6:60"}]}]},"name":"abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2680:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2691:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2703:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2711:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2719:6:60","type":""}],"src":"2609:509:60"},{"body":{"nodeType":"YulBlock","src":"3239:125:60","statements":[{"nodeType":"YulAssignment","src":"3249:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3261:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3272:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3257:3:60"},"nodeType":"YulFunctionCall","src":"3257:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3249:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3291:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3306:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3314:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3302:3:60"},"nodeType":"YulFunctionCall","src":"3302:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3284:6:60"},"nodeType":"YulFunctionCall","src":"3284:74:60"},"nodeType":"YulExpressionStatement","src":"3284:74:60"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3208:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3219:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3230:4:60","type":""}],"src":"3123:241:60"},{"body":{"nodeType":"YulBlock","src":"3507:514:60","statements":[{"body":{"nodeType":"YulBlock","src":"3553:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3562:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3565:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3555:6:60"},"nodeType":"YulFunctionCall","src":"3555:12:60"},"nodeType":"YulExpressionStatement","src":"3555:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3528:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3537:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3524:3:60"},"nodeType":"YulFunctionCall","src":"3524:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3549:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3520:3:60"},"nodeType":"YulFunctionCall","src":"3520:32:60"},"nodeType":"YulIf","src":"3517:52:60"},{"nodeType":"YulVariableDeclaration","src":"3578:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3604:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3591:12:60"},"nodeType":"YulFunctionCall","src":"3591:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3582:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3656:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"3623:32:60"},"nodeType":"YulFunctionCall","src":"3623:39:60"},"nodeType":"YulExpressionStatement","src":"3623:39:60"},{"nodeType":"YulAssignment","src":"3671:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"3681:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3671:6:60"}]},{"nodeType":"YulAssignment","src":"3695:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3727:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3738:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3723:3:60"},"nodeType":"YulFunctionCall","src":"3723:18:60"}],"functionName":{"name":"abi_decode_uint96","nodeType":"YulIdentifier","src":"3705:17:60"},"nodeType":"YulFunctionCall","src":"3705:37:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3695:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"3751:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3782:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3793:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3778:3:60"},"nodeType":"YulFunctionCall","src":"3778:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3765:12:60"},"nodeType":"YulFunctionCall","src":"3765:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3755:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3840:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3849:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3852:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3842:6:60"},"nodeType":"YulFunctionCall","src":"3842:12:60"},"nodeType":"YulExpressionStatement","src":"3842:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3812:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3820:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3809:2:60"},"nodeType":"YulFunctionCall","src":"3809:30:60"},"nodeType":"YulIf","src":"3806:50:60"},{"nodeType":"YulVariableDeclaration","src":"3865:96:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3933:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"3944:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3929:3:60"},"nodeType":"YulFunctionCall","src":"3929:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3953:7:60"}],"functionName":{"name":"abi_decode_array_bytes32_dyn_calldata","nodeType":"YulIdentifier","src":"3891:37:60"},"nodeType":"YulFunctionCall","src":"3891:70:60"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"3869:8:60","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"3879:8:60","type":""}]},{"nodeType":"YulAssignment","src":"3970:18:60","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"3980:8:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3970:6:60"}]},{"nodeType":"YulAssignment","src":"3997:18:60","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"4007:8:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3997:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint96t_array$_t_bytes32_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3449:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3460:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3472:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3480:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3488:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3496:6:60","type":""}],"src":"3369:652:60"},{"body":{"nodeType":"YulBlock","src":"4200:169:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4217:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4228:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4210:6:60"},"nodeType":"YulFunctionCall","src":"4210:21:60"},"nodeType":"YulExpressionStatement","src":"4210:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4251:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4262:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4247:3:60"},"nodeType":"YulFunctionCall","src":"4247:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4267:2:60","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4240:6:60"},"nodeType":"YulFunctionCall","src":"4240:30:60"},"nodeType":"YulExpressionStatement","src":"4240:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4290:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4301:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4286:3:60"},"nodeType":"YulFunctionCall","src":"4286:18:60"},{"hexValue":"6d65726b6c6520726f6f74206e6f7420736574","kind":"string","nodeType":"YulLiteral","src":"4306:21:60","type":"","value":"merkle root not set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4279:6:60"},"nodeType":"YulFunctionCall","src":"4279:49:60"},"nodeType":"YulExpressionStatement","src":"4279:49:60"},{"nodeType":"YulAssignment","src":"4337:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:60"},"nodeType":"YulFunctionCall","src":"4345:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4337:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4177:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4191:4:60","type":""}],"src":"4026:343:60"},{"body":{"nodeType":"YulBlock","src":"4503:168:60","statements":[{"nodeType":"YulAssignment","src":"4513:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4525:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4536:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4521:3:60"},"nodeType":"YulFunctionCall","src":"4521:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4513:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4555:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4570:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4578:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4566:3:60"},"nodeType":"YulFunctionCall","src":"4566:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4548:6:60"},"nodeType":"YulFunctionCall","src":"4548:74:60"},"nodeType":"YulExpressionStatement","src":"4548:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4642:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4653:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4638:3:60"},"nodeType":"YulFunctionCall","src":"4638:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"4658:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4631:6:60"},"nodeType":"YulFunctionCall","src":"4631:34:60"},"nodeType":"YulExpressionStatement","src":"4631:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4464:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4475:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4483:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4494:4:60","type":""}],"src":"4374:297:60"},{"body":{"nodeType":"YulBlock","src":"4754:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"4800:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4809:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4812:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4802:6:60"},"nodeType":"YulFunctionCall","src":"4802:12:60"},"nodeType":"YulExpressionStatement","src":"4802:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4775:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4784:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4771:3:60"},"nodeType":"YulFunctionCall","src":"4771:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4796:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4767:3:60"},"nodeType":"YulFunctionCall","src":"4767:32:60"},"nodeType":"YulIf","src":"4764:52:60"},{"nodeType":"YulVariableDeclaration","src":"4825:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4844:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4838:5:60"},"nodeType":"YulFunctionCall","src":"4838:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4829:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4907:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4916:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4919:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4909:6:60"},"nodeType":"YulFunctionCall","src":"4909:12:60"},"nodeType":"YulExpressionStatement","src":"4909:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4876:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4897:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4890:6:60"},"nodeType":"YulFunctionCall","src":"4890:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4883:6:60"},"nodeType":"YulFunctionCall","src":"4883:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4873:2:60"},"nodeType":"YulFunctionCall","src":"4873:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4866:6:60"},"nodeType":"YulFunctionCall","src":"4866:40:60"},"nodeType":"YulIf","src":"4863:60:60"},{"nodeType":"YulAssignment","src":"4932:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"4942:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4932:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4720:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4731:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4743:6:60","type":""}],"src":"4676:277:60"},{"body":{"nodeType":"YulBlock","src":"5132:165:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5149:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5160:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5142:6:60"},"nodeType":"YulFunctionCall","src":"5142:21:60"},"nodeType":"YulExpressionStatement","src":"5142:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5183:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5194:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5179:3:60"},"nodeType":"YulFunctionCall","src":"5179:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5199:2:60","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5172:6:60"},"nodeType":"YulFunctionCall","src":"5172:30:60"},"nodeType":"YulExpressionStatement","src":"5172:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5222:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5233:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5218:3:60"},"nodeType":"YulFunctionCall","src":"5218:18:60"},{"hexValue":"7472616e73666572206661696c6564","kind":"string","nodeType":"YulLiteral","src":"5238:17:60","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5211:6:60"},"nodeType":"YulFunctionCall","src":"5211:45:60"},"nodeType":"YulExpressionStatement","src":"5211:45:60"},{"nodeType":"YulAssignment","src":"5265:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5277:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5288:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5273:3:60"},"nodeType":"YulFunctionCall","src":"5273:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5265:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5109:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5123:4:60","type":""}],"src":"4958:339:60"},{"body":{"nodeType":"YulBlock","src":"5476:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5493:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5504:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5486:6:60"},"nodeType":"YulFunctionCall","src":"5486:21:60"},"nodeType":"YulExpressionStatement","src":"5486:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5527:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5538:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5523:3:60"},"nodeType":"YulFunctionCall","src":"5523:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5543:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5516:6:60"},"nodeType":"YulFunctionCall","src":"5516:30:60"},"nodeType":"YulExpressionStatement","src":"5516:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5566:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5577:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5562:3:60"},"nodeType":"YulFunctionCall","src":"5562:18:60"},{"hexValue":"6e6f7468696e6720746f20636c61696d","kind":"string","nodeType":"YulLiteral","src":"5582:18:60","type":"","value":"nothing to claim"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5555:6:60"},"nodeType":"YulFunctionCall","src":"5555:46:60"},"nodeType":"YulExpressionStatement","src":"5555:46:60"},{"nodeType":"YulAssignment","src":"5610:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5622:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5633:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5618:3:60"},"nodeType":"YulFunctionCall","src":"5618:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5610:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5453:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5467:4:60","type":""}],"src":"5302:340:60"},{"body":{"nodeType":"YulBlock","src":"5792:265:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5809:3:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5822:2:60","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"5826:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5818:3:60"},"nodeType":"YulFunctionCall","src":"5818:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"5835:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5814:3:60"},"nodeType":"YulFunctionCall","src":"5814:88:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5802:6:60"},"nodeType":"YulFunctionCall","src":"5802:101:60"},"nodeType":"YulExpressionStatement","src":"5802:101:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5923:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"5928:2:60","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5919:3:60"},"nodeType":"YulFunctionCall","src":"5919:12:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5941:3:60","type":"","value":"160"},{"name":"value1","nodeType":"YulIdentifier","src":"5946:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5937:3:60"},"nodeType":"YulFunctionCall","src":"5937:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"5955:66:60","type":"","value":"0xffffffffffffffffffffffff0000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5933:3:60"},"nodeType":"YulFunctionCall","src":"5933:89:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5912:6:60"},"nodeType":"YulFunctionCall","src":"5912:111:60"},"nodeType":"YulExpressionStatement","src":"5912:111:60"},{"nodeType":"YulAssignment","src":"6032:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6043:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"6048:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6039:3:60"},"nodeType":"YulFunctionCall","src":"6039:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6032:3:60"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5760:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5765:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5773:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5784:3:60","type":""}],"src":"5647:410:60"},{"body":{"nodeType":"YulBlock","src":"6156:263:60","statements":[{"nodeType":"YulVariableDeclaration","src":"6166:26:60","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6186:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6180:5:60"},"nodeType":"YulFunctionCall","src":"6180:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6170:6:60","type":""}]},{"nodeType":"YulAssignment","src":"6201:32:60","value":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6220:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"6227:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6216:3:60"},"nodeType":"YulFunctionCall","src":"6216:16:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6210:5:60"},"nodeType":"YulFunctionCall","src":"6210:23:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6201:5:60"}]},{"body":{"nodeType":"YulBlock","src":"6270:143:60","statements":[{"nodeType":"YulAssignment","src":"6284:119:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6297:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6312:1:60","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6319:4:60","type":"","value":"0x20"},{"name":"length","nodeType":"YulIdentifier","src":"6325:6:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6315:3:60"},"nodeType":"YulFunctionCall","src":"6315:17:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6308:3:60"},"nodeType":"YulFunctionCall","src":"6308:25:60"},{"kind":"number","nodeType":"YulLiteral","src":"6335:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6304:3:60"},"nodeType":"YulFunctionCall","src":"6304:98:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6293:3:60"},"nodeType":"YulFunctionCall","src":"6293:110:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6284:5:60"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6248:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6256:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6245:2:60"},"nodeType":"YulFunctionCall","src":"6245:16:60"},"nodeType":"YulIf","src":"6242:171:60"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"6136:5:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6146:5:60","type":""}],"src":"6062:357:60"},{"body":{"nodeType":"YulBlock","src":"6598:163:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6615:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6626:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6608:6:60"},"nodeType":"YulFunctionCall","src":"6608:21:60"},"nodeType":"YulExpressionStatement","src":"6608:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6649:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6660:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6645:3:60"},"nodeType":"YulFunctionCall","src":"6645:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6665:2:60","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6638:6:60"},"nodeType":"YulFunctionCall","src":"6638:30:60"},"nodeType":"YulExpressionStatement","src":"6638:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6688:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6699:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6684:3:60"},"nodeType":"YulFunctionCall","src":"6684:18:60"},{"hexValue":"696e76616c69642070726f6f66","kind":"string","nodeType":"YulLiteral","src":"6704:15:60","type":"","value":"invalid proof"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6677:6:60"},"nodeType":"YulFunctionCall","src":"6677:43:60"},"nodeType":"YulExpressionStatement","src":"6677:43:60"},{"nodeType":"YulAssignment","src":"6729:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6741:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6752:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6737:3:60"},"nodeType":"YulFunctionCall","src":"6737:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6729:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6575:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6589:4:60","type":""}],"src":"6424:337:60"},{"body":{"nodeType":"YulBlock","src":"6866:109:60","statements":[{"nodeType":"YulAssignment","src":"6876:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6888:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6899:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6884:3:60"},"nodeType":"YulFunctionCall","src":"6884:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6876:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6918:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6933:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6941:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6929:3:60"},"nodeType":"YulFunctionCall","src":"6929:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6911:6:60"},"nodeType":"YulFunctionCall","src":"6911:58:60"},"nodeType":"YulExpressionStatement","src":"6911:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6835:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6846:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6857:4:60","type":""}],"src":"6766:209:60"},{"body":{"nodeType":"YulBlock","src":"7061:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"7107:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7116:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7119:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7109:6:60"},"nodeType":"YulFunctionCall","src":"7109:12:60"},"nodeType":"YulExpressionStatement","src":"7109:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7082:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"7091:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7078:3:60"},"nodeType":"YulFunctionCall","src":"7078:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"7103:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7074:3:60"},"nodeType":"YulFunctionCall","src":"7074:32:60"},"nodeType":"YulIf","src":"7071:52:60"},{"nodeType":"YulAssignment","src":"7132:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7148:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7142:5:60"},"nodeType":"YulFunctionCall","src":"7142:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7132:6:60"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7027:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7038:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7050:6:60","type":""}],"src":"6980:184:60"},{"body":{"nodeType":"YulBlock","src":"7326:241:60","statements":[{"nodeType":"YulAssignment","src":"7336:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7348:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7359:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7344:3:60"},"nodeType":"YulFunctionCall","src":"7344:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7336:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"7371:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"7381:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7375:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7439:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7454:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"7462:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7450:3:60"},"nodeType":"YulFunctionCall","src":"7450:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7432:6:60"},"nodeType":"YulFunctionCall","src":"7432:34:60"},"nodeType":"YulExpressionStatement","src":"7432:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7486:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7497:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7482:3:60"},"nodeType":"YulFunctionCall","src":"7482:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7506:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"7514:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7502:3:60"},"nodeType":"YulFunctionCall","src":"7502:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7475:6:60"},"nodeType":"YulFunctionCall","src":"7475:43:60"},"nodeType":"YulExpressionStatement","src":"7475:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7538:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7549:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7534:3:60"},"nodeType":"YulFunctionCall","src":"7534:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"7554:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7527:6:60"},"nodeType":"YulFunctionCall","src":"7527:34:60"},"nodeType":"YulExpressionStatement","src":"7527:34:60"}]},"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":"7279:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7290:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7298:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7306:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7317:4:60","type":""}],"src":"7169:398:60"},{"body":{"nodeType":"YulBlock","src":"7746:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7763:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7774:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7756:6:60"},"nodeType":"YulFunctionCall","src":"7756:21:60"},"nodeType":"YulExpressionStatement","src":"7756:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7797:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7808:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7793:3:60"},"nodeType":"YulFunctionCall","src":"7793:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7813:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7786:6:60"},"nodeType":"YulFunctionCall","src":"7786:30:60"},"nodeType":"YulExpressionStatement","src":"7786:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7836:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7847:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7832:3:60"},"nodeType":"YulFunctionCall","src":"7832:18:60"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"7852:34:60","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7825:6:60"},"nodeType":"YulFunctionCall","src":"7825:62:60"},"nodeType":"YulExpressionStatement","src":"7825:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7907:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7918:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7903:3:60"},"nodeType":"YulFunctionCall","src":"7903:18:60"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"7923:8:60","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7896:6:60"},"nodeType":"YulFunctionCall","src":"7896:36:60"},"nodeType":"YulExpressionStatement","src":"7896:36:60"},{"nodeType":"YulAssignment","src":"7941:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7953:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7964:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7949:3:60"},"nodeType":"YulFunctionCall","src":"7949:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7941:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7723:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7737:4:60","type":""}],"src":"7572:402:60"},{"body":{"nodeType":"YulBlock","src":"8153:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8170:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8181:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8163:6:60"},"nodeType":"YulFunctionCall","src":"8163:21:60"},"nodeType":"YulExpressionStatement","src":"8163:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8204:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8215:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8200:3:60"},"nodeType":"YulFunctionCall","src":"8200:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8220:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8193:6:60"},"nodeType":"YulFunctionCall","src":"8193:30:60"},"nodeType":"YulExpressionStatement","src":"8193:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8243:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8254:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8239:3:60"},"nodeType":"YulFunctionCall","src":"8239:18:60"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"8259:34:60","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8232:6:60"},"nodeType":"YulFunctionCall","src":"8232:62:60"},"nodeType":"YulExpressionStatement","src":"8232:62:60"},{"nodeType":"YulAssignment","src":"8303:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8315:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8326:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8311:3:60"},"nodeType":"YulFunctionCall","src":"8311:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8303:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8130:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8144:4:60","type":""}],"src":"7979:356:60"},{"body":{"nodeType":"YulBlock","src":"8514:170:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8531:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8542:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8524:6:60"},"nodeType":"YulFunctionCall","src":"8524:21:60"},"nodeType":"YulExpressionStatement","src":"8524:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8565:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8576:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8561:3:60"},"nodeType":"YulFunctionCall","src":"8561:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8581:2:60","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8554:6:60"},"nodeType":"YulFunctionCall","src":"8554:30:60"},"nodeType":"YulExpressionStatement","src":"8554:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8604:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8615:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8600:3:60"},"nodeType":"YulFunctionCall","src":"8600:18:60"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"8620:22:60","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8593:6:60"},"nodeType":"YulFunctionCall","src":"8593:50:60"},"nodeType":"YulExpressionStatement","src":"8593:50:60"},{"nodeType":"YulAssignment","src":"8652:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8664:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8675:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8660:3:60"},"nodeType":"YulFunctionCall","src":"8660:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8652:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8491:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8505:4:60","type":""}],"src":"8340:344:60"},{"body":{"nodeType":"YulBlock","src":"8863:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8880:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8891:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8873:6:60"},"nodeType":"YulFunctionCall","src":"8873:21:60"},"nodeType":"YulExpressionStatement","src":"8873:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8914:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8925:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8910:3:60"},"nodeType":"YulFunctionCall","src":"8910:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8930:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8903:6:60"},"nodeType":"YulFunctionCall","src":"8903:30:60"},"nodeType":"YulExpressionStatement","src":"8903:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8953:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8964:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8949:3:60"},"nodeType":"YulFunctionCall","src":"8949:18:60"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"8969:18:60","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8942:6:60"},"nodeType":"YulFunctionCall","src":"8942:46:60"},"nodeType":"YulExpressionStatement","src":"8942:46:60"},{"nodeType":"YulAssignment","src":"8997:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9009:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9020:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9005:3:60"},"nodeType":"YulFunctionCall","src":"9005:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8997:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8840:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8854:4:60","type":""}],"src":"8689:340:60"},{"body":{"nodeType":"YulBlock","src":"9066:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9083:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9086:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9076:6:60"},"nodeType":"YulFunctionCall","src":"9076:88:60"},"nodeType":"YulExpressionStatement","src":"9076:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9180:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9183:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9173:6:60"},"nodeType":"YulFunctionCall","src":"9173:15:60"},"nodeType":"YulExpressionStatement","src":"9173:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9204:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9207:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9197:6:60"},"nodeType":"YulFunctionCall","src":"9197:15:60"},"nodeType":"YulExpressionStatement","src":"9197:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"9034:184:60"},{"body":{"nodeType":"YulBlock","src":"9270:302:60","statements":[{"body":{"nodeType":"YulBlock","src":"9369:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9390:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9393:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9383:6:60"},"nodeType":"YulFunctionCall","src":"9383:88:60"},"nodeType":"YulExpressionStatement","src":"9383:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9491:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9494:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9484:6:60"},"nodeType":"YulFunctionCall","src":"9484:15:60"},"nodeType":"YulExpressionStatement","src":"9484:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9519:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9522:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9512:6:60"},"nodeType":"YulFunctionCall","src":"9512:15:60"},"nodeType":"YulExpressionStatement","src":"9512:15:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9286:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"9293:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9283:2:60"},"nodeType":"YulFunctionCall","src":"9283:77:60"},"nodeType":"YulIf","src":"9280:257:60"},{"nodeType":"YulAssignment","src":"9546:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9557:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"9564:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9553:3:60"},"nodeType":"YulFunctionCall","src":"9553:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9546:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9252:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9262:3:60","type":""}],"src":"9223:349:60"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IPangolinStakingPositions_$10954__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function validator_revert_contract_IERC20(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$1502t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_array_bytes32_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_uint96(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_addresst_uint96t_array$_t_bytes32_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n        value1 := abi_decode_uint96(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"merkle root not set\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"transfer failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"nothing to claim\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        mstore(add(pos, 20), and(shl(160, value1), 0xffffffffffffffffffffffff0000000000000000000000000000000000000000))\n        end := add(pos, 32)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"invalid proof\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := add(value, 1)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"10965":[{"length":32,"start":539}],"10968":[{"length":32,"start":272},{"length":32,"start":1548},{"length":32,"start":1729}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80637cb647591161008c57806391a862fa1161006657806391a862fa146102035780639bab65b814610216578063d8ef8ad41461023d578063f2fde38b1461025057600080fd5b80637cb64759146101d75780638456cb59146101ea5780638da5cb5b146101f257600080fd5b80635705ae43116100c85780635705ae43146101545780635c975abb1461016757806371417b3214610184578063715018a6146101cf57600080fd5b80632eb4a7ab146100ef57806333c88ff61461010b5780633f4ba83a1461014a575b600080fd5b6100f860025481565b6040519081526020015b60405180910390f35b6101327f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610102565b610152610263565b005b610152610162366004610aeb565b6102cc565b600054600160a01b900460ff166040519015158152602001610102565b6101b2610192366004610b17565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610102565b6101526103b6565b6101526101e5366004610b34565b6103c8565b61015261040b565b6000546001600160a01b0316610132565b610152610211366004610bba565b61041b565b6101327f000000000000000000000000000000000000000000000000000000000000000081565b61015261024b366004610c0d565b61042c565b61015261025e366004610b17565b61076e565b61026b6107fe565b6002546000036102c25760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6102ca610858565b565b6102d46108c8565b6102dc6107fe565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103669190610c70565b6103b25760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c6564000000000000000000000000000000000060448201526064016102b9565b5050565b6103be6107fe565b6102ca6000610921565b6103d06108c8565b6103d86107fe565b600281905560405181907f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b90600090a250565b6104136107fe565b6102ca610989565b6104273384848461042c565b505050565b6104346109e7565b336000908152600160205260409020546bffffffffffffffffffffffff90811690841681106104a55760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d0000000000000000000000000000000060448201526064016102b9565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a087901b1660348201526000910160405160208183030381529060405261050990610c92565b905061054c848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610a41565b6105985760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f660000000000000000000000000000000000000060448201526064016102b9565b3360009081526001602052604080822080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8981169190911790915590517fa0712d68000000000000000000000000000000000000000000000000000000008152968490039081166004880152956001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a0712d68906024016020604051808303816000875af1158015610655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190610cb9565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038981166024830152604482018390529192507f0000000000000000000000000000000000000000000000000000000000000000909116906342842e0e90606401600060405180830381600087803b15801561070757600080fd5b505af115801561071b573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff891692506001600160a01b038a16915033907ff9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab790600090a450505050505050565b6107766107fe565b6001600160a01b0381166107f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102b9565b6107fb81610921565b50565b6000546001600160a01b031633146102ca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b6108606108c8565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054600160a01b900460ff166102ca5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016102b9565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109916109e7565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108ab3390565b600054600160a01b900460ff16156102ca5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016102b9565b600082610a4e8584610a57565b14949350505050565b600081815b8451811015610a9c57610a8882868381518110610a7b57610a7b610cd2565b6020026020010151610aa4565b915080610a9481610d01565b915050610a5c565b509392505050565b6000818310610ac0576000828152602084905260409020610acf565b60008381526020839052604090205b9392505050565b6001600160a01b03811681146107fb57600080fd5b60008060408385031215610afe57600080fd5b8235610b0981610ad6565b946020939093013593505050565b600060208284031215610b2957600080fd5b8135610acf81610ad6565b600060208284031215610b4657600080fd5b5035919050565b80356bffffffffffffffffffffffff81168114610b6957600080fd5b919050565b60008083601f840112610b8057600080fd5b50813567ffffffffffffffff811115610b9857600080fd5b6020830191508360208260051b8501011115610bb357600080fd5b9250929050565b600080600060408486031215610bcf57600080fd5b610bd884610b4d565b9250602084013567ffffffffffffffff811115610bf457600080fd5b610c0086828701610b6e565b9497909650939450505050565b60008060008060608587031215610c2357600080fd5b8435610c2e81610ad6565b9350610c3c60208601610b4d565b9250604085013567ffffffffffffffff811115610c5857600080fd5b610c6487828801610b6e565b95989497509550505050565b600060208284031215610c8257600080fd5b81518015158114610acf57600080fd5b80516020808301519190811015610cb3576000198160200360031b1b821691505b50919050565b600060208284031215610ccb57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203610d3b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220ce29e94f1de4b8adba6df4a95038b14d7251b6345927a6b0c8a5a4adc37c911664736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7CB64759 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x91A862FA GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x91A862FA EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x9BAB65B8 EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0xD8EF8AD4 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x250 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7CB64759 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5705AE43 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x5705AE43 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x71417B32 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x33C88FF6 EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x14A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF8 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x132 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x263 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x152 PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0xB17 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x102 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x3B6 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x40B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x132 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0xBBA JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH2 0x132 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0xC0D JUMP JUMPDEST PUSH2 0x42C JUMP JUMPDEST PUSH2 0x152 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0xB17 JUMP JUMPDEST PUSH2 0x76E JUMP JUMPDEST PUSH2 0x26B PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SUB PUSH2 0x2C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D65726B6C6520726F6F74206E6F742073657400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2CA PUSH2 0x858 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2D4 PUSH2 0x8C8 JUMP JUMPDEST PUSH2 0x2DC PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x342 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x366 SWAP2 SWAP1 PUSH2 0xC70 JUMP JUMPDEST PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x3BE PUSH2 0x7FE JUMP JUMPDEST PUSH2 0x2CA PUSH1 0x0 PUSH2 0x921 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0x8C8 JUMP JUMPDEST PUSH2 0x3D8 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x42CBC405E4DBF1B691E85B9A34B08ECFCF7A9AD9078BF4D645CCFA1FAC11C10B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x413 PUSH2 0x7FE JUMP JUMPDEST PUSH2 0x2CA PUSH2 0x989 JUMP JUMPDEST PUSH2 0x427 CALLER DUP5 DUP5 DUP5 PUSH2 0x42C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x434 PUSH2 0x9E7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP5 AND DUP2 LT PUSH2 0x4A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7468696E6720746F20636C61696D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 PUSH1 0xA0 DUP8 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x509 SWAP1 PUSH2 0xC92 JUMP JUMPDEST SWAP1 POP PUSH2 0x54C DUP5 DUP5 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x2 SLOAD SWAP2 POP DUP5 SWAP1 POP PUSH2 0xA41 JUMP JUMPDEST PUSH2 0x598 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070726F6F6600000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH32 0xA0712D6800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP7 DUP5 SWAP1 SUB SWAP1 DUP2 AND PUSH1 0x4 DUP9 ADD MSTORE SWAP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA0712D68 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x679 SWAP2 SWAP1 PUSH2 0xCB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42842E0E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x707 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x71B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND SWAP2 POP CALLER SWAP1 PUSH32 0xF9DDF109EB32AE61850B998BB6A5BFBCB1B0D513AB98D1F98D5FF43D977B9AB7 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x776 PUSH2 0x7FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x7FB DUP2 PUSH2 0x921 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH2 0x860 PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x991 PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x8AB CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA4E DUP6 DUP5 PUSH2 0xA57 JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xA9C JUMPI PUSH2 0xA88 DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xA7B JUMPI PUSH2 0xA7B PUSH2 0xCD2 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xAA4 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0xA94 DUP2 PUSH2 0xD01 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA5C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0xAC0 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xACF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xAFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0xB09 DUP2 PUSH2 0xAD6 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xACF DUP2 PUSH2 0xAD6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xBB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xBCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBD8 DUP5 PUSH2 0xB4D JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC00 DUP7 DUP3 DUP8 ADD PUSH2 0xB6E JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xC23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0xC2E DUP2 PUSH2 0xAD6 JUMP JUMPDEST SWAP4 POP PUSH2 0xC3C PUSH1 0x20 DUP7 ADD PUSH2 0xB4D JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC64 DUP8 DUP3 DUP9 ADD PUSH2 0xB6E JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0xCB3 JUMPI PUSH1 0x0 NOT DUP2 PUSH1 0x20 SUB PUSH1 0x3 SHL SHL DUP3 AND SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xD3B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0x29 0xE9 0x4F SAR 0xE4 0xB8 0xAD 0xBA PUSH14 0xF4A95038B14D7251B6345927A6B0 0xC8 0xA5 LOG4 0xAD 0xC3 PUSH29 0x911664736F6C634300080F003300000000000000000000000000000000 ","sourceMap":"490:2325:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:25;;;;;;;;;160::60;;;148:2;133:18;689:25:41;;;;;;;;636:46;;;;;;;;-1:-1:-1;;;;;395:55:60;;;377:74;;365:2;350:18;636:46:41;196:261:60;2684:128:41;;;:::i;:::-;;2447:158;;;;;;:::i;:::-;;:::i;1615:84:6:-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1615:84;;1137:14:60;;1130:22;1112:41;;1100:2;1085:18;1615:84:6;972:187:60;547:48:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1598:26:60;1586:39;;;1568:58;;1556:2;1541:18;547:48:41;1424:208:60;1831:101:4;;;:::i;2274:165:41:-;;;;;;:::i;:::-;;:::i;2613:63::-;;;:::i;1201:85:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;1425:130:41;;;;;;:::i;:::-;;:::i;602:27::-;;;;;1563:703;;;;;;:::i;:::-;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;2684:128:41:-;1094:13:4;:11;:13::i;:::-;2741:10:41::1;::::0;2755:4:::1;2741:18:::0;2733:50:::1;;;::::0;-1:-1:-1;;;2733:50:41;;4228:2:60;2733:50:41::1;::::0;::::1;4210:21:60::0;4267:2;4247:18;;;4240:30;4306:21;4286:18;;;4279:49;4345:18;;2733:50:41::1;;;;;;;;;2794:10;:8;:10::i;:::-;2684:128::o:0;2447:158::-;1486:16:6;:14;:16::i;:::-;1094:13:4::1;:11;:13::i;:::-;2543:34:41::2;::::0;;;;2558:10:::2;2543:34;::::0;::::2;4548:74:60::0;4638:18;;;4631:34;;;-1:-1:-1;;;;;2543:14:41;::::2;::::0;::::2;::::0;4521:18:60;;2543:34:41::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2535:62;;;::::0;-1:-1:-1;;;2535:62:41;;5160:2:60;2535:62:41::2;::::0;::::2;5142:21:60::0;5199:2;5179:18;;;5172:30;5238:17;5218:18;;;5211:45;5273:18;;2535:62:41::2;4958:339:60::0;2535:62:41::2;2447:158:::0;;:::o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;2274:165:41:-:0;1486:16:6;:14;:16::i;:::-;1094:13:4::1;:11;:13::i;:::-;2361:10:41::2;:26:::0;;;2403:28:::2;::::0;2374:13;;2403:28:::2;::::0;;;::::2;2274:165:::0;:::o;2613:63::-;1094:13:4;:11;:13::i;:::-;2660:8:41::1;:6;:8::i;1425:130::-:0;1507:40;1515:10;1527:6;1535:11;;1507:7;:40::i;:::-;1425:130;;;:::o;1563:703::-;1239:19:6;:17;:19::i;:::-;1747:10:41::1;1705:24;1732:26:::0;;;:14:::1;:26;::::0;;;;;::::1;::::0;;::::1;::::0;1777;::::1;::::0;::::1;1769:55;;;::::0;-1:-1:-1;;;1769:55:41;;5504:2:60;1769:55:41::1;::::0;::::1;5486:21:60::0;5543:2;5523:18;;;5516:30;5582:18;5562;;;5555:46;5618:18;;1769:55:41::1;5302:340:60::0;1769:55:41::1;1858:36;::::0;;-1:-1:-1;;1875:10:41::1;5822:2:60::0;5818:15;5814:88;1858:36:41::1;::::0;::::1;5802:101:60::0;5955:66;5941:3;5937:16;;;5933:89;5919:12;;;5912:111;1835:12:41::1;::::0;6039::60;1858:36:41::1;;;;;;;;;;;;1850:45;;;:::i;:::-;1835:60;;1914:49;1933:11;;1914:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;1946:10:41::1;::::0;;-1:-1:-1;1958:4:41;;-1:-1:-1;1914:18:41::1;:49::i;:::-;1906:75;;;::::0;-1:-1:-1;;;1906:75:41;;6626:2:60;1906:75:41::1;::::0;::::1;6608:21:60::0;6665:2;6645:18;;;6638:30;6704:15;6684:18;;;6677:43;6737:18;;1906:75:41::1;6424:337:60::0;1906:75:41::1;2007:10;1992:26;::::0;;;:14:::1;:26;::::0;;;;;:35;;-1:-1:-1;;1992:35:41::1;;::::0;;::::1;::::0;;;::::1;::::0;;;2133:16;;;;;2063:27;;;::::1;1586:39:60::0;;;2133:16:41::1;::::0;::::1;1568:58:60::0;2063:27:41;-1:-1:-1;;;;;2133:3:41::1;:8;::::0;::::1;::::0;1541:18:60;;2133:16:41::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2160:51;::::0;;;;2189:4:::1;2160:51;::::0;::::1;7432:34:60::0;-1:-1:-1;;;;;7502:15:60;;;7482:18;;;7475:43;7534:18;;;7527:34;;;2112:37:41;;-1:-1:-1;2160:3:41::1;:20:::0;;::::1;::::0;::::1;::::0;7344:18:60;;2160:51:41::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2227:31:41::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;;2227:31:41;::::1;::::0;-1:-1:-1;2235:10:41::1;::::0;2227:31:::1;::::0;;;::::1;1694:572;;;1563:703:::0;;;;:::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;7774:2:60;2161:73:4::1;::::0;::::1;7756:21:60::0;7813:2;7793:18;;;7786:30;7852:34;7832:18;;;7825:62;7923:8;7903:18;;;7896:36;7949:19;;2161:73:4::1;7572:402:60::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:24;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;8181:2:60;1414:68:4;;;8163:21:60;;;8200:18;;;8193:30;8259:34;8239:18;;;8232:62;8311:18;;1414:68:4;7979:356:60;2433:117:6;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;;::::1;::::0;;2521:22:::1;719:10:24::0;2530:12:6::1;2521:22;::::0;-1:-1:-1;;;;;395:55:60;;;377:74;;365:2;350:18;2521:22:6::1;;;;;;;2433:117::o:0;1945:106::-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;2003:41;;;;-1:-1:-1;;;2003:41:6;;8542:2:60;2003:41:6;;;8524:21:60;8581:2;8561:18;;;8554:30;8620:22;8600:18;;;8593:50;8660:18;;2003:41:6;8340:344:60;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:6:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;;::::1;-1:-1:-1::0;;;2245:14:6::1;::::0;;2274:20:::1;2281:12;719:10:24::0;;640:96;1767:106:6;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:6;;8891:2:60;1828:38:6;;;8873:21:60;8930:2;8910:18;;;8903:30;8969:18;8949;;;8942:46;9005:18;;1828:38:6;8689:340:60;1156:184:29;1277:4;1329;1300:25;1313:5;1320:4;1300:12;:25::i;:::-;:33;;1156:184;-1:-1:-1;;;;1156:184:29:o;1994:290::-;2077:7;2119:4;2077:7;2133:116;2157:5;:12;2153:1;:16;2133:116;;;2205:33;2215:12;2229:5;2235:1;2229:8;;;;;;;;:::i;:::-;;;;;;;2205:9;:33::i;:::-;2190:48;-1:-1:-1;2171:3:29;;;;:::i;:::-;;;;2133:116;;;-1:-1:-1;2265:12:29;1994:290;-1:-1:-1;;;1994:290:29:o;8879:147::-;8942:7;8972:1;8968;:5;:51;;9100:13;9191:15;;;9226:4;9219:15;;;9272:4;9256:21;;8968:51;;;9100:13;9191:15;;;9226:4;9219:15;;;9272:4;9256:21;;8976:20;8961:58;8879:147;-1:-1:-1;;;8879:147:29:o;462:162:60:-;-1:-1:-1;;;;;549:5:60;545:54;538:5;535:65;525:93;;614:1;611;604:12;629:338;712:6;720;773:2;761:9;752:7;748:23;744:32;741:52;;;789:1;786;779:12;741:52;828:9;815:23;847:39;880:5;847:39;:::i;:::-;905:5;957:2;942:18;;;;929:32;;-1:-1:-1;;;629:338:60:o;1164:255::-;1223:6;1276:2;1264:9;1255:7;1251:23;1247:32;1244:52;;;1292:1;1289;1282:12;1244:52;1331:9;1318:23;1350:39;1383:5;1350:39;:::i;1637:180::-;1696:6;1749:2;1737:9;1728:7;1724:23;1720:32;1717:52;;;1765:1;1762;1755:12;1717:52;-1:-1:-1;1788:23:60;;1637:180;-1:-1:-1;1637:180:60:o;2053:179::-;2120:20;;2180:26;2169:38;;2159:49;;2149:77;;2222:1;2219;2212:12;2149:77;2053:179;;;:::o;2237:367::-;2300:8;2310:6;2364:3;2357:4;2349:6;2345:17;2341:27;2331:55;;2382:1;2379;2372:12;2331:55;-1:-1:-1;2405:20:60;;2448:18;2437:30;;2434:50;;;2480:1;2477;2470:12;2434:50;2517:4;2509:6;2505:17;2493:29;;2577:3;2570:4;2560:6;2557:1;2553:14;2545:6;2541:27;2537:38;2534:47;2531:67;;;2594:1;2591;2584:12;2531:67;2237:367;;;;;:::o;2609:509::-;2703:6;2711;2719;2772:2;2760:9;2751:7;2747:23;2743:32;2740:52;;;2788:1;2785;2778:12;2740:52;2811:28;2829:9;2811:28;:::i;:::-;2801:38;;2890:2;2879:9;2875:18;2862:32;2917:18;2909:6;2906:30;2903:50;;;2949:1;2946;2939:12;2903:50;2988:70;3050:7;3041:6;3030:9;3026:22;2988:70;:::i;:::-;2609:509;;3077:8;;-1:-1:-1;2962:96:60;;-1:-1:-1;;;;2609:509:60:o;3369:652::-;3472:6;3480;3488;3496;3549:2;3537:9;3528:7;3524:23;3520:32;3517:52;;;3565:1;3562;3555:12;3517:52;3604:9;3591:23;3623:39;3656:5;3623:39;:::i;:::-;3681:5;-1:-1:-1;3705:37:60;3738:2;3723:18;;3705:37;:::i;:::-;3695:47;;3793:2;3782:9;3778:18;3765:32;3820:18;3812:6;3809:30;3806:50;;;3852:1;3849;3842:12;3806:50;3891:70;3953:7;3944:6;3933:9;3929:22;3891:70;:::i;:::-;3369:652;;;;-1:-1:-1;3980:8:60;-1:-1:-1;;;;3369:652:60:o;4676:277::-;4743:6;4796:2;4784:9;4775:7;4771:23;4767:32;4764:52;;;4812:1;4809;4802:12;4764:52;4844:9;4838:16;4897:5;4890:13;4883:21;4876:5;4873:32;4863:60;;4919:1;4916;4909:12;6062:357;6180:12;;6227:4;6216:16;;;6210:23;;6180:12;6245:16;;6242:171;;;-1:-1:-1;;6325:6:60;6319:4;6315:17;6312:1;6308:25;6304:98;6297:5;6293:110;6284:119;;6242:171;;6062:357;;;:::o;6980:184::-;7050:6;7103:2;7091:9;7082:7;7078:23;7074:32;7071:52;;;7119:1;7116;7109:12;7071:52;-1:-1:-1;7142:16:60;;6980:184;-1:-1:-1;6980:184:60:o;9034:::-;9086:77;9083:1;9076:88;9183:4;9180:1;9173:15;9207:4;9204:1;9197:15;9223:349;9262:3;-1:-1:-1;;9286:5:60;9283:77;9280:257;;9393:77;9390:1;9383:88;9494:4;9491:1;9484:15;9522:4;9519:1;9512:15;9280:257;-1:-1:-1;9564:1:60;9553:13;;9223:349::o"},"methodIdentifiers":{"PNG()":"9bab65b8","SAR()":"33c88ff6","claim(uint96,bytes32[])":"91a862fa","claimTo(address,uint96,bytes32[])":"d8ef8ad4","claimedAmounts(address)":"71417b32","merkleRoot()":"2eb4a7ab","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","recover(address,uint256)":"5705ae43","renounceOwnership()":"715018a6","setMerkleRoot(bytes32)":"7cb64759","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"airdropToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakingPositions\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"MerkleRootSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PNG\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SAR\",\"outputs\":[{\"internalType\":\"contract IPangolinStakingPositions\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"claimTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimedAmounts\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"recover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"setMerkleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-token/MerkledropToStaking.sol\":\"MerkledropToStaking\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xd466e8b07f4c6220eac16da5127f3ff142e65f0c15c03c7d38f257b02c8585e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6b3cab69f655e40117bbdd8e68d7423f26d1b24248fb189c295f08de8940616\",\"dweb:/ipfs/QmWoyRthsBDMa7gJpH5UCjpa8uNUQfyaGbSgY3uvhBH9F3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/pangolin-token/MerkledropToStaking.sol\":{\"keccak256\":\"0xb2393e8e3b883b2f83a525ca38560d028c519af89d452acc87daa953924d4c15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e47bb2abed489ee73a929123dbc32aec1bc4ffb83160f56492089ec2559781d\",\"dweb:/ipfs/QmZkfwXofF8pgVg6Lb1ciQwPcyh1kAzaE1ic5ASLHGCMGh\"]}},\"version\":1}"}},"contracts/pangolin-token/MerkledropToStakingCompliant.sol":{"IPangolinStakingPositions":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(uint256)":"a0712d68","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-token/MerkledropToStakingCompliant.sol\":\"IPangolinStakingPositions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xd466e8b07f4c6220eac16da5127f3ff142e65f0c15c03c7d38f257b02c8585e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6b3cab69f655e40117bbdd8e68d7423f26d1b24248fb189c295f08de8940616\",\"dweb:/ipfs/QmWoyRthsBDMa7gJpH5UCjpa8uNUQfyaGbSgY3uvhBH9F3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/pangolin-token/MerkledropToStakingCompliant.sol\":{\"keccak256\":\"0x2e8083d37c2548ef39848dafc7f42e74eb9289264f2b38b8518e7cd159802742\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41c64dba9204b59064b6dd8b0f53347f0304f2cfea5587c9b1ac0a3e48b87e46\",\"dweb:/ipfs/QmZwkLDp7F6q2zaCLiHrSfCxK74LZMt87SmxyqerhVdKa4\"]}},\"version\":1}"},"MerkledropToStakingCompliant":{"abi":[{"inputs":[{"internalType":"address","name":"airdropToken","type":"address"},{"internalType":"address","name":"stakingPositions","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint96","name":"amount","type":"uint96"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"}],"name":"MerkleRootSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"newComplianceHash","type":"bytes32"},{"indexed":false,"internalType":"string","name":"newComplianceMessage","type":"string"}],"name":"NewComplianceMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"PNG","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SAR","outputs":[{"internalType":"contract IPangolinStakingPositions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint96","name":"amount","type":"uint96"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint96","name":"amount","type":"uint96"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"claimTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimedAmounts","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"complianceHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"complianceMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newComplianceMessage","type":"string"}],"name":"setComplianceMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11358":{"entryPoint":null,"id":11358,"parameterSlots":3,"returnSlots":0},"@_562":{"entryPoint":null,"id":562,"parameterSlots":0,"returnSlots":0},"@_756":{"entryPoint":null,"id":756,"parameterSlots":0,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_pause_820":{"entryPoint":877,"id":820,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_793":{"entryPoint":1140,"id":793,"parameterSlots":0,"returnSlots":0},"@_transferOwnership_650":{"entryPoint":797,"id":650,"parameterSlots":1,"returnSlots":0},"@log10_6690":{"entryPoint":1228,"id":6690,"parameterSlots":1,"returnSlots":1},"@paused_781":{"entryPoint":null,"id":781,"parameterSlots":0,"returnSlots":1},"@toEthSignedMessageHash_5275":{"entryPoint":723,"id":5275,"parameterSlots":1,"returnSlots":1},"@toString_4818":{"entryPoint":976,"id":4818,"parameterSlots":1,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":1831,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_address_fromMemory":{"entryPoint":1860,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":1934,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2028,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":1544,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1627,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":1977,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1484,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1462,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6538:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:60"},"nodeType":"YulFunctionCall","src":"66:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:60"},"nodeType":"YulFunctionCall","src":"56:31:60"},"nodeType":"YulExpressionStatement","src":"56:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:60"},"nodeType":"YulFunctionCall","src":"96:15:60"},"nodeType":"YulExpressionStatement","src":"96:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:60"},"nodeType":"YulFunctionCall","src":"120:15:60"},"nodeType":"YulExpressionStatement","src":"120:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:60"},{"body":{"nodeType":"YulBlock","src":"201:325:60","statements":[{"nodeType":"YulAssignment","src":"211:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:60"},"nodeType":"YulFunctionCall","src":"221:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:60"},"nodeType":"YulFunctionCall","src":"268:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:60","statements":[{"nodeType":"YulAssignment","src":"321:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:60"},"nodeType":"YulFunctionCall","src":"331:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:60"},"nodeType":"YulFunctionCall","src":"292:26:60"},"nodeType":"YulIf","src":"289:61:60"},{"body":{"nodeType":"YulBlock","src":"409:111:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:60"},"nodeType":"YulFunctionCall","src":"433:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:60"},"nodeType":"YulFunctionCall","src":"423:31:60"},"nodeType":"YulExpressionStatement","src":"423:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:60"},"nodeType":"YulFunctionCall","src":"467:15:60"},"nodeType":"YulExpressionStatement","src":"467:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:60"},"nodeType":"YulFunctionCall","src":"495:15:60"},"nodeType":"YulExpressionStatement","src":"495:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:60"},"nodeType":"YulFunctionCall","src":"385:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:60"},"nodeType":"YulFunctionCall","src":"362:38:60"},"nodeType":"YulIf","src":"359:161:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:60","type":""}],"src":"146:380:60"},{"body":{"nodeType":"YulBlock","src":"587:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:60"},"nodeType":"YulFunctionCall","src":"597:14:60"},"nodeType":"YulExpressionStatement","src":"597:14:60"},{"nodeType":"YulAssignment","src":"620:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:60"},"nodeType":"YulFunctionCall","src":"628:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:60","type":""}],"src":"531:121:60"},{"body":{"nodeType":"YulBlock","src":"738:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:60"},"nodeType":"YulFunctionCall","src":"809:17:60"},"nodeType":"YulExpressionStatement","src":"809:17:60"},{"nodeType":"YulVariableDeclaration","src":"839:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:60"},"nodeType":"YulFunctionCall","src":"851:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:60"},"nodeType":"YulFunctionCall","src":"919:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:60"},"nodeType":"YulFunctionCall","src":"912:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:60"},"nodeType":"YulFunctionCall","src":"902:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:60","statements":[{"nodeType":"YulAssignment","src":"979:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:60"},"nodeType":"YulFunctionCall","src":"956:20:60"},"nodeType":"YulIf","src":"953:47:60"},{"nodeType":"YulVariableDeclaration","src":"1013:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:60"},"nodeType":"YulFunctionCall","src":"1040:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:60"},"nodeType":"YulFunctionCall","src":"1033:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:60"},"nodeType":"YulFunctionCall","src":"1023:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:60"},"nodeType":"YulFunctionCall","src":"1167:17:60"},"nodeType":"YulExpressionStatement","src":"1167:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:60"},"nodeType":"YulFunctionCall","src":"1112:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:60","statements":[{"nodeType":"YulAssignment","src":"1128:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:60"},"nodeType":"YulFunctionCall","src":"1137:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:60","statements":[]},"src":"1104:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:60"},"nodeType":"YulFunctionCall","src":"751:11:60"},"nodeType":"YulIf","src":"748:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:60","type":""}],"src":"657:545:60"},{"body":{"nodeType":"YulBlock","src":"1292:81:60","statements":[{"nodeType":"YulAssignment","src":"1302:65:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:60"},"nodeType":"YulFunctionCall","src":"1331:11:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:60"},"nodeType":"YulFunctionCall","src":"1344:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:60"},"nodeType":"YulFunctionCall","src":"1327:24:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:60"},"nodeType":"YulFunctionCall","src":"1323:29:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:60"},"nodeType":"YulFunctionCall","src":"1313:40:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:60"},"nodeType":"YulFunctionCall","src":"1355:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:60"},"nodeType":"YulFunctionCall","src":"1310:57:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:60","type":""}],"src":"1207:166:60"},{"body":{"nodeType":"YulBlock","src":"1474:1256:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:60"},"nodeType":"YulFunctionCall","src":"1498:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:60"},"nodeType":"YulFunctionCall","src":"1553:18:60"},"nodeType":"YulExpressionStatement","src":"1553:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:60"},"nodeType":"YulFunctionCall","src":"1535:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:60"},"nodeType":"YulFunctionCall","src":"1531:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:60"},"nodeType":"YulFunctionCall","src":"1520:30:60"},"nodeType":"YulIf","src":"1517:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:60"},"nodeType":"YulFunctionCall","src":"1658:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:60"},"nodeType":"YulFunctionCall","src":"1632:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:60"},"nodeType":"YulFunctionCall","src":"1582:97:60"},"nodeType":"YulExpressionStatement","src":"1582:97:60"},{"nodeType":"YulVariableDeclaration","src":"1688:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:60","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:60"},"nodeType":"YulFunctionCall","src":"1858:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:60"},"nodeType":"YulFunctionCall","src":"1846:20:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:60"},"nodeType":"YulFunctionCall","src":"1893:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:60"},"nodeType":"YulFunctionCall","src":"2067:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:60"},"nodeType":"YulFunctionCall","src":"2061:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:60"},"nodeType":"YulFunctionCall","src":"2046:42:60"},"nodeType":"YulExpressionStatement","src":"2046:42:60"},{"nodeType":"YulAssignment","src":"2105:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:60"},"nodeType":"YulFunctionCall","src":"2115:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:60"}]},{"nodeType":"YulAssignment","src":"2146:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:60"},"nodeType":"YulFunctionCall","src":"2159:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:60"},"nodeType":"YulFunctionCall","src":"1972:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:60","statements":[{"nodeType":"YulAssignment","src":"1989:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:60"},"nodeType":"YulFunctionCall","src":"1994:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:60","statements":[]},"src":"1964:236:60"},{"body":{"nodeType":"YulBlock","src":"2248:166:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:60"},"nodeType":"YulFunctionCall","src":"2289:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:60"},"nodeType":"YulFunctionCall","src":"2283:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:60"},"nodeType":"YulFunctionCall","src":"2368:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:60"},"nodeType":"YulFunctionCall","src":"2364:24:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:60"},"nodeType":"YulFunctionCall","src":"2390:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:60"},"nodeType":"YulFunctionCall","src":"2360:37:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:60"},"nodeType":"YulFunctionCall","src":"2356:42:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:60"},"nodeType":"YulFunctionCall","src":"2341:58:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:60"},"nodeType":"YulFunctionCall","src":"2326:74:60"},"nodeType":"YulExpressionStatement","src":"2326:74:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:60"},"nodeType":"YulFunctionCall","src":"2216:19:60"},"nodeType":"YulIf","src":"2213:201:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:60"},"nodeType":"YulFunctionCall","src":"2444:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:60"},"nodeType":"YulFunctionCall","src":"2440:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:60"},"nodeType":"YulFunctionCall","src":"2427:36:60"},"nodeType":"YulExpressionStatement","src":"2427:36:60"}]},"nodeType":"YulCase","src":"1810:663:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:60","statements":[{"nodeType":"YulAssignment","src":"2571:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:60"},"nodeType":"YulFunctionCall","src":"2586:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:60"},"nodeType":"YulFunctionCall","src":"2580:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:60"},"nodeType":"YulIf","src":"2531:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:60"},"nodeType":"YulFunctionCall","src":"2646:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:60"},"nodeType":"YulFunctionCall","src":"2633:81:60"},"nodeType":"YulExpressionStatement","src":"2633:81:60"}]},"nodeType":"YulCase","src":"2482:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:60"},"nodeType":"YulFunctionCall","src":"1787:14:60"},"nodeType":"YulSwitch","src":"1780:944:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:60","type":""}],"src":"1378:1352:60"},{"body":{"nodeType":"YulBlock","src":"2795:117:60","statements":[{"nodeType":"YulAssignment","src":"2805:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2820:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2814:5:60"},"nodeType":"YulFunctionCall","src":"2814:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2805:5:60"}]},{"body":{"nodeType":"YulBlock","src":"2890:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2899:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2902:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2892:6:60"},"nodeType":"YulFunctionCall","src":"2892:12:60"},"nodeType":"YulExpressionStatement","src":"2892:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2849:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2860:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2875:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2880:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2871:3:60"},"nodeType":"YulFunctionCall","src":"2871:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"2884:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2867:3:60"},"nodeType":"YulFunctionCall","src":"2867:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2856:3:60"},"nodeType":"YulFunctionCall","src":"2856:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2846:2:60"},"nodeType":"YulFunctionCall","src":"2846:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2839:6:60"},"nodeType":"YulFunctionCall","src":"2839:50:60"},"nodeType":"YulIf","src":"2836:70:60"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2774:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2785:5:60","type":""}],"src":"2735:177:60"},{"body":{"nodeType":"YulBlock","src":"3032:263:60","statements":[{"body":{"nodeType":"YulBlock","src":"3078:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3087:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3090:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3080:6:60"},"nodeType":"YulFunctionCall","src":"3080:12:60"},"nodeType":"YulExpressionStatement","src":"3080:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3053:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3062:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3049:3:60"},"nodeType":"YulFunctionCall","src":"3049:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3074:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3045:3:60"},"nodeType":"YulFunctionCall","src":"3045:32:60"},"nodeType":"YulIf","src":"3042:52:60"},{"nodeType":"YulAssignment","src":"3103:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3143:9:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"3113:29:60"},"nodeType":"YulFunctionCall","src":"3113:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3103:6:60"}]},{"nodeType":"YulAssignment","src":"3162:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3206:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3217:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3202:3:60"},"nodeType":"YulFunctionCall","src":"3202:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"3172:29:60"},"nodeType":"YulFunctionCall","src":"3172:49:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3162:6:60"}]},{"nodeType":"YulAssignment","src":"3230:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3274:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3285:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3270:3:60"},"nodeType":"YulFunctionCall","src":"3270:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"3240:29:60"},"nodeType":"YulFunctionCall","src":"3240:49:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3230:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2982:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2993:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3005:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3013:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3021:6:60","type":""}],"src":"2917:378:60"},{"body":{"nodeType":"YulBlock","src":"3474:171:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3491:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3502:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3484:6:60"},"nodeType":"YulFunctionCall","src":"3484:21:60"},"nodeType":"YulExpressionStatement","src":"3484:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3536:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:60"},"nodeType":"YulFunctionCall","src":"3521:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3541:2:60","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3514:6:60"},"nodeType":"YulFunctionCall","src":"3514:30:60"},"nodeType":"YulExpressionStatement","src":"3514:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3564:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3575:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3560:3:60"},"nodeType":"YulFunctionCall","src":"3560:18:60"},{"hexValue":"696e76616c696420746f6b656e2061646472657373","kind":"string","nodeType":"YulLiteral","src":"3580:23:60","type":"","value":"invalid token address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3553:6:60"},"nodeType":"YulFunctionCall","src":"3553:51:60"},"nodeType":"YulExpressionStatement","src":"3553:51:60"},{"nodeType":"YulAssignment","src":"3613:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3625:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3636:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3621:3:60"},"nodeType":"YulFunctionCall","src":"3621:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3613:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3451:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3465:4:60","type":""}],"src":"3300:345:60"},{"body":{"nodeType":"YulBlock","src":"3824:173:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3841:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3852:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3834:6:60"},"nodeType":"YulFunctionCall","src":"3834:21:60"},"nodeType":"YulExpressionStatement","src":"3834:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3875:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3886:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3871:3:60"},"nodeType":"YulFunctionCall","src":"3871:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3891:2:60","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3864:6:60"},"nodeType":"YulFunctionCall","src":"3864:30:60"},"nodeType":"YulExpressionStatement","src":"3864:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3914:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3925:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3910:3:60"},"nodeType":"YulFunctionCall","src":"3910:18:60"},{"hexValue":"696e76616c6964207374616b696e672061646472657373","kind":"string","nodeType":"YulLiteral","src":"3930:25:60","type":"","value":"invalid staking address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3903:6:60"},"nodeType":"YulFunctionCall","src":"3903:53:60"},"nodeType":"YulExpressionStatement","src":"3903:53:60"},{"nodeType":"YulAssignment","src":"3965:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3977:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3988:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3973:3:60"},"nodeType":"YulFunctionCall","src":"3973:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3965:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3801:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3815:4:60","type":""}],"src":"3650:347:60"},{"body":{"nodeType":"YulBlock","src":"4176:171:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4193:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4204:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4186:6:60"},"nodeType":"YulFunctionCall","src":"4186:21:60"},"nodeType":"YulExpressionStatement","src":"4186:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4227:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4238:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4223:3:60"},"nodeType":"YulFunctionCall","src":"4223:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4243:2:60","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4216:6:60"},"nodeType":"YulFunctionCall","src":"4216:30:60"},"nodeType":"YulExpressionStatement","src":"4216:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4266:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4277:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4262:3:60"},"nodeType":"YulFunctionCall","src":"4262:18:60"},{"hexValue":"696e76616c696420696e697469616c206f776e6572","kind":"string","nodeType":"YulLiteral","src":"4282:23:60","type":"","value":"invalid initial owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4255:6:60"},"nodeType":"YulFunctionCall","src":"4255:51:60"},"nodeType":"YulExpressionStatement","src":"4255:51:60"},{"nodeType":"YulAssignment","src":"4315:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4327:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4338:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4323:3:60"},"nodeType":"YulFunctionCall","src":"4323:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4315:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4153:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4167:4:60","type":""}],"src":"4002:345:60"},{"body":{"nodeType":"YulBlock","src":"4481:145:60","statements":[{"nodeType":"YulAssignment","src":"4491:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4503:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4514:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4499:3:60"},"nodeType":"YulFunctionCall","src":"4499:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4491:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4533:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4548:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4564:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4569:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4560:3:60"},"nodeType":"YulFunctionCall","src":"4560:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"4573:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4556:3:60"},"nodeType":"YulFunctionCall","src":"4556:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4544:3:60"},"nodeType":"YulFunctionCall","src":"4544:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4526:6:60"},"nodeType":"YulFunctionCall","src":"4526:51:60"},"nodeType":"YulExpressionStatement","src":"4526:51:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4597:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4608:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4593:3:60"},"nodeType":"YulFunctionCall","src":"4593:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"4613:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4586:6:60"},"nodeType":"YulFunctionCall","src":"4586:34:60"},"nodeType":"YulExpressionStatement","src":"4586:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4442:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4453:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4461:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4472:4:60","type":""}],"src":"4352:274:60"},{"body":{"nodeType":"YulBlock","src":"4709:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"4755:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4764:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4767:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4757:6:60"},"nodeType":"YulFunctionCall","src":"4757:12:60"},"nodeType":"YulExpressionStatement","src":"4757:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4730:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4739:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4726:3:60"},"nodeType":"YulFunctionCall","src":"4726:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4751:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4722:3:60"},"nodeType":"YulFunctionCall","src":"4722:32:60"},"nodeType":"YulIf","src":"4719:52:60"},{"nodeType":"YulVariableDeclaration","src":"4780:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4799:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4793:5:60"},"nodeType":"YulFunctionCall","src":"4793:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4784:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4862:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4871:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4874:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4864:6:60"},"nodeType":"YulFunctionCall","src":"4864:12:60"},"nodeType":"YulExpressionStatement","src":"4864:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4831:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4852:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4845:6:60"},"nodeType":"YulFunctionCall","src":"4845:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4838:6:60"},"nodeType":"YulFunctionCall","src":"4838:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4828:2:60"},"nodeType":"YulFunctionCall","src":"4828:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4821:6:60"},"nodeType":"YulFunctionCall","src":"4821:40:60"},"nodeType":"YulIf","src":"4818:60:60"},{"nodeType":"YulAssignment","src":"4887:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"4897:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4887:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4675:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4686:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4698:6:60","type":""}],"src":"4631:277:60"},{"body":{"nodeType":"YulBlock","src":"4966:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4976:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4985:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4980:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5045:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5070:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"5075:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5066:3:60"},"nodeType":"YulFunctionCall","src":"5066:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5089:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"5094:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5085:3:60"},"nodeType":"YulFunctionCall","src":"5085:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5079:5:60"},"nodeType":"YulFunctionCall","src":"5079:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5059:6:60"},"nodeType":"YulFunctionCall","src":"5059:39:60"},"nodeType":"YulExpressionStatement","src":"5059:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5006:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"5009:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5003:2:60"},"nodeType":"YulFunctionCall","src":"5003:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5017:19:60","statements":[{"nodeType":"YulAssignment","src":"5019:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5028:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"5031:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5024:3:60"},"nodeType":"YulFunctionCall","src":"5024:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5019:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"4999:3:60","statements":[]},"src":"4995:113:60"},{"body":{"nodeType":"YulBlock","src":"5134:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5147:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"5152:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5143:3:60"},"nodeType":"YulFunctionCall","src":"5143:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"5161:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5136:6:60"},"nodeType":"YulFunctionCall","src":"5136:27:60"},"nodeType":"YulExpressionStatement","src":"5136:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5123:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"5126:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5120:2:60"},"nodeType":"YulFunctionCall","src":"5120:13:60"},"nodeType":"YulIf","src":"5117:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"4944:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"4949:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"4954:6:60","type":""}],"src":"4913:258:60"},{"body":{"nodeType":"YulBlock","src":"5462:389:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5479:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"5484:66:60","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5472:6:60"},"nodeType":"YulFunctionCall","src":"5472:79:60"},"nodeType":"YulExpressionStatement","src":"5472:79:60"},{"nodeType":"YulVariableDeclaration","src":"5560:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5580:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5574:5:60"},"nodeType":"YulFunctionCall","src":"5574:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5564:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5622:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5630:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5618:3:60"},"nodeType":"YulFunctionCall","src":"5618:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5641:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"5646:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5637:3:60"},"nodeType":"YulFunctionCall","src":"5637:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"5651:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5596:21:60"},"nodeType":"YulFunctionCall","src":"5596:62:60"},"nodeType":"YulExpressionStatement","src":"5596:62:60"},{"nodeType":"YulVariableDeclaration","src":"5667:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5681:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"5686:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5677:3:60"},"nodeType":"YulFunctionCall","src":"5677:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5671:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5702:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5724:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5718:5:60"},"nodeType":"YulFunctionCall","src":"5718:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"5706:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5766:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5774:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5762:3:60"},"nodeType":"YulFunctionCall","src":"5762:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5785:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"5789:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5781:3:60"},"nodeType":"YulFunctionCall","src":"5781:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"5794:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5740:21:60"},"nodeType":"YulFunctionCall","src":"5740:63:60"},"nodeType":"YulExpressionStatement","src":"5740:63:60"},{"nodeType":"YulAssignment","src":"5812:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5827:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"5831:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5823:3:60"},"nodeType":"YulFunctionCall","src":"5823:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"5842:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5819:3:60"},"nodeType":"YulFunctionCall","src":"5819:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5812:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5430:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5435:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5443:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5454:3:60","type":""}],"src":"5176:675:60"},{"body":{"nodeType":"YulBlock","src":"5957:102:60","statements":[{"nodeType":"YulAssignment","src":"5967:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5979:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5990:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5975:3:60"},"nodeType":"YulFunctionCall","src":"5975:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5967:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6009:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6024:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6045:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6036:3:60"},"nodeType":"YulFunctionCall","src":"6036:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"6049:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6032:3:60"},"nodeType":"YulFunctionCall","src":"6032:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6020:3:60"},"nodeType":"YulFunctionCall","src":"6020:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6002:6:60"},"nodeType":"YulFunctionCall","src":"6002:51:60"},"nodeType":"YulExpressionStatement","src":"6002:51:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5926:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5937:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5948:4:60","type":""}],"src":"5856:203:60"},{"body":{"nodeType":"YulBlock","src":"6096:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6113:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6120:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6125:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6116:3:60"},"nodeType":"YulFunctionCall","src":"6116:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6106:6:60"},"nodeType":"YulFunctionCall","src":"6106:31:60"},"nodeType":"YulExpressionStatement","src":"6106:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6153:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6156:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6146:6:60"},"nodeType":"YulFunctionCall","src":"6146:15:60"},"nodeType":"YulExpressionStatement","src":"6146:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6177:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6180:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6170:6:60"},"nodeType":"YulFunctionCall","src":"6170:15:60"},"nodeType":"YulExpressionStatement","src":"6170:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"6064:127:60"},{"body":{"nodeType":"YulBlock","src":"6370:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6387:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6398:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6380:6:60"},"nodeType":"YulFunctionCall","src":"6380:21:60"},"nodeType":"YulExpressionStatement","src":"6380:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6421:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6432:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6417:3:60"},"nodeType":"YulFunctionCall","src":"6417:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6437:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6410:6:60"},"nodeType":"YulFunctionCall","src":"6410:30:60"},"nodeType":"YulExpressionStatement","src":"6410:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6460:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6471:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6456:3:60"},"nodeType":"YulFunctionCall","src":"6456:18:60"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"6476:18:60","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6449:6:60"},"nodeType":"YulFunctionCall","src":"6449:46:60"},"nodeType":"YulExpressionStatement","src":"6449:46:60"},{"nodeType":"YulAssignment","src":"6504:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6516:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6527:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6512:3:60"},"nodeType":"YulFunctionCall","src":"6512:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6504:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6347:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6361:4:60","type":""}],"src":"6196:340:60"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_1a69802c8ee7e4e9b50fb79f0b1ab99d82142546eb7bdc33452477262794f488__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"invalid token address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c6982359204fcfee526ba7994ee026542b42b1435c5ccedc31e19cf119cde2ae__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"invalid staking address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0715363e9b4e87b0271085cab030550171dcc903e23a687fbd41689930a60427__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"invalid initial owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 26), length)\n        let _1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 26), length_1)\n        end := add(add(_1, length_1), 26)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101c060405260d160c08181529062001f8160e0396003906200002390826200065b565b50620000cc600380546200003790620005cc565b80601f01602080910402602001604051908101604052809291908181526020018280546200006590620005cc565b8015620000b65780601f106200008a57610100808354040283529160200191620000b6565b820191906000526020600020905b8154815290600101906020018083116200009857829003601f168201915b5050505050620002d360201b62000a381760201c565b600455348015620000dc57600080fd5b506040516200205238038062002052833981016040819052620000ff9162000744565b6200010a336200031d565b6000805460ff60a01b191681556001600160a01b0384163b9003620001765760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420746f6b656e2061646472657373000000000000000000000060448201526064015b60405180910390fd5b816001600160a01b03163b600003620001d25760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964207374616b696e67206164647265737300000000000000000060448201526064016200016d565b6001600160a01b0381166200022a5760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420696e697469616c206f776e6572000000000000000000000060448201526064016200016d565b62000235816200031d565b60405163095ea7b360e01b81526001600160a01b038381166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af115801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac91906200078e565b506001600160a01b03808416608052821660a052620002ca6200036d565b5050506200084b565b6000620002ec8251620003d060201b62000a731760201c565b8260405160200162000300929190620007ec565b604051602081830303815290604052805190602001209050919050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200037762000474565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620003b33390565b6040516001600160a01b03909116815260200160405180910390a1565b60606000620003ea83620004cc60201b62000b131760201c565b60010190506000816001600160401b038111156200040c576200040c620005b6565b6040519080825280601f01601f19166020018201604052801562000437576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846200044157509392505050565b62000488600054600160a01b900460ff1690565b15620004ca5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200016d565b565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831062000516577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831062000543576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106200056257662386f26fc10000830492506010015b6305f5e10083106200057b576305f5e100830492506008015b61271083106200059057612710830492506004015b60648310620005a3576064830492506002015b600a8310620005b0576001015b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005e157607f821691505b6020821081036200060257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200065657600081815260208120601f850160051c81016020861015620006315750805b601f850160051c820191505b8181101562000652578281556001016200063d565b5050505b505050565b81516001600160401b03811115620006775762000677620005b6565b6200068f81620006888454620005cc565b8462000608565b602080601f831160018114620006c75760008415620006ae5750858301515b600019600386901b1c1916600185901b17855562000652565b600085815260208120601f198616915b82811015620006f857888601518255948401946001909101908401620006d7565b5085821015620007175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b03811681146200073f57600080fd5b919050565b6000806000606084860312156200075a57600080fd5b620007658462000727565b9250620007756020850162000727565b9150620007856040850162000727565b90509250925092565b600060208284031215620007a157600080fd5b81518015158114620007b257600080fd5b9392505050565b60005b83811015620007d6578181015183820152602001620007bc565b83811115620007e6576000848401525b50505050565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152600083516200082681601a850160208801620007b9565b8351908301906200083f81601a840160208801620007b9565b01601a01949350505050565b60805160a0516117026200087f600039600081816101630152818161084401526108f90152600061025b01526117026000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b25780639bab65b811610081578063c13f573e11610066578063c13f573e14610290578063c1b0eb94146102a3578063f2fde38b146102b657600080fd5b80639bab65b814610256578063be8cbeed1461027d57600080fd5b8063715018a6146102225780637cb647591461022a5780638456cb591461023d5780638da5cb5b1461024557600080fd5b80633f4ba83a116100ee5780633f4ba83a1461019d5780635705ae43146101a75780635c975abb146101ba57806371417b32146101d757600080fd5b80630b22f24a146101205780632d2069ec1461013e5780632eb4a7ab1461015557806333c88ff61461015e575b600080fd5b6101286102c9565b6040516101359190611188565b60405180910390f35b61014760045481565b604051908152602001610135565b61014760025481565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610135565b6101a5610357565b005b6101a56101b53660046111d0565b6103c0565b600054600160a01b900460ff166040519015158152602001610135565b6102056101e53660046111fc565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610135565b6101a56104aa565b6101a5610238366004611219565b6104bc565b6101a56104ff565b6000546001600160a01b0316610185565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6101a561028b366004611274565b61050f565b6101a561029e36600461131c565b6105ac565b6101a56102b136600461139d565b6105c1565b6101a56102c43660046111fc565b6109a8565b600380546102d690611430565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611430565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b505050505081565b61035f610bf6565b6002546000036103b65760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6103be610c50565b565b6103c8610cc0565b6103d0610bf6565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a919061146a565b6104a65760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c6564000000000000000000000000000000000060448201526064016103ad565b5050565b6104b2610bf6565b6103be6000610d19565b6104c4610cc0565b6104cc610bf6565b600281905560405181907f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b90600090a250565b610507610bf6565b6103be610d81565b610517610bf6565b600061055883838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a3892505050565b60048190559050600361056c8385836114f1565b50807fe8d6349745d718fbb56b30e41d99dbe12fc69f0a8d7401dac98476504c027a43848460405161059f9291906115b1565b60405180910390a2505050565b6105ba3386868686866105c1565b5050505050565b6105c9610ddf565b336001600160a01b031661061683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060045492915050610e39565b6001600160a01b03161461066c5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420636f6d706c69616e6365207369676e61747572650000000060448201526064016103ad565b336000908152600160205260409020546bffffffffffffffffffffffff90811690861681106106dd5760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d0000000000000000000000000000000060448201526064016103ad565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a089901b16603482015260009101604051602081830303815290604052610741906115e0565b9050610784868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610e5d565b6107d05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f660000000000000000000000000000000000000060448201526064016103ad565b3360009081526001602052604080822080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8b81169190911790915590517fa0712d680000000000000000000000000000000000000000000000000000000081529884900390811660048a0152976001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a0712d68906024016020604051808303816000875af115801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190611604565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038b81166024830152604482018390529192507f0000000000000000000000000000000000000000000000000000000000000000909116906342842e0e90606401600060405180830381600087803b15801561093f57600080fd5b505af1158015610953573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff8b1692506001600160a01b038c16915033907ff9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab790600090a4505050505050505050565b6109b0610bf6565b6001600160a01b038116610a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ad565b610a3581610d19565b50565b6000610a448251610a73565b82604051602001610a5692919061161d565b604051602081830303815290604052805190602001209050919050565b60606000610a8083610b13565b600101905060008167ffffffffffffffff811115610aa057610aa061148c565b6040519080825280601f01601f191660200182016040528015610aca576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610ad457509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610b5c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610b88576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610ba657662386f26fc10000830492506010015b6305f5e1008310610bbe576305f5e100830492506008015b6127108310610bd257612710830492506004015b60648310610be4576064830492506002015b600a8310610bf0576001015b92915050565b6000546001600160a01b031633146103be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ad565b610c58610cc0565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054600160a01b900460ff166103be5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016103ad565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d89610ddf565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ca33390565b600054600160a01b900460ff16156103be5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016103ad565b6000806000610e488585610e73565b91509150610e5581610eb8565b509392505050565b600082610e6a858461101d565b14949350505050565b6000808251604103610ea95760208301516040840151606085015160001a610e9d87828585611062565b94509450505050610eb1565b506000905060025b9250929050565b6000816004811115610ecc57610ecc611678565b03610ed45750565b6001816004811115610ee857610ee8611678565b03610f355760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103ad565b6002816004811115610f4957610f49611678565b03610f965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103ad565b6003816004811115610faa57610faa611678565b03610a355760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103ad565b600081815b8451811015610e555761104e828683815181106110415761104161168e565b6020026020010151611126565b91508061105a816116a4565b915050611022565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611099575060009050600361111d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110ed573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111165760006001925092505061111d565b9150600090505b94509492505050565b6000818310611142576000828152602084905260409020611151565b60008381526020839052604090205b9392505050565b60005b8381101561117357818101518382015260200161115b565b83811115611182576000848401525b50505050565b60208152600082518060208401526111a7816040850160208701611158565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610a3557600080fd5b600080604083850312156111e357600080fd5b82356111ee816111bb565b946020939093013593505050565b60006020828403121561120e57600080fd5b8135611151816111bb565b60006020828403121561122b57600080fd5b5035919050565b60008083601f84011261124457600080fd5b50813567ffffffffffffffff81111561125c57600080fd5b602083019150836020828501011115610eb157600080fd5b6000806020838503121561128757600080fd5b823567ffffffffffffffff81111561129e57600080fd5b6112aa85828601611232565b90969095509350505050565b80356bffffffffffffffffffffffff811681146112d257600080fd5b919050565b60008083601f8401126112e957600080fd5b50813567ffffffffffffffff81111561130157600080fd5b6020830191508360208260051b8501011115610eb157600080fd5b60008060008060006060868803121561133457600080fd5b61133d866112b6565b9450602086013567ffffffffffffffff8082111561135a57600080fd5b61136689838a016112d7565b9096509450604088013591508082111561137f57600080fd5b5061138c88828901611232565b969995985093965092949392505050565b600080600080600080608087890312156113b657600080fd5b86356113c1816111bb565b95506113cf602088016112b6565b9450604087013567ffffffffffffffff808211156113ec57600080fd5b6113f88a838b016112d7565b9096509450606089013591508082111561141157600080fd5b5061141e89828a01611232565b979a9699509497509295939492505050565b600181811c9082168061144457607f821691505b60208210810361146457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561147c57600080fd5b8151801515811461115157600080fd5b634e487b7160e01b600052604160045260246000fd5b601f8211156114ec57600081815260208120601f850160051c810160208610156114c95750805b601f850160051c820191505b818110156114e8578281556001016114d5565b5050505b505050565b67ffffffffffffffff8311156115095761150961148c565b61151d836115178354611430565b836114a2565b6000601f84116001811461155157600085156115395750838201355b600019600387901b1c1916600186901b1783556105ba565b600083815260209020601f19861690835b828110156115825786850135825560209485019460019092019101611562565b508682101561159f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b805160208083015191908110156114645760001960209190910360031b1b16919050565b60006020828403121561161657600080fd5b5051919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161165581601a850160208801611158565b83519083019061166c81601a840160208801611158565b01601a01949350505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060001982036116c557634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f44b86a0793f70a48d7976bb8eca58cbffa6fcbd7c0ca3e15b3f709712a8a07d64736f6c634300080f00334279207369676e696e672074686973207472616e73616374696f6e2c2049206865726562792061636b6e6f776c656467652074686174204920616d206e6f742061205553207265736964656e74206f7220636974697a656e2e2028436974697a656e73206f72207265736964656e7473206f662074686520556e6974656420537461746573206f6620416d657269636120617265206e6f7420616c6c6f77656420746f207468652050534220746f6b656e2061697264726f702064756520746f206170706c696361626c65206c61772e29","opcodes":"PUSH2 0x1C0 PUSH1 0x40 MSTORE PUSH1 0xD1 PUSH1 0xC0 DUP2 DUP2 MSTORE SWAP1 PUSH3 0x1F81 PUSH1 0xE0 CODECOPY PUSH1 0x3 SWAP1 PUSH3 0x23 SWAP1 DUP3 PUSH3 0x65B JUMP JUMPDEST POP PUSH3 0xCC PUSH1 0x3 DUP1 SLOAD PUSH3 0x37 SWAP1 PUSH3 0x5CC JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH3 0x65 SWAP1 PUSH3 0x5CC JUMP JUMPDEST DUP1 ISZERO PUSH3 0xB6 JUMPI DUP1 PUSH1 0x1F LT PUSH3 0x8A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH3 0xB6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH3 0x98 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH3 0x2D3 PUSH1 0x20 SHL PUSH3 0xA38 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2052 CODESIZE SUB DUP1 PUSH3 0x2052 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0xFF SWAP2 PUSH3 0x744 JUMP JUMPDEST PUSH3 0x10A CALLER PUSH3 0x31D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE SWAP1 SUB PUSH3 0x176 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420746F6B656E20616464726573730000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH3 0x1D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C6964207374616B696E672061646472657373000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x16D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x22A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420696E697469616C206F776E65720000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x16D JUMP JUMPDEST PUSH3 0x235 DUP2 PUSH3 0x31D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 NOT PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0x286 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x2AC SWAP2 SWAP1 PUSH3 0x78E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0x80 MSTORE DUP3 AND PUSH1 0xA0 MSTORE PUSH3 0x2CA PUSH3 0x36D JUMP JUMPDEST POP POP POP PUSH3 0x84B JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2EC DUP3 MLOAD PUSH3 0x3D0 PUSH1 0x20 SHL PUSH3 0xA73 OR PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x300 SWAP3 SWAP2 SWAP1 PUSH3 0x7EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH3 0x377 PUSH3 0x474 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH3 0x3B3 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH3 0x3EA DUP4 PUSH3 0x4CC PUSH1 0x20 SHL PUSH3 0xB13 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x40C JUMPI PUSH3 0x40C PUSH3 0x5B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH3 0x437 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH3 0x441 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH3 0x488 PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH3 0x4CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x16D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH3 0x516 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH3 0x543 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH3 0x562 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH3 0x57B JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH3 0x590 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH3 0x5A3 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH3 0x5B0 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x5E1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x602 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x656 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x631 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x652 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x63D JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x677 JUMPI PUSH3 0x677 PUSH3 0x5B6 JUMP JUMPDEST PUSH3 0x68F DUP2 PUSH3 0x688 DUP5 SLOAD PUSH3 0x5CC JUMP JUMPDEST DUP5 PUSH3 0x608 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x6C7 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x6AE JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x652 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x6F8 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x6D7 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x717 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x75A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x765 DUP5 PUSH3 0x727 JUMP JUMPDEST SWAP3 POP PUSH3 0x775 PUSH1 0x20 DUP6 ADD PUSH3 0x727 JUMP JUMPDEST SWAP2 POP PUSH3 0x785 PUSH1 0x40 DUP6 ADD PUSH3 0x727 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x7A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH3 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x7D6 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x7BC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x7E6 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH3 0x826 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x7B9 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH3 0x83F DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x7B9 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1702 PUSH3 0x87F PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x163 ADD MSTORE DUP2 DUP2 PUSH2 0x844 ADD MSTORE PUSH2 0x8F9 ADD MSTORE PUSH1 0x0 PUSH2 0x25B ADD MSTORE PUSH2 0x1702 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x9BAB65B8 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xC13F573E GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xC13F573E EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xC1B0EB94 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9BAB65B8 EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xBE8CBEED EQ PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x7CB64759 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xEE JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x19D JUMPI DUP1 PUSH4 0x5705AE43 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x71417B32 EQ PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB22F24A EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x2D2069EC EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x33C88FF6 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x128 PUSH2 0x2C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x1188 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x147 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x357 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A5 PUSH2 0x1B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x11D0 JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x1219 JUMP JUMPDEST PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x185 JUMP JUMPDEST PUSH2 0x185 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1274 JUMP JUMPDEST PUSH2 0x50F JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x131C JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x139D JUMP JUMPDEST PUSH2 0x5C1 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x11FC JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x2D6 SWAP1 PUSH2 0x1430 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x302 SWAP1 PUSH2 0x1430 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x34F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x324 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x332 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x35F PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SUB PUSH2 0x3B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D65726B6C6520726F6F74206E6F742073657400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3BE PUSH2 0xC50 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3C8 PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x436 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x45A SWAP2 SWAP1 PUSH2 0x146A JUMP JUMPDEST PUSH2 0x4A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x4B2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x3BE PUSH1 0x0 PUSH2 0xD19 JUMP JUMPDEST PUSH2 0x4C4 PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x4CC PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x42CBC405E4DBF1B691E85B9A34B08ECFCF7A9AD9078BF4D645CCFA1FAC11C10B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x507 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x3BE PUSH2 0xD81 JUMP JUMPDEST PUSH2 0x517 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x558 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xA38 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE SWAP1 POP PUSH1 0x3 PUSH2 0x56C DUP4 DUP6 DUP4 PUSH2 0x14F1 JUMP JUMPDEST POP DUP1 PUSH32 0xE8D6349745D718FBB56B30E41D99DBE12FC69F0A8D7401DAC98476504C027A43 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x59F SWAP3 SWAP2 SWAP1 PUSH2 0x15B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x5BA CALLER DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x5C1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5C9 PUSH2 0xDDF JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x616 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x4 SLOAD SWAP3 SWAP2 POP POP PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x66C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420636F6D706C69616E6365207369676E617475726500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP7 AND DUP2 LT PUSH2 0x6DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7468696E6720746F20636C61696D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 PUSH1 0xA0 DUP10 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x741 SWAP1 PUSH2 0x15E0 JUMP JUMPDEST SWAP1 POP PUSH2 0x784 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x2 SLOAD SWAP2 POP DUP5 SWAP1 POP PUSH2 0xE5D JUMP JUMPDEST PUSH2 0x7D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070726F6F6600000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH32 0xA0712D6800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP9 DUP5 SWAP1 SUB SWAP1 DUP2 AND PUSH1 0x4 DUP11 ADD MSTORE SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA0712D68 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x88D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B1 SWAP2 SWAP1 PUSH2 0x1604 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42842E0E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x93F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x953 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND SWAP2 POP CALLER SWAP1 PUSH32 0xF9DDF109EB32AE61850B998BB6A5BFBCB1B0D513AB98D1F98D5FF43D977B9AB7 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9B0 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH2 0xA35 DUP2 PUSH2 0xD19 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA44 DUP3 MLOAD PUSH2 0xA73 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA56 SWAP3 SWAP2 SWAP1 PUSH2 0x161D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xA80 DUP4 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAA0 JUMPI PUSH2 0xAA0 PUSH2 0x148C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xACA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xAD4 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0xB5C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xB88 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xBA6 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xBBE JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xBD2 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xBE4 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xBF0 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH2 0xC58 PUSH2 0xCC0 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xD89 PUSH2 0xDDF JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xCA3 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xE48 DUP6 DUP6 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xE55 DUP2 PUSH2 0xEB8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE6A DUP6 DUP5 PUSH2 0x101D JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0xEA9 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0xE9D DUP8 DUP3 DUP6 DUP6 PUSH2 0x1062 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0xEB1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xECC JUMPI PUSH2 0xECC PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xED4 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xEE8 JUMPI PUSH2 0xEE8 PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xF35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xF49 JUMPI PUSH2 0xF49 PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xF96 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xFAA JUMPI PUSH2 0xFAA PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xE55 JUMPI PUSH2 0x104E DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1041 JUMPI PUSH2 0x1041 PUSH2 0x168E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1126 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x105A DUP2 PUSH2 0x16A4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x1099 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1116 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x111D JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1142 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1151 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1173 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x115B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1182 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x11A7 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1158 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x11EE DUP2 PUSH2 0x11BB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x120E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1151 DUP2 PUSH2 0x11BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x122B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xEB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x129E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AA DUP6 DUP3 DUP7 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x12D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x12E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xEB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x133D DUP7 PUSH2 0x12B6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x135A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1366 DUP10 DUP4 DUP11 ADD PUSH2 0x12D7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x137F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138C DUP9 DUP3 DUP10 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x13B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x13C1 DUP2 PUSH2 0x11BB JUMP JUMPDEST SWAP6 POP PUSH2 0x13CF PUSH1 0x20 DUP9 ADD PUSH2 0x12B6 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x13EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13F8 DUP11 DUP4 DUP12 ADD PUSH2 0x12D7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141E DUP10 DUP3 DUP11 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1444 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1464 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x147C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x14EC JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x14C9 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x14E8 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x14D5 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x1509 JUMPI PUSH2 0x1509 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x151D DUP4 PUSH2 0x1517 DUP4 SLOAD PUSH2 0x1430 JUMP JUMPDEST DUP4 PUSH2 0x14A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1551 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x1539 JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0x5BA JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1582 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1562 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x159F JUMPI PUSH1 0x0 NOT PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x40 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x40 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x1464 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1616 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1655 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1158 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x166C DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1158 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x16C5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL 0x4B DUP7 LOG0 PUSH26 0x3F70A48D7976BB8ECA58CBFFA6FCBD7C0CA3E15B3F709712A8A0 PUSH30 0x64736F6C634300080F00334279207369676E696E67207468697320747261 PUSH15 0x73616374696F6E2C20492068657265 PUSH3 0x792061 PUSH4 0x6B6E6F77 PUSH13 0x65646765207468617420492061 PUSH14 0x206E6F7420612055532072657369 PUSH5 0x656E74206F PUSH19 0x20636974697A656E2E2028436974697A656E73 KECCAK256 PUSH16 0x72207265736964656E7473206F662074 PUSH9 0x6520556E6974656420 MSTORE8 PUSH21 0x61746573206F6620416D657269636120617265206E PUSH16 0x7420616C6C6F77656420746F20746865 KECCAK256 POP MSTORE8 TIMESTAMP KECCAK256 PUSH21 0x6F6B656E2061697264726F702064756520746F2061 PUSH17 0x706C696361626C65206C61772E29000000 ","sourceMap":"854:245:42:-:0;554:3403;854:245;;554:3403;854:245;;;554:3403;854:245;;;;;;;;;:::i;:::-;;1138:49;1144:17;1138:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:49;;:::i;:::-;1106:81;;1437:550;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:24;936:18:4;:32::i;:::-;1006:5:6;996:15;;-1:-1:-1;;;;996:15:6;;;-1:-1:-1;;;;;1538:24:42;;;:29;;1530:63;;;;-1:-1:-1;;;1530:63:42;;3502:2:60;1530:63:42;;;3484:21:60;3541:2;3521:18;;;3514:30;3580:23;3560:18;;;3553:51;3621:18;;1530:63:42;;;;;;;;;1612:16;-1:-1:-1;;;;;1612:28:42;;1644:1;1612:33;1604:69;;;;-1:-1:-1;;;1604:69:42;;3852:2:60;1604:69:42;;;3834:21:60;3891:2;3871:18;;;3864:30;3930:25;3910:18;;;3903:53;3973:18;;1604:69:42;3650:347:60;1604:69:42;-1:-1:-1;;;;;1692:26:42;;1684:60;;;;-1:-1:-1;;;1684:60:42;;4204:2:60;1684:60:42;;;4186:21:60;4243:2;4223:18;;;4216:30;4282:23;4262:18;;;4255:51;4323:18;;1684:60:42;4002:345:60;1684:60:42;1755:32;1774:12;1755:18;:32::i;:::-;1798:65;;-1:-1:-1;;;1798:65:42;;-1:-1:-1;;;;;4544:32:60;;;1798:65:42;;;4526:51:60;-1:-1:-1;;4593:18:60;;;4586:34;1798:28:42;;;;;4499:18:60;;1798:65:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1874:26:42;;;;;1911:49;;;;1971:8;:6;:8::i;:::-;1437:550;;;554:3403;;7806:196:27;7877:7;7964:26;7981:1;:8;7964:16;;;;;:26;;:::i;:::-;7992:1;7913:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7903:92;;;;;;7896:99;;7806:196;;;:::o;2433:187:4:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:6:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;-1:-1:-1;;;;2245:14:6::1;-1:-1:-1::0;;;2245:14:6::1;::::0;;2274:20:::1;2281:12;719:10:24::0;;640:96;2281:12:6::1;2274:20;::::0;-1:-1:-1;;;;;6020:32:60;;;6002:51;;5990:2;5975:18;2274:20:6::1;;;;;;;2186:115::o:0;415:696:26:-;471:13;520:14;537:17;548:5;537:10;;;;;:17;;:::i;:::-;557:1;537:21;520:38;;572:20;606:6;-1:-1:-1;;;;;595:18:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:26;-1:-1:-1;572:41:26;-1:-1:-1;733:28:26;;;749:2;733:28;788:280;-1:-1:-1;;819:5:26;-1:-1:-1;;;953:2:26;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:26;788:280;1032:21;-1:-1:-1;1088:6:26;415:696;-1:-1:-1;;;415:696:26:o;1767:106:6:-;1837:8;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;;1615:84;1837:8;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:6;;6398:2:60;1828:38:6;;;6380:21:60;6437:2;6417:18;;;6410:30;-1:-1:-1;;;6456:18:60;;;6449:46;6512:18;;1828:38:6;6196:340:60;1828:38:6;1767:106::o;9889:890:32:-;9942:7;;10026:6;10017:15;;10013:99;;10061:6;10052:15;;;-1:-1:-1;10095:2:32;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:32;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:32;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:32;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:32;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:32;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10676:64;10766:6;9889:890;-1:-1:-1;;9889:890:32:o;14:127:60:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:60;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:60;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:60;;;2580:26;2531:89;-1:-1:-1;;1335:1:60;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:60;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:60;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:60;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:60:o;2735:177::-;2814:13;;-1:-1:-1;;;;;2856:31:60;;2846:42;;2836:70;;2902:1;2899;2892:12;2836:70;2735:177;;;:::o;2917:378::-;3005:6;3013;3021;3074:2;3062:9;3053:7;3049:23;3045:32;3042:52;;;3090:1;3087;3080:12;3042:52;3113:40;3143:9;3113:40;:::i;:::-;3103:50;;3172:49;3217:2;3206:9;3202:18;3172:49;:::i;:::-;3162:59;;3240:49;3285:2;3274:9;3270:18;3240:49;:::i;:::-;3230:59;;2917:378;;;;;:::o;4631:277::-;4698:6;4751:2;4739:9;4730:7;4726:23;4722:32;4719:52;;;4767:1;4764;4757:12;4719:52;4799:9;4793:16;4852:5;4845:13;4838:21;4831:5;4828:32;4818:60;;4874:1;4871;4864:12;4818:60;4897:5;4631:277;-1:-1:-1;;;4631:277:60:o;4913:258::-;4985:1;4995:113;5009:6;5006:1;5003:13;4995:113;;;5085:11;;;5079:18;5066:11;;;5059:39;5031:2;5024:10;4995:113;;;5126:6;5123:1;5120:13;5117:48;;;5161:1;5152:6;5147:3;5143:16;5136:27;5117:48;;4913:258;;;:::o;5176:675::-;5484:66;5479:3;5472:79;5454:3;5580:6;5574:13;5596:62;5651:6;5646:2;5641:3;5637:12;5630:4;5622:6;5618:17;5596:62;:::i;:::-;5718:13;;5677:16;;;;5740:63;5718:13;5789:2;5781:11;;5774:4;5762:17;;5740:63;:::i;:::-;5823:17;5842:2;5819:26;;5176:675;-1:-1:-1;;;;5176:675:60:o;6196:340::-;554:3403:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@PNG_11255":{"entryPoint":null,"id":11255,"parameterSlots":0,"returnSlots":0},"@SAR_11258":{"entryPoint":null,"id":11258,"parameterSlots":0,"returnSlots":0},"@_checkOwner_593":{"entryPoint":3062,"id":593,"parameterSlots":0,"returnSlots":0},"@_efficientHash_5951":{"entryPoint":null,"id":5951,"parameterSlots":2,"returnSlots":1},"@_hashPair_5940":{"entryPoint":4390,"id":5940,"parameterSlots":2,"returnSlots":1},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_pause_820":{"entryPoint":3457,"id":820,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_793":{"entryPoint":3551,"id":793,"parameterSlots":0,"returnSlots":0},"@_requirePaused_804":{"entryPoint":3264,"id":804,"parameterSlots":0,"returnSlots":0},"@_throwError_4989":{"entryPoint":3768,"id":4989,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_650":{"entryPoint":3353,"id":650,"parameterSlots":1,"returnSlots":0},"@_unpause_836":{"entryPoint":3152,"id":836,"parameterSlots":0,"returnSlots":0},"@claimTo_11476":{"entryPoint":1473,"id":11476,"parameterSlots":6,"returnSlots":0},"@claim_11377":{"entryPoint":1452,"id":11377,"parameterSlots":5,"returnSlots":0},"@claimedAmounts_11252":{"entryPoint":null,"id":11252,"parameterSlots":0,"returnSlots":0},"@complianceHash_11271":{"entryPoint":null,"id":11271,"parameterSlots":0,"returnSlots":0},"@complianceMessage_11263":{"entryPoint":713,"id":11263,"parameterSlots":0,"returnSlots":0},"@log10_6690":{"entryPoint":2835,"id":6690,"parameterSlots":1,"returnSlots":1},"@merkleRoot_11260":{"entryPoint":null,"id":11260,"parameterSlots":0,"returnSlots":0},"@owner_579":{"entryPoint":null,"id":579,"parameterSlots":0,"returnSlots":1},"@pause_11556":{"entryPoint":1279,"id":11556,"parameterSlots":0,"returnSlots":0},"@paused_781":{"entryPoint":null,"id":781,"parameterSlots":0,"returnSlots":1},"@processProof_5535":{"entryPoint":4125,"id":5535,"parameterSlots":2,"returnSlots":1},"@recover_11547":{"entryPoint":960,"id":11547,"parameterSlots":2,"returnSlots":0},"@recover_5062":{"entryPoint":3641,"id":5062,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_607":{"entryPoint":1194,"id":607,"parameterSlots":0,"returnSlots":0},"@setComplianceMessage_11506":{"entryPoint":1295,"id":11506,"parameterSlots":2,"returnSlots":0},"@setMerkleRoot_11524":{"entryPoint":1212,"id":11524,"parameterSlots":1,"returnSlots":0},"@toEthSignedMessageHash_5275":{"entryPoint":2616,"id":5275,"parameterSlots":1,"returnSlots":1},"@toString_4818":{"entryPoint":2675,"id":4818,"parameterSlots":1,"returnSlots":1},"@transferOwnership_630":{"entryPoint":2472,"id":630,"parameterSlots":1,"returnSlots":0},"@tryRecover_5035":{"entryPoint":3699,"id":5035,"parameterSlots":2,"returnSlots":2},"@tryRecover_5203":{"entryPoint":4194,"id":5203,"parameterSlots":4,"returnSlots":2},"@unpause_11572":{"entryPoint":855,"id":11572,"parameterSlots":0,"returnSlots":0},"@verify_5474":{"entryPoint":3677,"id":5474,"parameterSlots":3,"returnSlots":1},"abi_decode_array_bytes32_dyn_calldata":{"entryPoint":4823,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_string_calldata":{"entryPoint":4658,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4604,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint96t_array$_t_bytes32_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":5021,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5226,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":4633,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IERC20_$1502t_uint256":{"entryPoint":4560,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":4724,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":5636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":4892,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint96":{"entryPoint":4790,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5661,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPangolinStakingPositions_$11238__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5553,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4488,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_174513475f9c53bc5b2e1ee6a828adc62c13c5dd0a72290fb622361272707df6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":5282,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":5600,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":5361,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":4440,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":5168,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":5796,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":5752,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":5774,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5260,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IERC20":{"entryPoint":4539,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:17928:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"67:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"77:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"86:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"81:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"146:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"171:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"176:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"167:3:60"},"nodeType":"YulFunctionCall","src":"167:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"190:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"195:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"186:3:60"},"nodeType":"YulFunctionCall","src":"186:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"180:5:60"},"nodeType":"YulFunctionCall","src":"180:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:60"},"nodeType":"YulFunctionCall","src":"160:39:60"},"nodeType":"YulExpressionStatement","src":"160:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"107:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"110:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"104:2:60"},"nodeType":"YulFunctionCall","src":"104:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"118:19:60","statements":[{"nodeType":"YulAssignment","src":"120:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"129:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"132:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"125:3:60"},"nodeType":"YulFunctionCall","src":"125:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"120:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"100:3:60","statements":[]},"src":"96:113:60"},{"body":{"nodeType":"YulBlock","src":"235:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"248:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"253:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"244:3:60"},"nodeType":"YulFunctionCall","src":"244:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"237:6:60"},"nodeType":"YulFunctionCall","src":"237:27:60"},"nodeType":"YulExpressionStatement","src":"237:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"224:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"227:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"221:2:60"},"nodeType":"YulFunctionCall","src":"221:13:60"},"nodeType":"YulIf","src":"218:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"45:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"50:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"55:6:60","type":""}],"src":"14:258:60"},{"body":{"nodeType":"YulBlock","src":"398:321:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"415:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"426:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"408:6:60"},"nodeType":"YulFunctionCall","src":"408:21:60"},"nodeType":"YulExpressionStatement","src":"408:21:60"},{"nodeType":"YulVariableDeclaration","src":"438:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"458:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"452:5:60"},"nodeType":"YulFunctionCall","src":"452:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"442:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"485:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"496:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:60"},"nodeType":"YulFunctionCall","src":"481:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"501:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"474:6:60"},"nodeType":"YulFunctionCall","src":"474:34:60"},"nodeType":"YulExpressionStatement","src":"474:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"543:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"551:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"539:3:60"},"nodeType":"YulFunctionCall","src":"539:15:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"560:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"571:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"556:3:60"},"nodeType":"YulFunctionCall","src":"556:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"576:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"517:21:60"},"nodeType":"YulFunctionCall","src":"517:66:60"},"nodeType":"YulExpressionStatement","src":"517:66:60"},{"nodeType":"YulAssignment","src":"592:121:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"608:9:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"627:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"635:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"623:3:60"},"nodeType":"YulFunctionCall","src":"623:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"640:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"619:3:60"},"nodeType":"YulFunctionCall","src":"619:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"604:3:60"},"nodeType":"YulFunctionCall","src":"604:104:60"},{"kind":"number","nodeType":"YulLiteral","src":"710:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"600:3:60"},"nodeType":"YulFunctionCall","src":"600:113:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"592:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"367:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"378:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"389:4:60","type":""}],"src":"277:442:60"},{"body":{"nodeType":"YulBlock","src":"825:76:60","statements":[{"nodeType":"YulAssignment","src":"835:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"847:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"858:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"843:3:60"},"nodeType":"YulFunctionCall","src":"843:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"835:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"877:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"888:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"870:6:60"},"nodeType":"YulFunctionCall","src":"870:25:60"},"nodeType":"YulExpressionStatement","src":"870:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"794:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"805:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"816:4:60","type":""}],"src":"724:177:60"},{"body":{"nodeType":"YulBlock","src":"1042:125:60","statements":[{"nodeType":"YulAssignment","src":"1052:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1064:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1075:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1060:3:60"},"nodeType":"YulFunctionCall","src":"1060:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1052:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1094:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1117:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1105:3:60"},"nodeType":"YulFunctionCall","src":"1105:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1087:6:60"},"nodeType":"YulFunctionCall","src":"1087:74:60"},"nodeType":"YulExpressionStatement","src":"1087:74:60"}]},"name":"abi_encode_tuple_t_contract$_IPangolinStakingPositions_$11238__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1011:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1022:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1033:4:60","type":""}],"src":"906:261:60"},{"body":{"nodeType":"YulBlock","src":"1225:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"1312:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1321:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1324:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1314:6:60"},"nodeType":"YulFunctionCall","src":"1314:12:60"},"nodeType":"YulExpressionStatement","src":"1314:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1248:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1259:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1266:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1255:3:60"},"nodeType":"YulFunctionCall","src":"1255:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1245:2:60"},"nodeType":"YulFunctionCall","src":"1245:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1238:6:60"},"nodeType":"YulFunctionCall","src":"1238:73:60"},"nodeType":"YulIf","src":"1235:93:60"}]},"name":"validator_revert_contract_IERC20","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1214:5:60","type":""}],"src":"1172:162:60"},{"body":{"nodeType":"YulBlock","src":"1441:236:60","statements":[{"body":{"nodeType":"YulBlock","src":"1487:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1496:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1499:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1489:6:60"},"nodeType":"YulFunctionCall","src":"1489:12:60"},"nodeType":"YulExpressionStatement","src":"1489:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1462:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1471:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1458:3:60"},"nodeType":"YulFunctionCall","src":"1458:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1483:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1454:3:60"},"nodeType":"YulFunctionCall","src":"1454:32:60"},"nodeType":"YulIf","src":"1451:52:60"},{"nodeType":"YulVariableDeclaration","src":"1512:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1525:12:60"},"nodeType":"YulFunctionCall","src":"1525:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1516:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1590:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"1557:32:60"},"nodeType":"YulFunctionCall","src":"1557:39:60"},"nodeType":"YulExpressionStatement","src":"1557:39:60"},{"nodeType":"YulAssignment","src":"1605:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1615:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1605:6:60"}]},{"nodeType":"YulAssignment","src":"1629:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1656:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1667:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1652:3:60"},"nodeType":"YulFunctionCall","src":"1652:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1639:12:60"},"nodeType":"YulFunctionCall","src":"1639:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1629:6:60"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$1502t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1399:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1410:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1422:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1430:6:60","type":""}],"src":"1339:338:60"},{"body":{"nodeType":"YulBlock","src":"1777:92:60","statements":[{"nodeType":"YulAssignment","src":"1787:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1799:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1810:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1795:3:60"},"nodeType":"YulFunctionCall","src":"1795:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1787:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1829:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1854:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1847:6:60"},"nodeType":"YulFunctionCall","src":"1847:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1840:6:60"},"nodeType":"YulFunctionCall","src":"1840:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1822:6:60"},"nodeType":"YulFunctionCall","src":"1822:41:60"},"nodeType":"YulExpressionStatement","src":"1822:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1746:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1757:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1768:4:60","type":""}],"src":"1682:187:60"},{"body":{"nodeType":"YulBlock","src":"1944:185:60","statements":[{"body":{"nodeType":"YulBlock","src":"1990:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1999:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2002:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1992:6:60"},"nodeType":"YulFunctionCall","src":"1992:12:60"},"nodeType":"YulExpressionStatement","src":"1992:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1965:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1974:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1961:3:60"},"nodeType":"YulFunctionCall","src":"1961:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1986:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1957:3:60"},"nodeType":"YulFunctionCall","src":"1957:32:60"},"nodeType":"YulIf","src":"1954:52:60"},{"nodeType":"YulVariableDeclaration","src":"2015:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2041:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2028:12:60"},"nodeType":"YulFunctionCall","src":"2028:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2019:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2093:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"2060:32:60"},"nodeType":"YulFunctionCall","src":"2060:39:60"},"nodeType":"YulExpressionStatement","src":"2060:39:60"},{"nodeType":"YulAssignment","src":"2108:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"2118:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2108:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1910:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1921:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1933:6:60","type":""}],"src":"1874:255:60"},{"body":{"nodeType":"YulBlock","src":"2233:109:60","statements":[{"nodeType":"YulAssignment","src":"2243:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2255:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2266:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2251:3:60"},"nodeType":"YulFunctionCall","src":"2251:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2243:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2285:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2300:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2308:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2296:3:60"},"nodeType":"YulFunctionCall","src":"2296:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2278:6:60"},"nodeType":"YulFunctionCall","src":"2278:58:60"},"nodeType":"YulExpressionStatement","src":"2278:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2202:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2213:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2224:4:60","type":""}],"src":"2134:208:60"},{"body":{"nodeType":"YulBlock","src":"2417:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"2463:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2472:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2475:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2465:6:60"},"nodeType":"YulFunctionCall","src":"2465:12:60"},"nodeType":"YulExpressionStatement","src":"2465:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2438:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2447:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2434:3:60"},"nodeType":"YulFunctionCall","src":"2434:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2459:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2430:3:60"},"nodeType":"YulFunctionCall","src":"2430:32:60"},"nodeType":"YulIf","src":"2427:52:60"},{"nodeType":"YulAssignment","src":"2488:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2511:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2498:12:60"},"nodeType":"YulFunctionCall","src":"2498:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2488:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2383:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2394:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2406:6:60","type":""}],"src":"2347:180:60"},{"body":{"nodeType":"YulBlock","src":"2633:125:60","statements":[{"nodeType":"YulAssignment","src":"2643:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2655:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2666:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2651:3:60"},"nodeType":"YulFunctionCall","src":"2651:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2643:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2685:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2700:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2708:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2696:3:60"},"nodeType":"YulFunctionCall","src":"2696:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2678:6:60"},"nodeType":"YulFunctionCall","src":"2678:74:60"},"nodeType":"YulExpressionStatement","src":"2678:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2602:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2613:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2624:4:60","type":""}],"src":"2532:226:60"},{"body":{"nodeType":"YulBlock","src":"2879:125:60","statements":[{"nodeType":"YulAssignment","src":"2889:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2901:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2912:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:60"},"nodeType":"YulFunctionCall","src":"2897:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2889:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2931:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2946:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2954:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2942:3:60"},"nodeType":"YulFunctionCall","src":"2942:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2924:6:60"},"nodeType":"YulFunctionCall","src":"2924:74:60"},"nodeType":"YulExpressionStatement","src":"2924:74:60"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2848:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2859:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2870:4:60","type":""}],"src":"2763:241:60"},{"body":{"nodeType":"YulBlock","src":"3082:275:60","statements":[{"body":{"nodeType":"YulBlock","src":"3131:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3140:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3143:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3133:6:60"},"nodeType":"YulFunctionCall","src":"3133:12:60"},"nodeType":"YulExpressionStatement","src":"3133:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3110:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3118:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3106:3:60"},"nodeType":"YulFunctionCall","src":"3106:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"3125:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3102:3:60"},"nodeType":"YulFunctionCall","src":"3102:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3095:6:60"},"nodeType":"YulFunctionCall","src":"3095:35:60"},"nodeType":"YulIf","src":"3092:55:60"},{"nodeType":"YulAssignment","src":"3156:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3179:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3166:12:60"},"nodeType":"YulFunctionCall","src":"3166:20:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"3156:6:60"}]},{"body":{"nodeType":"YulBlock","src":"3229:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3238:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3241:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3231:6:60"},"nodeType":"YulFunctionCall","src":"3231:12:60"},"nodeType":"YulExpressionStatement","src":"3231:12:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3201:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3209:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3198:2:60"},"nodeType":"YulFunctionCall","src":"3198:30:60"},"nodeType":"YulIf","src":"3195:50:60"},{"nodeType":"YulAssignment","src":"3254:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3270:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3278:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3266:3:60"},"nodeType":"YulFunctionCall","src":"3266:17:60"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"3254:8:60"}]},{"body":{"nodeType":"YulBlock","src":"3335:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3344:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3347:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3337:6:60"},"nodeType":"YulFunctionCall","src":"3337:12:60"},"nodeType":"YulExpressionStatement","src":"3337:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3306:6:60"},{"name":"length","nodeType":"YulIdentifier","src":"3314:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3302:3:60"},"nodeType":"YulFunctionCall","src":"3302:19:60"},{"kind":"number","nodeType":"YulLiteral","src":"3323:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3298:3:60"},"nodeType":"YulFunctionCall","src":"3298:30:60"},{"name":"end","nodeType":"YulIdentifier","src":"3330:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3295:2:60"},"nodeType":"YulFunctionCall","src":"3295:39:60"},"nodeType":"YulIf","src":"3292:59:60"}]},"name":"abi_decode_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3045:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"3053:3:60","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"3061:8:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"3071:6:60","type":""}],"src":"3009:348:60"},{"body":{"nodeType":"YulBlock","src":"3452:321:60","statements":[{"body":{"nodeType":"YulBlock","src":"3498:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3507:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3510:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3500:6:60"},"nodeType":"YulFunctionCall","src":"3500:12:60"},"nodeType":"YulExpressionStatement","src":"3500:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3473:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3482:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3469:3:60"},"nodeType":"YulFunctionCall","src":"3469:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3494:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3465:3:60"},"nodeType":"YulFunctionCall","src":"3465:32:60"},"nodeType":"YulIf","src":"3462:52:60"},{"nodeType":"YulVariableDeclaration","src":"3523:37:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3550:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3537:12:60"},"nodeType":"YulFunctionCall","src":"3537:23:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3527:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3603:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3612:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3615:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3605:6:60"},"nodeType":"YulFunctionCall","src":"3605:12:60"},"nodeType":"YulExpressionStatement","src":"3605:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3575:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3583:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3572:2:60"},"nodeType":"YulFunctionCall","src":"3572:30:60"},"nodeType":"YulIf","src":"3569:50:60"},{"nodeType":"YulVariableDeclaration","src":"3628:85:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3685:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"3696:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3681:3:60"},"nodeType":"YulFunctionCall","src":"3681:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3705:7:60"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"3654:26:60"},"nodeType":"YulFunctionCall","src":"3654:59:60"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"3632:8:60","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"3642:8:60","type":""}]},{"nodeType":"YulAssignment","src":"3722:18:60","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"3732:8:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3722:6:60"}]},{"nodeType":"YulAssignment","src":"3749:18:60","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"3759:8:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3749:6:60"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3410:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3421:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3433:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3441:6:60","type":""}],"src":"3362:411:60"},{"body":{"nodeType":"YulBlock","src":"3826:131:60","statements":[{"nodeType":"YulAssignment","src":"3836:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3858:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3845:12:60"},"nodeType":"YulFunctionCall","src":"3845:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3836:5:60"}]},{"body":{"nodeType":"YulBlock","src":"3935:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3944:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3947:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3937:6:60"},"nodeType":"YulFunctionCall","src":"3937:12:60"},"nodeType":"YulExpressionStatement","src":"3937:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3887:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3898:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"3905:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3894:3:60"},"nodeType":"YulFunctionCall","src":"3894:38:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3884:2:60"},"nodeType":"YulFunctionCall","src":"3884:49:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3877:6:60"},"nodeType":"YulFunctionCall","src":"3877:57:60"},"nodeType":"YulIf","src":"3874:77:60"}]},"name":"abi_decode_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3805:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3816:5:60","type":""}],"src":"3778:179:60"},{"body":{"nodeType":"YulBlock","src":"4046:283:60","statements":[{"body":{"nodeType":"YulBlock","src":"4095:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4104:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4107:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4097:6:60"},"nodeType":"YulFunctionCall","src":"4097:12:60"},"nodeType":"YulExpressionStatement","src":"4097:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4074:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4082:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4070:3:60"},"nodeType":"YulFunctionCall","src":"4070:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"4089:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4066:3:60"},"nodeType":"YulFunctionCall","src":"4066:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4059:6:60"},"nodeType":"YulFunctionCall","src":"4059:35:60"},"nodeType":"YulIf","src":"4056:55:60"},{"nodeType":"YulAssignment","src":"4120:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4143:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4130:12:60"},"nodeType":"YulFunctionCall","src":"4130:20:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4120:6:60"}]},{"body":{"nodeType":"YulBlock","src":"4193:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4202:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4205:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4195:6:60"},"nodeType":"YulFunctionCall","src":"4195:12:60"},"nodeType":"YulExpressionStatement","src":"4195:12:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4165:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4173:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4162:2:60"},"nodeType":"YulFunctionCall","src":"4162:30:60"},"nodeType":"YulIf","src":"4159:50:60"},{"nodeType":"YulAssignment","src":"4218:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4234:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4242:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4230:3:60"},"nodeType":"YulFunctionCall","src":"4230:17:60"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"4218:8:60"}]},{"body":{"nodeType":"YulBlock","src":"4307:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4316:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4319:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4309:6:60"},"nodeType":"YulFunctionCall","src":"4309:12:60"},"nodeType":"YulExpressionStatement","src":"4309:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4270:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4282:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"4285:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4278:3:60"},"nodeType":"YulFunctionCall","src":"4278:14:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4266:3:60"},"nodeType":"YulFunctionCall","src":"4266:27:60"},{"kind":"number","nodeType":"YulLiteral","src":"4295:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4262:3:60"},"nodeType":"YulFunctionCall","src":"4262:38:60"},{"name":"end","nodeType":"YulIdentifier","src":"4302:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4259:2:60"},"nodeType":"YulFunctionCall","src":"4259:47:60"},"nodeType":"YulIf","src":"4256:67:60"}]},"name":"abi_decode_array_bytes32_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4009:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"4017:3:60","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"4025:8:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"4035:6:60","type":""}],"src":"3962:367:60"},{"body":{"nodeType":"YulBlock","src":"4491:661:60","statements":[{"body":{"nodeType":"YulBlock","src":"4537:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4546:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4549:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4539:6:60"},"nodeType":"YulFunctionCall","src":"4539:12:60"},"nodeType":"YulExpressionStatement","src":"4539:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4512:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4521:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4508:3:60"},"nodeType":"YulFunctionCall","src":"4508:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4533:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4504:3:60"},"nodeType":"YulFunctionCall","src":"4504:32:60"},"nodeType":"YulIf","src":"4501:52:60"},{"nodeType":"YulAssignment","src":"4562:38:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4590:9:60"}],"functionName":{"name":"abi_decode_uint96","nodeType":"YulIdentifier","src":"4572:17:60"},"nodeType":"YulFunctionCall","src":"4572:28:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4562:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"4609:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4640:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4651:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4636:3:60"},"nodeType":"YulFunctionCall","src":"4636:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4623:12:60"},"nodeType":"YulFunctionCall","src":"4623:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4613:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4664:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4674:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4668:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4719:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4728:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4731:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4721:6:60"},"nodeType":"YulFunctionCall","src":"4721:12:60"},"nodeType":"YulExpressionStatement","src":"4721:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4707:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4715:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4704:2:60"},"nodeType":"YulFunctionCall","src":"4704:14:60"},"nodeType":"YulIf","src":"4701:34:60"},{"nodeType":"YulVariableDeclaration","src":"4744:96:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4812:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"4823:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4808:3:60"},"nodeType":"YulFunctionCall","src":"4808:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4832:7:60"}],"functionName":{"name":"abi_decode_array_bytes32_dyn_calldata","nodeType":"YulIdentifier","src":"4770:37:60"},"nodeType":"YulFunctionCall","src":"4770:70:60"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"4748:8:60","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"4758:8:60","type":""}]},{"nodeType":"YulAssignment","src":"4849:18:60","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"4859:8:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4849:6:60"}]},{"nodeType":"YulAssignment","src":"4876:18:60","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"4886:8:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4876:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"4903:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4936:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4947:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4932:3:60"},"nodeType":"YulFunctionCall","src":"4932:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4919:12:60"},"nodeType":"YulFunctionCall","src":"4919:32:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4907:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4980:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4989:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4992:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4982:6:60"},"nodeType":"YulFunctionCall","src":"4982:12:60"},"nodeType":"YulExpressionStatement","src":"4982:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4966:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4976:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4963:2:60"},"nodeType":"YulFunctionCall","src":"4963:16:60"},"nodeType":"YulIf","src":"4960:36:60"},{"nodeType":"YulVariableDeclaration","src":"5005:87:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5062:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5073:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5058:3:60"},"nodeType":"YulFunctionCall","src":"5058:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5084:7:60"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"5031:26:60"},"nodeType":"YulFunctionCall","src":"5031:61:60"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"5009:8:60","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"5019:8:60","type":""}]},{"nodeType":"YulAssignment","src":"5101:18:60","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5111:8:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5101:6:60"}]},{"nodeType":"YulAssignment","src":"5128:18:60","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"5138:8:60"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5128:6:60"}]}]},"name":"abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4425:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4436:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4448:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4456:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4464:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4472:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4480:6:60","type":""}],"src":"4334:818:60"},{"body":{"nodeType":"YulBlock","src":"5331:788:60","statements":[{"body":{"nodeType":"YulBlock","src":"5378:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5387:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5390:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5380:6:60"},"nodeType":"YulFunctionCall","src":"5380:12:60"},"nodeType":"YulExpressionStatement","src":"5380:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5352:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5361:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5348:3:60"},"nodeType":"YulFunctionCall","src":"5348:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5373:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5344:3:60"},"nodeType":"YulFunctionCall","src":"5344:33:60"},"nodeType":"YulIf","src":"5341:53:60"},{"nodeType":"YulVariableDeclaration","src":"5403:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5429:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5416:12:60"},"nodeType":"YulFunctionCall","src":"5416:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5407:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5481:5:60"}],"functionName":{"name":"validator_revert_contract_IERC20","nodeType":"YulIdentifier","src":"5448:32:60"},"nodeType":"YulFunctionCall","src":"5448:39:60"},"nodeType":"YulExpressionStatement","src":"5448:39:60"},{"nodeType":"YulAssignment","src":"5496:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"5506:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5496:6:60"}]},{"nodeType":"YulAssignment","src":"5520:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5552:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5563:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5548:3:60"},"nodeType":"YulFunctionCall","src":"5548:18:60"}],"functionName":{"name":"abi_decode_uint96","nodeType":"YulIdentifier","src":"5530:17:60"},"nodeType":"YulFunctionCall","src":"5530:37:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5520:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"5576:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5607:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5618:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5603:3:60"},"nodeType":"YulFunctionCall","src":"5603:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5590:12:60"},"nodeType":"YulFunctionCall","src":"5590:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5580:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5631:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"5641:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5635:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5686:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5695:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5698:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5688:6:60"},"nodeType":"YulFunctionCall","src":"5688:12:60"},"nodeType":"YulExpressionStatement","src":"5688:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5674:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5682:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5671:2:60"},"nodeType":"YulFunctionCall","src":"5671:14:60"},"nodeType":"YulIf","src":"5668:34:60"},{"nodeType":"YulVariableDeclaration","src":"5711:96:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5779:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"5790:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5775:3:60"},"nodeType":"YulFunctionCall","src":"5775:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5799:7:60"}],"functionName":{"name":"abi_decode_array_bytes32_dyn_calldata","nodeType":"YulIdentifier","src":"5737:37:60"},"nodeType":"YulFunctionCall","src":"5737:70:60"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5715:8:60","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5725:8:60","type":""}]},{"nodeType":"YulAssignment","src":"5816:18:60","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5826:8:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5816:6:60"}]},{"nodeType":"YulAssignment","src":"5843:18:60","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5853:8:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5843:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"5870:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5903:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5914:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5899:3:60"},"nodeType":"YulFunctionCall","src":"5899:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5886:12:60"},"nodeType":"YulFunctionCall","src":"5886:32:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5874:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5947:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5956:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5959:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5949:6:60"},"nodeType":"YulFunctionCall","src":"5949:12:60"},"nodeType":"YulExpressionStatement","src":"5949:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5933:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5943:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5930:2:60"},"nodeType":"YulFunctionCall","src":"5930:16:60"},"nodeType":"YulIf","src":"5927:36:60"},{"nodeType":"YulVariableDeclaration","src":"5972:87:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6029:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6040:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6025:3:60"},"nodeType":"YulFunctionCall","src":"6025:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6051:7:60"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"5998:26:60"},"nodeType":"YulFunctionCall","src":"5998:61:60"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"5976:8:60","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"5986:8:60","type":""}]},{"nodeType":"YulAssignment","src":"6068:18:60","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"6078:8:60"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6068:6:60"}]},{"nodeType":"YulAssignment","src":"6095:18:60","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"6105:8:60"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6095:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint96t_array$_t_bytes32_$dyn_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5257:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5268:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5280:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5288:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5296:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5304:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5312:6:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5320:6:60","type":""}],"src":"5157:962:60"},{"body":{"nodeType":"YulBlock","src":"6179:382:60","statements":[{"nodeType":"YulAssignment","src":"6189:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6203:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"6206:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6199:3:60"},"nodeType":"YulFunctionCall","src":"6199:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6189:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6220:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6250:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"6256:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6246:3:60"},"nodeType":"YulFunctionCall","src":"6246:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6224:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6297:31:60","statements":[{"nodeType":"YulAssignment","src":"6299:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6313:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6321:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6309:3:60"},"nodeType":"YulFunctionCall","src":"6309:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6299:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6277:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6270:6:60"},"nodeType":"YulFunctionCall","src":"6270:26:60"},"nodeType":"YulIf","src":"6267:61:60"},{"body":{"nodeType":"YulBlock","src":"6387:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6408:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6411:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6401:6:60"},"nodeType":"YulFunctionCall","src":"6401:88:60"},"nodeType":"YulExpressionStatement","src":"6401:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6509:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6512:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6502:6:60"},"nodeType":"YulFunctionCall","src":"6502:15:60"},"nodeType":"YulExpressionStatement","src":"6502:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6537:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6540:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6530:6:60"},"nodeType":"YulFunctionCall","src":"6530:15:60"},"nodeType":"YulExpressionStatement","src":"6530:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6343:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6366:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6374:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6363:2:60"},"nodeType":"YulFunctionCall","src":"6363:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6340:2:60"},"nodeType":"YulFunctionCall","src":"6340:38:60"},"nodeType":"YulIf","src":"6337:218:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"6159:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"6168:6:60","type":""}],"src":"6124:437:60"},{"body":{"nodeType":"YulBlock","src":"6740:169:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6757:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6768:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6750:6:60"},"nodeType":"YulFunctionCall","src":"6750:21:60"},"nodeType":"YulExpressionStatement","src":"6750:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6791:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6802:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6787:3:60"},"nodeType":"YulFunctionCall","src":"6787:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6807:2:60","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6780:6:60"},"nodeType":"YulFunctionCall","src":"6780:30:60"},"nodeType":"YulExpressionStatement","src":"6780:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6830:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6841:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6826:3:60"},"nodeType":"YulFunctionCall","src":"6826:18:60"},{"hexValue":"6d65726b6c6520726f6f74206e6f7420736574","kind":"string","nodeType":"YulLiteral","src":"6846:21:60","type":"","value":"merkle root not set"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6819:6:60"},"nodeType":"YulFunctionCall","src":"6819:49:60"},"nodeType":"YulExpressionStatement","src":"6819:49:60"},{"nodeType":"YulAssignment","src":"6877:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6889:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6900:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6885:3:60"},"nodeType":"YulFunctionCall","src":"6885:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6877:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6717:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6731:4:60","type":""}],"src":"6566:343:60"},{"body":{"nodeType":"YulBlock","src":"7043:168:60","statements":[{"nodeType":"YulAssignment","src":"7053:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7065:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7076:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7061:3:60"},"nodeType":"YulFunctionCall","src":"7061:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7053:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7095:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7110:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7118:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7106:3:60"},"nodeType":"YulFunctionCall","src":"7106:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7088:6:60"},"nodeType":"YulFunctionCall","src":"7088:74:60"},"nodeType":"YulExpressionStatement","src":"7088:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7182:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7193:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7178:3:60"},"nodeType":"YulFunctionCall","src":"7178:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"7198:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7171:6:60"},"nodeType":"YulFunctionCall","src":"7171:34:60"},"nodeType":"YulExpressionStatement","src":"7171:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7004:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7015:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7023:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7034:4:60","type":""}],"src":"6914:297:60"},{"body":{"nodeType":"YulBlock","src":"7294:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"7340:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7349:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7352:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7342:6:60"},"nodeType":"YulFunctionCall","src":"7342:12:60"},"nodeType":"YulExpressionStatement","src":"7342:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7315:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"7324:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7311:3:60"},"nodeType":"YulFunctionCall","src":"7311:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"7336:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7307:3:60"},"nodeType":"YulFunctionCall","src":"7307:32:60"},"nodeType":"YulIf","src":"7304:52:60"},{"nodeType":"YulVariableDeclaration","src":"7365:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7384:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7378:5:60"},"nodeType":"YulFunctionCall","src":"7378:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7369:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"7447:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7456:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7459:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7449:6:60"},"nodeType":"YulFunctionCall","src":"7449:12:60"},"nodeType":"YulExpressionStatement","src":"7449:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7416:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7437:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7430:6:60"},"nodeType":"YulFunctionCall","src":"7430:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7423:6:60"},"nodeType":"YulFunctionCall","src":"7423:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7413:2:60"},"nodeType":"YulFunctionCall","src":"7413:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7406:6:60"},"nodeType":"YulFunctionCall","src":"7406:40:60"},"nodeType":"YulIf","src":"7403:60:60"},{"nodeType":"YulAssignment","src":"7472:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"7482:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7472:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7260:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7271:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7283:6:60","type":""}],"src":"7216:277:60"},{"body":{"nodeType":"YulBlock","src":"7672:165:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7689:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7700:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7682:6:60"},"nodeType":"YulFunctionCall","src":"7682:21:60"},"nodeType":"YulExpressionStatement","src":"7682:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7723:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7734:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7719:3:60"},"nodeType":"YulFunctionCall","src":"7719:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7739:2:60","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7712:6:60"},"nodeType":"YulFunctionCall","src":"7712:30:60"},"nodeType":"YulExpressionStatement","src":"7712:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7762:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7773:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7758:3:60"},"nodeType":"YulFunctionCall","src":"7758:18:60"},{"hexValue":"7472616e73666572206661696c6564","kind":"string","nodeType":"YulLiteral","src":"7778:17:60","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7751:6:60"},"nodeType":"YulFunctionCall","src":"7751:45:60"},"nodeType":"YulExpressionStatement","src":"7751:45:60"},{"nodeType":"YulAssignment","src":"7805:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7817:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7828:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7813:3:60"},"nodeType":"YulFunctionCall","src":"7813:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7805:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7649:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7663:4:60","type":""}],"src":"7498:339:60"},{"body":{"nodeType":"YulBlock","src":"7874:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7891:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7894:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7884:6:60"},"nodeType":"YulFunctionCall","src":"7884:88:60"},"nodeType":"YulExpressionStatement","src":"7884:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7988:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7991:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7981:6:60"},"nodeType":"YulFunctionCall","src":"7981:15:60"},"nodeType":"YulExpressionStatement","src":"7981:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8012:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8015:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8005:6:60"},"nodeType":"YulFunctionCall","src":"8005:15:60"},"nodeType":"YulExpressionStatement","src":"8005:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"7842:184:60"},{"body":{"nodeType":"YulBlock","src":"8087:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8104:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"8107:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8097:6:60"},"nodeType":"YulFunctionCall","src":"8097:14:60"},"nodeType":"YulExpressionStatement","src":"8097:14:60"},{"nodeType":"YulAssignment","src":"8120:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8138:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8141:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8128:9:60"},"nodeType":"YulFunctionCall","src":"8128:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"8120:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"8070:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"8078:4:60","type":""}],"src":"8031:121:60"},{"body":{"nodeType":"YulBlock","src":"8238:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"8271:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"8285:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"8295:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8289:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8316:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"8320:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8309:6:60"},"nodeType":"YulFunctionCall","src":"8309:17:60"},"nodeType":"YulExpressionStatement","src":"8309:17:60"},{"nodeType":"YulVariableDeclaration","src":"8339:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8361:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"8365:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8351:9:60"},"nodeType":"YulFunctionCall","src":"8351:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"8343:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8383:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8406:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8416:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"8423:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"8435:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8419:3:60"},"nodeType":"YulFunctionCall","src":"8419:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8412:3:60"},"nodeType":"YulFunctionCall","src":"8412:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8402:3:60"},"nodeType":"YulFunctionCall","src":"8402:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"8387:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"8477:23:60","statements":[{"nodeType":"YulAssignment","src":"8479:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"8494:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"8479:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"8459:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"8471:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8456:2:60"},"nodeType":"YulFunctionCall","src":"8456:20:60"},"nodeType":"YulIf","src":"8453:47:60"},{"nodeType":"YulVariableDeclaration","src":"8513:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8527:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8537:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"8544:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"8549:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8540:3:60"},"nodeType":"YulFunctionCall","src":"8540:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8533:3:60"},"nodeType":"YulFunctionCall","src":"8533:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8523:3:60"},"nodeType":"YulFunctionCall","src":"8523:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8517:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8567:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"8580:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"8571:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"8665:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"8674:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"8681:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8667:6:60"},"nodeType":"YulFunctionCall","src":"8667:17:60"},"nodeType":"YulExpressionStatement","src":"8667:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"8615:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"8622:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8612:2:60"},"nodeType":"YulFunctionCall","src":"8612:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8626:26:60","statements":[{"nodeType":"YulAssignment","src":"8628:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"8641:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"8648:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8637:3:60"},"nodeType":"YulFunctionCall","src":"8637:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"8628:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"8608:3:60","statements":[]},"src":"8604:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"8254:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"8259:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8251:2:60"},"nodeType":"YulFunctionCall","src":"8251:11:60"},"nodeType":"YulIf","src":"8248:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"8210:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"8217:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"8222:10:60","type":""}],"src":"8157:545:60"},{"body":{"nodeType":"YulBlock","src":"8792:141:60","statements":[{"nodeType":"YulAssignment","src":"8802:125:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8817:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8835:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"8838:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8831:3:60"},"nodeType":"YulFunctionCall","src":"8831:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"8844:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8827:3:60"},"nodeType":"YulFunctionCall","src":"8827:84:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8823:3:60"},"nodeType":"YulFunctionCall","src":"8823:89:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8813:3:60"},"nodeType":"YulFunctionCall","src":"8813:100:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8919:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"8922:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8915:3:60"},"nodeType":"YulFunctionCall","src":"8915:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8810:2:60"},"nodeType":"YulFunctionCall","src":"8810:117:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"8802:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"8769:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"8775:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"8783:4:60","type":""}],"src":"8707:226:60"},{"body":{"nodeType":"YulBlock","src":"9041:1222:60","statements":[{"body":{"nodeType":"YulBlock","src":"9082:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"9084:16:60"},"nodeType":"YulFunctionCall","src":"9084:18:60"},"nodeType":"YulExpressionStatement","src":"9084:18:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"9057:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"9062:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9054:2:60"},"nodeType":"YulFunctionCall","src":"9054:27:60"},"nodeType":"YulIf","src":"9051:53:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"9157:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"9195:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"9189:5:60"},"nodeType":"YulFunctionCall","src":"9189:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"9163:25:60"},"nodeType":"YulFunctionCall","src":"9163:38:60"},{"name":"len","nodeType":"YulIdentifier","src":"9203:3:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"9113:43:60"},"nodeType":"YulFunctionCall","src":"9113:94:60"},"nodeType":"YulExpressionStatement","src":"9113:94:60"},{"nodeType":"YulVariableDeclaration","src":"9216:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"9233:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"9220:9:60","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"9277:728:60","statements":[{"nodeType":"YulVariableDeclaration","src":"9291:91:60","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"9310:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"9315:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9306:3:60"},"nodeType":"YulFunctionCall","src":"9306:76:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"9295:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9395:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"9439:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"9409:29:60"},"nodeType":"YulFunctionCall","src":"9409:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"9399:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9457:18:60","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"9466:9:60"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9461:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"9545:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"9570:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9595:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"9600:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9591:3:60"},"nodeType":"YulFunctionCall","src":"9591:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9578:12:60"},"nodeType":"YulFunctionCall","src":"9578:33:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"9563:6:60"},"nodeType":"YulFunctionCall","src":"9563:49:60"},"nodeType":"YulExpressionStatement","src":"9563:49:60"},{"nodeType":"YulAssignment","src":"9629:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"9643:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"9651:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9639:3:60"},"nodeType":"YulFunctionCall","src":"9639:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"9629:6:60"}]},{"nodeType":"YulAssignment","src":"9670:33:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"9687:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9698:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9683:3:60"},"nodeType":"YulFunctionCall","src":"9683:20:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"9670:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9499:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"9502:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9496:2:60"},"nodeType":"YulFunctionCall","src":"9496:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9511:21:60","statements":[{"nodeType":"YulAssignment","src":"9513:17:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9522:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"9525:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9518:3:60"},"nodeType":"YulFunctionCall","src":"9518:12:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9513:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"9492:3:60","statements":[]},"src":"9488:229:60"},{"body":{"nodeType":"YulBlock","src":"9762:187:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"9787:6:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9816:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"9821:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9812:3:60"},"nodeType":"YulFunctionCall","src":"9812:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9799:12:60"},"nodeType":"YulFunctionCall","src":"9799:33:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9850:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"9853:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9846:3:60"},"nodeType":"YulFunctionCall","src":"9846:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"9859:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9842:3:60"},"nodeType":"YulFunctionCall","src":"9842:21:60"},{"kind":"number","nodeType":"YulLiteral","src":"9865:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"9838:3:60"},"nodeType":"YulFunctionCall","src":"9838:94:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9834:3:60"},"nodeType":"YulFunctionCall","src":"9834:99:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9795:3:60"},"nodeType":"YulFunctionCall","src":"9795:139:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"9780:6:60"},"nodeType":"YulFunctionCall","src":"9780:155:60"},"nodeType":"YulExpressionStatement","src":"9780:155:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"9736:7:60"},{"name":"len","nodeType":"YulIdentifier","src":"9745:3:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9733:2:60"},"nodeType":"YulFunctionCall","src":"9733:16:60"},"nodeType":"YulIf","src":"9730:219:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"9969:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9983:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"9986:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9979:3:60"},"nodeType":"YulFunctionCall","src":"9979:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"9992:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9975:3:60"},"nodeType":"YulFunctionCall","src":"9975:19:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"9962:6:60"},"nodeType":"YulFunctionCall","src":"9962:33:60"},"nodeType":"YulExpressionStatement","src":"9962:33:60"}]},"nodeType":"YulCase","src":"9270:735:60","value":{"kind":"number","nodeType":"YulLiteral","src":"9275:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"10022:235:60","statements":[{"nodeType":"YulVariableDeclaration","src":"10036:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"10049:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10040:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10082:74:60","statements":[{"nodeType":"YulAssignment","src":"10100:42:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10126:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"10131:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10122:3:60"},"nodeType":"YulFunctionCall","src":"10122:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10109:12:60"},"nodeType":"YulFunctionCall","src":"10109:33:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"10100:5:60"}]}]},"condition":{"name":"len","nodeType":"YulIdentifier","src":"10066:3:60"},"nodeType":"YulIf","src":"10063:93:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"10176:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10235:5:60"},{"name":"len","nodeType":"YulIdentifier","src":"10242:3:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"10182:52:60"},"nodeType":"YulFunctionCall","src":"10182:64:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"10169:6:60"},"nodeType":"YulFunctionCall","src":"10169:78:60"},"nodeType":"YulExpressionStatement","src":"10169:78:60"}]},"nodeType":"YulCase","src":"10014:243:60","value":"default"}],"expression":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"9253:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"9258:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9250:2:60"},"nodeType":"YulFunctionCall","src":"9250:11:60"},"nodeType":"YulSwitch","src":"9243:1014:60"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"9021:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"9027:3:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"9032:3:60","type":""}],"src":"8938:1325:60"},{"body":{"nodeType":"YulBlock","src":"10399:318:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10416:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10427:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10409:6:60"},"nodeType":"YulFunctionCall","src":"10409:21:60"},"nodeType":"YulExpressionStatement","src":"10409:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10450:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10461:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10446:3:60"},"nodeType":"YulFunctionCall","src":"10446:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"10466:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10439:6:60"},"nodeType":"YulFunctionCall","src":"10439:34:60"},"nodeType":"YulExpressionStatement","src":"10439:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10499:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10510:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10495:3:60"},"nodeType":"YulFunctionCall","src":"10495:18:60"},{"name":"value0","nodeType":"YulIdentifier","src":"10515:6:60"},{"name":"value1","nodeType":"YulIdentifier","src":"10523:6:60"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10482:12:60"},"nodeType":"YulFunctionCall","src":"10482:48:60"},"nodeType":"YulExpressionStatement","src":"10482:48:60"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10554:9:60"},{"name":"value1","nodeType":"YulIdentifier","src":"10565:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10550:3:60"},"nodeType":"YulFunctionCall","src":"10550:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"10574:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10546:3:60"},"nodeType":"YulFunctionCall","src":"10546:31:60"},{"kind":"number","nodeType":"YulLiteral","src":"10579:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10539:6:60"},"nodeType":"YulFunctionCall","src":"10539:42:60"},"nodeType":"YulExpressionStatement","src":"10539:42:60"},{"nodeType":"YulAssignment","src":"10590:121:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10606:9:60"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10625:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"10633:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10621:3:60"},"nodeType":"YulFunctionCall","src":"10621:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"10638:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10617:3:60"},"nodeType":"YulFunctionCall","src":"10617:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10602:3:60"},"nodeType":"YulFunctionCall","src":"10602:104:60"},{"kind":"number","nodeType":"YulLiteral","src":"10708:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10598:3:60"},"nodeType":"YulFunctionCall","src":"10598:113:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10590:4:60"}]}]},"name":"abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10360:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10371:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10379:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10390:4:60","type":""}],"src":"10268:449:60"},{"body":{"nodeType":"YulBlock","src":"10896:178:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10913:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10924:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10906:6:60"},"nodeType":"YulFunctionCall","src":"10906:21:60"},"nodeType":"YulExpressionStatement","src":"10906:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10947:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10958:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10943:3:60"},"nodeType":"YulFunctionCall","src":"10943:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"10963:2:60","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10936:6:60"},"nodeType":"YulFunctionCall","src":"10936:30:60"},"nodeType":"YulExpressionStatement","src":"10936:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10986:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10997:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10982:3:60"},"nodeType":"YulFunctionCall","src":"10982:18:60"},{"hexValue":"696e76616c696420636f6d706c69616e6365207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"11002:30:60","type":"","value":"invalid compliance signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10975:6:60"},"nodeType":"YulFunctionCall","src":"10975:58:60"},"nodeType":"YulExpressionStatement","src":"10975:58:60"},{"nodeType":"YulAssignment","src":"11042:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11054:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11065:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11050:3:60"},"nodeType":"YulFunctionCall","src":"11050:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11042:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_174513475f9c53bc5b2e1ee6a828adc62c13c5dd0a72290fb622361272707df6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10873:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10887:4:60","type":""}],"src":"10722:352:60"},{"body":{"nodeType":"YulBlock","src":"11253:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11270:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11281:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11263:6:60"},"nodeType":"YulFunctionCall","src":"11263:21:60"},"nodeType":"YulExpressionStatement","src":"11263:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11304:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11315:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11300:3:60"},"nodeType":"YulFunctionCall","src":"11300:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"11320:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11293:6:60"},"nodeType":"YulFunctionCall","src":"11293:30:60"},"nodeType":"YulExpressionStatement","src":"11293:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11343:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11354:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11339:3:60"},"nodeType":"YulFunctionCall","src":"11339:18:60"},{"hexValue":"6e6f7468696e6720746f20636c61696d","kind":"string","nodeType":"YulLiteral","src":"11359:18:60","type":"","value":"nothing to claim"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11332:6:60"},"nodeType":"YulFunctionCall","src":"11332:46:60"},"nodeType":"YulExpressionStatement","src":"11332:46:60"},{"nodeType":"YulAssignment","src":"11387:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11399:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11410:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11395:3:60"},"nodeType":"YulFunctionCall","src":"11395:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11387:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11230:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11244:4:60","type":""}],"src":"11079:340:60"},{"body":{"nodeType":"YulBlock","src":"11569:265:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11586:3:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11599:2:60","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"11603:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11595:3:60"},"nodeType":"YulFunctionCall","src":"11595:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"11612:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11591:3:60"},"nodeType":"YulFunctionCall","src":"11591:88:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11579:6:60"},"nodeType":"YulFunctionCall","src":"11579:101:60"},"nodeType":"YulExpressionStatement","src":"11579:101:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11700:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"11705:2:60","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11696:3:60"},"nodeType":"YulFunctionCall","src":"11696:12:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11718:3:60","type":"","value":"160"},{"name":"value1","nodeType":"YulIdentifier","src":"11723:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11714:3:60"},"nodeType":"YulFunctionCall","src":"11714:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"11732:66:60","type":"","value":"0xffffffffffffffffffffffff0000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11710:3:60"},"nodeType":"YulFunctionCall","src":"11710:89:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11689:6:60"},"nodeType":"YulFunctionCall","src":"11689:111:60"},"nodeType":"YulExpressionStatement","src":"11689:111:60"},{"nodeType":"YulAssignment","src":"11809:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11820:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"11825:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:60"},"nodeType":"YulFunctionCall","src":"11816:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11809:3:60"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11537:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11542:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11550:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11561:3:60","type":""}],"src":"11424:410:60"},{"body":{"nodeType":"YulBlock","src":"11933:263:60","statements":[{"nodeType":"YulVariableDeclaration","src":"11943:26:60","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11963:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11957:5:60"},"nodeType":"YulFunctionCall","src":"11957:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11947:6:60","type":""}]},{"nodeType":"YulAssignment","src":"11978:32:60","value":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11997:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"12004:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11993:3:60"},"nodeType":"YulFunctionCall","src":"11993:16:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11987:5:60"},"nodeType":"YulFunctionCall","src":"11987:23:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11978:5:60"}]},{"body":{"nodeType":"YulBlock","src":"12047:143:60","statements":[{"nodeType":"YulAssignment","src":"12061:119:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12074:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12089:1:60","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12096:4:60","type":"","value":"0x20"},{"name":"length","nodeType":"YulIdentifier","src":"12102:6:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12092:3:60"},"nodeType":"YulFunctionCall","src":"12092:17:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12085:3:60"},"nodeType":"YulFunctionCall","src":"12085:25:60"},{"kind":"number","nodeType":"YulLiteral","src":"12112:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12081:3:60"},"nodeType":"YulFunctionCall","src":"12081:98:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12070:3:60"},"nodeType":"YulFunctionCall","src":"12070:110:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"12061:5:60"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12025:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"12033:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12022:2:60"},"nodeType":"YulFunctionCall","src":"12022:16:60"},"nodeType":"YulIf","src":"12019:171:60"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"11913:5:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"11923:5:60","type":""}],"src":"11839:357:60"},{"body":{"nodeType":"YulBlock","src":"12375:163:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12392:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12403:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12385:6:60"},"nodeType":"YulFunctionCall","src":"12385:21:60"},"nodeType":"YulExpressionStatement","src":"12385:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12426:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12437:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12422:3:60"},"nodeType":"YulFunctionCall","src":"12422:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"12442:2:60","type":"","value":"13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12415:6:60"},"nodeType":"YulFunctionCall","src":"12415:30:60"},"nodeType":"YulExpressionStatement","src":"12415:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12465:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12476:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12461:3:60"},"nodeType":"YulFunctionCall","src":"12461:18:60"},{"hexValue":"696e76616c69642070726f6f66","kind":"string","nodeType":"YulLiteral","src":"12481:15:60","type":"","value":"invalid proof"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12454:6:60"},"nodeType":"YulFunctionCall","src":"12454:43:60"},"nodeType":"YulExpressionStatement","src":"12454:43:60"},{"nodeType":"YulAssignment","src":"12506:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12518:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12529:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12514:3:60"},"nodeType":"YulFunctionCall","src":"12514:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12506:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12352:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12366:4:60","type":""}],"src":"12201:337:60"},{"body":{"nodeType":"YulBlock","src":"12643:109:60","statements":[{"nodeType":"YulAssignment","src":"12653:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12665:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12676:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12661:3:60"},"nodeType":"YulFunctionCall","src":"12661:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12653:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12695:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12710:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"12718:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12706:3:60"},"nodeType":"YulFunctionCall","src":"12706:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12688:6:60"},"nodeType":"YulFunctionCall","src":"12688:58:60"},"nodeType":"YulExpressionStatement","src":"12688:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12612:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12623:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12634:4:60","type":""}],"src":"12543:209:60"},{"body":{"nodeType":"YulBlock","src":"12838:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"12884:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12893:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12896:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12886:6:60"},"nodeType":"YulFunctionCall","src":"12886:12:60"},"nodeType":"YulExpressionStatement","src":"12886:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12859:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"12868:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12855:3:60"},"nodeType":"YulFunctionCall","src":"12855:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"12880:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12851:3:60"},"nodeType":"YulFunctionCall","src":"12851:32:60"},"nodeType":"YulIf","src":"12848:52:60"},{"nodeType":"YulAssignment","src":"12909:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12925:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12919:5:60"},"nodeType":"YulFunctionCall","src":"12919:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12909:6:60"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12804:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12815:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12827:6:60","type":""}],"src":"12757:184:60"},{"body":{"nodeType":"YulBlock","src":"13103:241:60","statements":[{"nodeType":"YulAssignment","src":"13113:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13125:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13136:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13121:3:60"},"nodeType":"YulFunctionCall","src":"13121:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13113:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"13148:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"13158:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13152:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13216:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13231:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"13239:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13227:3:60"},"nodeType":"YulFunctionCall","src":"13227:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13209:6:60"},"nodeType":"YulFunctionCall","src":"13209:34:60"},"nodeType":"YulExpressionStatement","src":"13209:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13263:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13274:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13259:3:60"},"nodeType":"YulFunctionCall","src":"13259:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13283:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"13291:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13279:3:60"},"nodeType":"YulFunctionCall","src":"13279:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13252:6:60"},"nodeType":"YulFunctionCall","src":"13252:43:60"},"nodeType":"YulExpressionStatement","src":"13252:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13315:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13326:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13311:3:60"},"nodeType":"YulFunctionCall","src":"13311:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"13331:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13304:6:60"},"nodeType":"YulFunctionCall","src":"13304:34:60"},"nodeType":"YulExpressionStatement","src":"13304:34:60"}]},"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":"13056:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13067:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13075:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13083:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13094:4:60","type":""}],"src":"12946:398:60"},{"body":{"nodeType":"YulBlock","src":"13523:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13540:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13551:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13533:6:60"},"nodeType":"YulFunctionCall","src":"13533:21:60"},"nodeType":"YulExpressionStatement","src":"13533:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13574:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13585:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13570:3:60"},"nodeType":"YulFunctionCall","src":"13570:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"13590:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13563:6:60"},"nodeType":"YulFunctionCall","src":"13563:30:60"},"nodeType":"YulExpressionStatement","src":"13563:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13613:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13624:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13609:3:60"},"nodeType":"YulFunctionCall","src":"13609:18:60"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"13629:34:60","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13602:6:60"},"nodeType":"YulFunctionCall","src":"13602:62:60"},"nodeType":"YulExpressionStatement","src":"13602:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13684:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13695:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13680:3:60"},"nodeType":"YulFunctionCall","src":"13680:18:60"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"13700:8:60","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13673:6:60"},"nodeType":"YulFunctionCall","src":"13673:36:60"},"nodeType":"YulExpressionStatement","src":"13673:36:60"},{"nodeType":"YulAssignment","src":"13718:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13730:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13741:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13726:3:60"},"nodeType":"YulFunctionCall","src":"13726:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13718:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13500:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13514:4:60","type":""}],"src":"13349:402:60"},{"body":{"nodeType":"YulBlock","src":"14042:389:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14059:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"14064:66:60","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14052:6:60"},"nodeType":"YulFunctionCall","src":"14052:79:60"},"nodeType":"YulExpressionStatement","src":"14052:79:60"},{"nodeType":"YulVariableDeclaration","src":"14140:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14160:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14154:5:60"},"nodeType":"YulFunctionCall","src":"14154:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14144:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14202:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"14210:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14198:3:60"},"nodeType":"YulFunctionCall","src":"14198:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14221:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"14226:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14217:3:60"},"nodeType":"YulFunctionCall","src":"14217:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"14231:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"14176:21:60"},"nodeType":"YulFunctionCall","src":"14176:62:60"},"nodeType":"YulExpressionStatement","src":"14176:62:60"},{"nodeType":"YulVariableDeclaration","src":"14247:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14261:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"14266:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14257:3:60"},"nodeType":"YulFunctionCall","src":"14257:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14251:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14282:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14304:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14298:5:60"},"nodeType":"YulFunctionCall","src":"14298:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"14286:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14346:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"14354:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14342:3:60"},"nodeType":"YulFunctionCall","src":"14342:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14365:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14369:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14361:3:60"},"nodeType":"YulFunctionCall","src":"14361:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"14374:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"14320:21:60"},"nodeType":"YulFunctionCall","src":"14320:63:60"},"nodeType":"YulExpressionStatement","src":"14320:63:60"},{"nodeType":"YulAssignment","src":"14392:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14407:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"14411:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14403:3:60"},"nodeType":"YulFunctionCall","src":"14403:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"14422:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14399:3:60"},"nodeType":"YulFunctionCall","src":"14399:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14392:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14010:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14015:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14023:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14034:3:60","type":""}],"src":"13756:675:60"},{"body":{"nodeType":"YulBlock","src":"14468:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14485:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14488:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14478:6:60"},"nodeType":"YulFunctionCall","src":"14478:88:60"},"nodeType":"YulExpressionStatement","src":"14478:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14582:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14585:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14575:6:60"},"nodeType":"YulFunctionCall","src":"14575:15:60"},"nodeType":"YulExpressionStatement","src":"14575:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14606:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14609:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14599:6:60"},"nodeType":"YulFunctionCall","src":"14599:15:60"},"nodeType":"YulExpressionStatement","src":"14599:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"14436:184:60"},{"body":{"nodeType":"YulBlock","src":"14799:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14816:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14827:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14809:6:60"},"nodeType":"YulFunctionCall","src":"14809:21:60"},"nodeType":"YulExpressionStatement","src":"14809:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14850:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14861:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14846:3:60"},"nodeType":"YulFunctionCall","src":"14846:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"14866:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14839:6:60"},"nodeType":"YulFunctionCall","src":"14839:30:60"},"nodeType":"YulExpressionStatement","src":"14839:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14889:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14900:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14885:3:60"},"nodeType":"YulFunctionCall","src":"14885:18:60"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"14905:34:60","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14878:6:60"},"nodeType":"YulFunctionCall","src":"14878:62:60"},"nodeType":"YulExpressionStatement","src":"14878:62:60"},{"nodeType":"YulAssignment","src":"14949:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14961:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14972:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14957:3:60"},"nodeType":"YulFunctionCall","src":"14957:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14949:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14776:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14790:4:60","type":""}],"src":"14625:356:60"},{"body":{"nodeType":"YulBlock","src":"15160:170:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15177:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15188:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15170:6:60"},"nodeType":"YulFunctionCall","src":"15170:21:60"},"nodeType":"YulExpressionStatement","src":"15170:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15211:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15222:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15207:3:60"},"nodeType":"YulFunctionCall","src":"15207:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"15227:2:60","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15200:6:60"},"nodeType":"YulFunctionCall","src":"15200:30:60"},"nodeType":"YulExpressionStatement","src":"15200:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15250:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15261:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15246:3:60"},"nodeType":"YulFunctionCall","src":"15246:18:60"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"15266:22:60","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15239:6:60"},"nodeType":"YulFunctionCall","src":"15239:50:60"},"nodeType":"YulExpressionStatement","src":"15239:50:60"},{"nodeType":"YulAssignment","src":"15298:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15310:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15321:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15306:3:60"},"nodeType":"YulFunctionCall","src":"15306:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15298:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15137:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15151:4:60","type":""}],"src":"14986:344:60"},{"body":{"nodeType":"YulBlock","src":"15509:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15526:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15537:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15519:6:60"},"nodeType":"YulFunctionCall","src":"15519:21:60"},"nodeType":"YulExpressionStatement","src":"15519:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15560:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15571:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15556:3:60"},"nodeType":"YulFunctionCall","src":"15556:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"15576:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15549:6:60"},"nodeType":"YulFunctionCall","src":"15549:30:60"},"nodeType":"YulExpressionStatement","src":"15549:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15599:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15610:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15595:3:60"},"nodeType":"YulFunctionCall","src":"15595:18:60"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"15615:18:60","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15588:6:60"},"nodeType":"YulFunctionCall","src":"15588:46:60"},"nodeType":"YulExpressionStatement","src":"15588:46:60"},{"nodeType":"YulAssignment","src":"15643:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15655:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15666:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15651:3:60"},"nodeType":"YulFunctionCall","src":"15651:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15643:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15486:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15500:4:60","type":""}],"src":"15335:340:60"},{"body":{"nodeType":"YulBlock","src":"15712:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15729:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15732:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15722:6:60"},"nodeType":"YulFunctionCall","src":"15722:88:60"},"nodeType":"YulExpressionStatement","src":"15722:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15826:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15829:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15819:6:60"},"nodeType":"YulFunctionCall","src":"15819:15:60"},"nodeType":"YulExpressionStatement","src":"15819:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15850:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15853:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15843:6:60"},"nodeType":"YulFunctionCall","src":"15843:15:60"},"nodeType":"YulExpressionStatement","src":"15843:15:60"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"15680:184:60"},{"body":{"nodeType":"YulBlock","src":"16043:174:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16060:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16071:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16053:6:60"},"nodeType":"YulFunctionCall","src":"16053:21:60"},"nodeType":"YulExpressionStatement","src":"16053:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16094:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16105:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16090:3:60"},"nodeType":"YulFunctionCall","src":"16090:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"16110:2:60","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16083:6:60"},"nodeType":"YulFunctionCall","src":"16083:30:60"},"nodeType":"YulExpressionStatement","src":"16083:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16133:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16144:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16129:3:60"},"nodeType":"YulFunctionCall","src":"16129:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"16149:26:60","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16122:6:60"},"nodeType":"YulFunctionCall","src":"16122:54:60"},"nodeType":"YulExpressionStatement","src":"16122:54:60"},{"nodeType":"YulAssignment","src":"16185:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16197:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16208:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16193:3:60"},"nodeType":"YulFunctionCall","src":"16193:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16185:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16020:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16034:4:60","type":""}],"src":"15869:348:60"},{"body":{"nodeType":"YulBlock","src":"16396:181:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16413:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16424:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16406:6:60"},"nodeType":"YulFunctionCall","src":"16406:21:60"},"nodeType":"YulExpressionStatement","src":"16406:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16447:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16458:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16443:3:60"},"nodeType":"YulFunctionCall","src":"16443:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:60","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16436:6:60"},"nodeType":"YulFunctionCall","src":"16436:30:60"},"nodeType":"YulExpressionStatement","src":"16436:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16486:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16497:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16482:3:60"},"nodeType":"YulFunctionCall","src":"16482:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nodeType":"YulLiteral","src":"16502:33:60","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16475:6:60"},"nodeType":"YulFunctionCall","src":"16475:61:60"},"nodeType":"YulExpressionStatement","src":"16475:61:60"},{"nodeType":"YulAssignment","src":"16545:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16557:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16568:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16553:3:60"},"nodeType":"YulFunctionCall","src":"16553:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16545:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16373:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16387:4:60","type":""}],"src":"16222:355:60"},{"body":{"nodeType":"YulBlock","src":"16756:224:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16773:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16784:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16766:6:60"},"nodeType":"YulFunctionCall","src":"16766:21:60"},"nodeType":"YulExpressionStatement","src":"16766:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16807:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16818:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16803:3:60"},"nodeType":"YulFunctionCall","src":"16803:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"16823:2:60","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16796:6:60"},"nodeType":"YulFunctionCall","src":"16796:30:60"},"nodeType":"YulExpressionStatement","src":"16796:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16846:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16857:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16842:3:60"},"nodeType":"YulFunctionCall","src":"16842:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nodeType":"YulLiteral","src":"16862:34:60","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16835:6:60"},"nodeType":"YulFunctionCall","src":"16835:62:60"},"nodeType":"YulExpressionStatement","src":"16835:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16917:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16928:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16913:3:60"},"nodeType":"YulFunctionCall","src":"16913:18:60"},{"hexValue":"7565","kind":"string","nodeType":"YulLiteral","src":"16933:4:60","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16906:6:60"},"nodeType":"YulFunctionCall","src":"16906:32:60"},"nodeType":"YulExpressionStatement","src":"16906:32:60"},{"nodeType":"YulAssignment","src":"16947:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16959:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16970:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16955:3:60"},"nodeType":"YulFunctionCall","src":"16955:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16947:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16733:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16747:4:60","type":""}],"src":"16582:398:60"},{"body":{"nodeType":"YulBlock","src":"17017:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17034:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17037:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17027:6:60"},"nodeType":"YulFunctionCall","src":"17027:88:60"},"nodeType":"YulExpressionStatement","src":"17027:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17131:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17134:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17124:6:60"},"nodeType":"YulFunctionCall","src":"17124:15:60"},"nodeType":"YulExpressionStatement","src":"17124:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17155:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17158:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17148:6:60"},"nodeType":"YulFunctionCall","src":"17148:15:60"},"nodeType":"YulExpressionStatement","src":"17148:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"16985:184:60"},{"body":{"nodeType":"YulBlock","src":"17221:302:60","statements":[{"body":{"nodeType":"YulBlock","src":"17320:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17341:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17344:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17334:6:60"},"nodeType":"YulFunctionCall","src":"17334:88:60"},"nodeType":"YulExpressionStatement","src":"17334:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17442:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17445:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17435:6:60"},"nodeType":"YulFunctionCall","src":"17435:15:60"},"nodeType":"YulExpressionStatement","src":"17435:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17470:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17473:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17463:6:60"},"nodeType":"YulFunctionCall","src":"17463:15:60"},"nodeType":"YulExpressionStatement","src":"17463:15:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17237:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17244:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17234:2:60"},"nodeType":"YulFunctionCall","src":"17234:77:60"},"nodeType":"YulIf","src":"17231:257:60"},{"nodeType":"YulAssignment","src":"17497:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17508:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17515:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17504:3:60"},"nodeType":"YulFunctionCall","src":"17504:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"17497:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17203:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"17213:3:60","type":""}],"src":"17174:349:60"},{"body":{"nodeType":"YulBlock","src":"17709:217:60","statements":[{"nodeType":"YulAssignment","src":"17719:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17731:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17742:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17727:3:60"},"nodeType":"YulFunctionCall","src":"17727:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17719:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17762:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"17773:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17755:6:60"},"nodeType":"YulFunctionCall","src":"17755:25:60"},"nodeType":"YulExpressionStatement","src":"17755:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17800:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17811:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17796:3:60"},"nodeType":"YulFunctionCall","src":"17796:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17820:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17828:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17816:3:60"},"nodeType":"YulFunctionCall","src":"17816:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17789:6:60"},"nodeType":"YulFunctionCall","src":"17789:45:60"},"nodeType":"YulExpressionStatement","src":"17789:45:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17854:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17865:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17850:3:60"},"nodeType":"YulFunctionCall","src":"17850:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"17870:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17843:6:60"},"nodeType":"YulFunctionCall","src":"17843:34:60"},"nodeType":"YulExpressionStatement","src":"17843:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17897:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17908:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17893:3:60"},"nodeType":"YulFunctionCall","src":"17893:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"17913:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17886:6:60"},"nodeType":"YulFunctionCall","src":"17886:34:60"},"nodeType":"YulExpressionStatement","src":"17886:34:60"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17654:9:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17665:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17673:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17681:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17689:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17700:4:60","type":""}],"src":"17528:398:60"}]},"contents":"{\n    { }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IPangolinStakingPositions_$11238__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function validator_revert_contract_IERC20(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IERC20_$1502t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_decode_uint96(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_array_bytes32_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint96t_array$_t_bytes32_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint96(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_addresst_uint96t_array$_t_bytes32_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IERC20(value)\n        value0 := value\n        value1 := abi_decode_uint96(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_acbe3b8d6975cf09b59753f350c313cda1cd9e4edbb384f515b451dfd2582156__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"merkle root not set\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"transfer failed\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), value1)\n        calldatacopy(add(headStart, 64), value0, value1)\n        mstore(add(add(headStart, value1), 64), 0)\n        tail := add(add(headStart, and(add(value1, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_174513475f9c53bc5b2e1ee6a828adc62c13c5dd0a72290fb622361272707df6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"invalid compliance signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_57eb9104ba667545ede97b4e0c21741bfc9a1ff0c7227c5bb3c787edef8af37d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"nothing to claim\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_address_t_uint96__to_t_address_t_uint96__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        mstore(add(pos, 20), and(shl(160, value1), 0xffffffffffffffffffffffff0000000000000000000000000000000000000000))\n        end := add(pos, 32)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_cfa179d50ad7851ac140a84fb212f48699dbd00170b3afe087b0d09f632d1624__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"invalid proof\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 26), length)\n        let _1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 26), length_1)\n        end := add(add(_1, length_1), 26)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"11255":[{"length":32,"start":603}],"11258":[{"length":32,"start":355},{"length":32,"start":2116},{"length":32,"start":2297}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b25780639bab65b811610081578063c13f573e11610066578063c13f573e14610290578063c1b0eb94146102a3578063f2fde38b146102b657600080fd5b80639bab65b814610256578063be8cbeed1461027d57600080fd5b8063715018a6146102225780637cb647591461022a5780638456cb591461023d5780638da5cb5b1461024557600080fd5b80633f4ba83a116100ee5780633f4ba83a1461019d5780635705ae43146101a75780635c975abb146101ba57806371417b32146101d757600080fd5b80630b22f24a146101205780632d2069ec1461013e5780632eb4a7ab1461015557806333c88ff61461015e575b600080fd5b6101286102c9565b6040516101359190611188565b60405180910390f35b61014760045481565b604051908152602001610135565b61014760025481565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610135565b6101a5610357565b005b6101a56101b53660046111d0565b6103c0565b600054600160a01b900460ff166040519015158152602001610135565b6102056101e53660046111fc565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610135565b6101a56104aa565b6101a5610238366004611219565b6104bc565b6101a56104ff565b6000546001600160a01b0316610185565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6101a561028b366004611274565b61050f565b6101a561029e36600461131c565b6105ac565b6101a56102b136600461139d565b6105c1565b6101a56102c43660046111fc565b6109a8565b600380546102d690611430565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611430565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b505050505081565b61035f610bf6565b6002546000036103b65760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6103be610c50565b565b6103c8610cc0565b6103d0610bf6565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a919061146a565b6104a65760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c6564000000000000000000000000000000000060448201526064016103ad565b5050565b6104b2610bf6565b6103be6000610d19565b6104c4610cc0565b6104cc610bf6565b600281905560405181907f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b90600090a250565b610507610bf6565b6103be610d81565b610517610bf6565b600061055883838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a3892505050565b60048190559050600361056c8385836114f1565b50807fe8d6349745d718fbb56b30e41d99dbe12fc69f0a8d7401dac98476504c027a43848460405161059f9291906115b1565b60405180910390a2505050565b6105ba3386868686866105c1565b5050505050565b6105c9610ddf565b336001600160a01b031661061683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060045492915050610e39565b6001600160a01b03161461066c5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420636f6d706c69616e6365207369676e61747572650000000060448201526064016103ad565b336000908152600160205260409020546bffffffffffffffffffffffff90811690861681106106dd5760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d0000000000000000000000000000000060448201526064016103ad565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a089901b16603482015260009101604051602081830303815290604052610741906115e0565b9050610784868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610e5d565b6107d05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f660000000000000000000000000000000000000060448201526064016103ad565b3360009081526001602052604080822080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8b81169190911790915590517fa0712d680000000000000000000000000000000000000000000000000000000081529884900390811660048a0152976001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a0712d68906024016020604051808303816000875af115801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190611604565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038b81166024830152604482018390529192507f0000000000000000000000000000000000000000000000000000000000000000909116906342842e0e90606401600060405180830381600087803b15801561093f57600080fd5b505af1158015610953573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff8b1692506001600160a01b038c16915033907ff9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab790600090a4505050505050505050565b6109b0610bf6565b6001600160a01b038116610a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ad565b610a3581610d19565b50565b6000610a448251610a73565b82604051602001610a5692919061161d565b604051602081830303815290604052805190602001209050919050565b60606000610a8083610b13565b600101905060008167ffffffffffffffff811115610aa057610aa061148c565b6040519080825280601f01601f191660200182016040528015610aca576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610ad457509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610b5c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610b88576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610ba657662386f26fc10000830492506010015b6305f5e1008310610bbe576305f5e100830492506008015b6127108310610bd257612710830492506004015b60648310610be4576064830492506002015b600a8310610bf0576001015b92915050565b6000546001600160a01b031633146103be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ad565b610c58610cc0565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054600160a01b900460ff166103be5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016103ad565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d89610ddf565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ca33390565b600054600160a01b900460ff16156103be5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016103ad565b6000806000610e488585610e73565b91509150610e5581610eb8565b509392505050565b600082610e6a858461101d565b14949350505050565b6000808251604103610ea95760208301516040840151606085015160001a610e9d87828585611062565b94509450505050610eb1565b506000905060025b9250929050565b6000816004811115610ecc57610ecc611678565b03610ed45750565b6001816004811115610ee857610ee8611678565b03610f355760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103ad565b6002816004811115610f4957610f49611678565b03610f965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103ad565b6003816004811115610faa57610faa611678565b03610a355760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103ad565b600081815b8451811015610e555761104e828683815181106110415761104161168e565b6020026020010151611126565b91508061105a816116a4565b915050611022565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611099575060009050600361111d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110ed573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111165760006001925092505061111d565b9150600090505b94509492505050565b6000818310611142576000828152602084905260409020611151565b60008381526020839052604090205b9392505050565b60005b8381101561117357818101518382015260200161115b565b83811115611182576000848401525b50505050565b60208152600082518060208401526111a7816040850160208701611158565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610a3557600080fd5b600080604083850312156111e357600080fd5b82356111ee816111bb565b946020939093013593505050565b60006020828403121561120e57600080fd5b8135611151816111bb565b60006020828403121561122b57600080fd5b5035919050565b60008083601f84011261124457600080fd5b50813567ffffffffffffffff81111561125c57600080fd5b602083019150836020828501011115610eb157600080fd5b6000806020838503121561128757600080fd5b823567ffffffffffffffff81111561129e57600080fd5b6112aa85828601611232565b90969095509350505050565b80356bffffffffffffffffffffffff811681146112d257600080fd5b919050565b60008083601f8401126112e957600080fd5b50813567ffffffffffffffff81111561130157600080fd5b6020830191508360208260051b8501011115610eb157600080fd5b60008060008060006060868803121561133457600080fd5b61133d866112b6565b9450602086013567ffffffffffffffff8082111561135a57600080fd5b61136689838a016112d7565b9096509450604088013591508082111561137f57600080fd5b5061138c88828901611232565b969995985093965092949392505050565b600080600080600080608087890312156113b657600080fd5b86356113c1816111bb565b95506113cf602088016112b6565b9450604087013567ffffffffffffffff808211156113ec57600080fd5b6113f88a838b016112d7565b9096509450606089013591508082111561141157600080fd5b5061141e89828a01611232565b979a9699509497509295939492505050565b600181811c9082168061144457607f821691505b60208210810361146457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561147c57600080fd5b8151801515811461115157600080fd5b634e487b7160e01b600052604160045260246000fd5b601f8211156114ec57600081815260208120601f850160051c810160208610156114c95750805b601f850160051c820191505b818110156114e8578281556001016114d5565b5050505b505050565b67ffffffffffffffff8311156115095761150961148c565b61151d836115178354611430565b836114a2565b6000601f84116001811461155157600085156115395750838201355b600019600387901b1c1916600186901b1783556105ba565b600083815260209020601f19861690835b828110156115825786850135825560209485019460019092019101611562565b508682101561159f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b805160208083015191908110156114645760001960209190910360031b1b16919050565b60006020828403121561161657600080fd5b5051919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161165581601a850160208801611158565b83519083019061166c81601a840160208801611158565b01601a01949350505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060001982036116c557634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f44b86a0793f70a48d7976bb8eca58cbffa6fcbd7c0ca3e15b3f709712a8a07d64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x9BAB65B8 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xC13F573E GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xC13F573E EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xC1B0EB94 EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9BAB65B8 EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xBE8CBEED EQ PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0x7CB64759 EQ PUSH2 0x22A JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x245 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xEE JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x19D JUMPI DUP1 PUSH4 0x5705AE43 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x71417B32 EQ PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB22F24A EQ PUSH2 0x120 JUMPI DUP1 PUSH4 0x2D2069EC EQ PUSH2 0x13E JUMPI DUP1 PUSH4 0x2EB4A7AB EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x33C88FF6 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x128 PUSH2 0x2C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x135 SWAP2 SWAP1 PUSH2 0x1188 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x147 PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x185 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x357 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A5 PUSH2 0x1B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x11D0 JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x11FC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x135 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x238 CALLDATASIZE PUSH1 0x4 PUSH2 0x1219 JUMP JUMPDEST PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x185 JUMP JUMPDEST PUSH2 0x185 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x1274 JUMP JUMPDEST PUSH2 0x50F JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x131C JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x139D JUMP JUMPDEST PUSH2 0x5C1 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x11FC JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x2D6 SWAP1 PUSH2 0x1430 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x302 SWAP1 PUSH2 0x1430 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x34F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x324 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x34F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x332 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x35F PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SUB PUSH2 0x3B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6D65726B6C6520726F6F74206E6F742073657400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3BE PUSH2 0xC50 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3C8 PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x436 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x45A SWAP2 SWAP1 PUSH2 0x146A JUMP JUMPDEST PUSH2 0x4A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x7472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x4B2 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x3BE PUSH1 0x0 PUSH2 0xD19 JUMP JUMPDEST PUSH2 0x4C4 PUSH2 0xCC0 JUMP JUMPDEST PUSH2 0x4CC PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH32 0x42CBC405E4DBF1B691E85B9A34B08ECFCF7A9AD9078BF4D645CCFA1FAC11C10B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH2 0x507 PUSH2 0xBF6 JUMP JUMPDEST PUSH2 0x3BE PUSH2 0xD81 JUMP JUMPDEST PUSH2 0x517 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x558 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0xA38 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE SWAP1 POP PUSH1 0x3 PUSH2 0x56C DUP4 DUP6 DUP4 PUSH2 0x14F1 JUMP JUMPDEST POP DUP1 PUSH32 0xE8D6349745D718FBB56B30E41D99DBE12FC69F0A8D7401DAC98476504C027A43 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x59F SWAP3 SWAP2 SWAP1 PUSH2 0x15B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x5BA CALLER DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x5C1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5C9 PUSH2 0xDDF JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x616 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x4 SLOAD SWAP3 SWAP2 POP POP PUSH2 0xE39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x66C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C696420636F6D706C69616E6365207369676E617475726500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP7 AND DUP2 LT PUSH2 0x6DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6E6F7468696E6720746F20636C61696D00000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 PUSH1 0xA0 DUP10 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x741 SWAP1 PUSH2 0x15E0 JUMP JUMPDEST SWAP1 POP PUSH2 0x784 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x2 SLOAD SWAP2 POP DUP5 SWAP1 POP PUSH2 0xE5D JUMP JUMPDEST PUSH2 0x7D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x696E76616C69642070726F6F6600000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH32 0xA0712D6800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP9 DUP5 SWAP1 SUB SWAP1 DUP2 AND PUSH1 0x4 DUP11 ADD MSTORE SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA0712D68 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x88D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B1 SWAP2 SWAP1 PUSH2 0x1604 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42842E0E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x93F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x953 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND SWAP2 POP CALLER SWAP1 PUSH32 0xF9DDF109EB32AE61850B998BB6A5BFBCB1B0D513AB98D1F98D5FF43D977B9AB7 SWAP1 PUSH1 0x0 SWAP1 LOG4 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9B0 PUSH2 0xBF6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH2 0xA35 DUP2 PUSH2 0xD19 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA44 DUP3 MLOAD PUSH2 0xA73 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA56 SWAP3 SWAP2 SWAP1 PUSH2 0x161D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xA80 DUP4 PUSH2 0xB13 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAA0 JUMPI PUSH2 0xAA0 PUSH2 0x148C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xACA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xAD4 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0xB5C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xB88 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xBA6 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xBBE JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xBD2 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xBE4 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xBF0 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH2 0xC58 PUSH2 0xCC0 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xD89 PUSH2 0xDDF JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0xCA3 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xE48 DUP6 DUP6 PUSH2 0xE73 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xE55 DUP2 PUSH2 0xEB8 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xE6A DUP6 DUP5 PUSH2 0x101D JUMP JUMPDEST EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0xEA9 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0xE9D DUP8 DUP3 DUP6 DUP6 PUSH2 0x1062 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0xEB1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xECC JUMPI PUSH2 0xECC PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xED4 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xEE8 JUMPI PUSH2 0xEE8 PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xF35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xF49 JUMPI PUSH2 0xF49 PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xF96 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xFAA JUMPI PUSH2 0xFAA PUSH2 0x1678 JUMP JUMPDEST SUB PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AD JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xE55 JUMPI PUSH2 0x104E DUP3 DUP7 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1041 JUMPI PUSH2 0x1041 PUSH2 0x168E JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x1126 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x105A DUP2 PUSH2 0x16A4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1022 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x1099 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x111D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1116 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x111D JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1142 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1151 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP4 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1173 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x115B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1182 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x11A7 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1158 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x11EE DUP2 PUSH2 0x11BB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x120E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1151 DUP2 PUSH2 0x11BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x122B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xEB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x129E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12AA DUP6 DUP3 DUP7 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x12D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x12E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0xEB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x133D DUP7 PUSH2 0x12B6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x135A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1366 DUP10 DUP4 DUP11 ADD PUSH2 0x12D7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x137F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138C DUP9 DUP3 DUP10 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x13B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH2 0x13C1 DUP2 PUSH2 0x11BB JUMP JUMPDEST SWAP6 POP PUSH2 0x13CF PUSH1 0x20 DUP9 ADD PUSH2 0x12B6 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x13EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13F8 DUP11 DUP4 DUP12 ADD PUSH2 0x12D7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x141E DUP10 DUP3 DUP11 ADD PUSH2 0x1232 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1444 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1464 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x147C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x14EC JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x14C9 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x14E8 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x14D5 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x1509 JUMPI PUSH2 0x1509 PUSH2 0x148C JUMP JUMPDEST PUSH2 0x151D DUP4 PUSH2 0x1517 DUP4 SLOAD PUSH2 0x1430 JUMP JUMPDEST DUP4 PUSH2 0x14A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1551 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x1539 JUMPI POP DUP4 DUP3 ADD CALLDATALOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP7 SWAP1 SHL OR DUP4 SSTORE PUSH2 0x5BA JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1582 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x1562 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x159F JUMPI PUSH1 0x0 NOT PUSH1 0xF8 DUP9 PUSH1 0x3 SHL AND SHR NOT DUP5 DUP8 ADD CALLDATALOAD AND DUP2 SSTORE JUMPDEST POP POP PUSH1 0x1 DUP6 PUSH1 0x1 SHL ADD DUP4 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x40 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x40 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x1464 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1616 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1655 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1158 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x166C DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1158 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x16C5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL 0x4B DUP7 LOG0 PUSH26 0x3F70A48D7976BB8ECA58CBFFA6FCBD7C0CA3E15B3F709712A8A0 PUSH30 0x64736F6C634300080F003300000000000000000000000000000000000000 ","sourceMap":"554:3403:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;854:245;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1106:81;;;;;;;;;870:25:60;;;858:2;843:18;1106:81:42;724:177:60;822:25:42;;;;;;769:46;;;;;;;;-1:-1:-1;;;;;1105:55:60;;;1087:74;;1075:2;1060:18;769:46:42;906:261:60;3826:128:42;;;:::i;:::-;;3589:158;;;;;;:::i;:::-;;:::i;1615:84:6:-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1615:84;;1847:14:60;;1840:22;1822:41;;1810:2;1795:18;1615:84:6;1682:187:60;680:48:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2308:26:60;2296:39;;;2278:58;;2266:2;2251:18;680:48:42;2134:208:60;1831:101:4;;;:::i;3416:165:42:-;;;;;;:::i;:::-;;:::i;3755:63::-;;;:::i;1201:85:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;735:27:42;;;;;3049:359;;;;;;:::i;:::-;;:::i;1995:201::-;;;;;;:::i;:::-;;:::i;2204:837::-;;;;;;:::i;:::-;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;854:245:42:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3826:128::-;1094:13:4;:11;:13::i;:::-;3883:10:42::1;::::0;3897:4:::1;3883:18:::0;3875:50:::1;;;::::0;-1:-1:-1;;;3875:50:42;;6768:2:60;3875:50:42::1;::::0;::::1;6750:21:60::0;6807:2;6787:18;;;6780:30;6846:21;6826:18;;;6819:49;6885:18;;3875:50:42::1;;;;;;;;;3936:10;:8;:10::i;:::-;3826:128::o:0;3589:158::-;1486:16:6;:14;:16::i;:::-;1094:13:4::1;:11;:13::i;:::-;3685:34:42::2;::::0;;;;3700:10:::2;3685:34;::::0;::::2;7088:74:60::0;7178:18;;;7171:34;;;-1:-1:-1;;;;;3685:14:42;::::2;::::0;::::2;::::0;7061:18:60;;3685:34:42::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3677:62;;;::::0;-1:-1:-1;;;3677:62:42;;7700:2:60;3677:62:42::2;::::0;::::2;7682:21:60::0;7739:2;7719:18;;;7712:30;7778:17;7758:18;;;7751:45;7813:18;;3677:62:42::2;7498:339:60::0;3677:62:42::2;3589:158:::0;;:::o;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;3416:165:42:-:0;1486:16:6;:14;:16::i;:::-;1094:13:4::1;:11;:13::i;:::-;3503:10:42::2;:26:::0;;;3545:28:::2;::::0;3516:13;;3545:28:::2;::::0;;;::::2;3416:165:::0;:::o;3755:63::-;1094:13:4;:11;:13::i;:::-;3802:8:42::1;:6;:8::i;3049:359::-:0;1094:13:4;:11;:13::i;:::-;3147:25:42::1;3175:52;3181:20;;3175:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;3175:50:42::1;::::0;-1:-1:-1;;;3175:52:42:i:1;:::-;3238:14;:34:::0;;;3147:80;-1:-1:-1;3283:17:42::1;:40;3303:20:::0;;3283:17;:40:::1;:::i;:::-;;3360:17;3339:61;3379:20;;3339:61;;;;;;;:::i;:::-;;;;;;;;3136:272;3049:359:::0;;:::o;1995:201::-;2137:51;2145:10;2157:6;2165:11;;2178:9;;2137:7;:51::i;:::-;1995:201;;;;;:::o;2204:837::-;1239:19:6;:17;:19::i;:::-;2426:10:42::1;-1:-1:-1::0;;;;;2389:47:42::1;:33;2412:9;;2389:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;2389:14:42::1;::::0;;:33;-1:-1:-1;;2389:22:42::1;:33::i;:::-;-1:-1:-1::0;;;;;2389:47:42::1;;2381:88;;;::::0;-1:-1:-1;;;2381:88:42;;10924:2:60;2381:88:42::1;::::0;::::1;10906:21:60::0;10963:2;10943:18;;;10936:30;11002;10982:18;;;10975:58;11050:18;;2381:88:42::1;10722:352:60::0;2381:88:42::1;2522:10;2480:24;2507:26:::0;;;:14:::1;:26;::::0;;;;;::::1;::::0;;::::1;::::0;2552;::::1;::::0;::::1;2544:55;;;::::0;-1:-1:-1;;;2544:55:42;;11281:2:60;2544:55:42::1;::::0;::::1;11263:21:60::0;11320:2;11300:18;;;11293:30;11359:18;11339;;;11332:46;11395:18;;2544:55:42::1;11079:340:60::0;2544:55:42::1;2633:36;::::0;;-1:-1:-1;;2650:10:42::1;11599:2:60::0;11595:15;11591:88;2633:36:42::1;::::0;::::1;11579:101:60::0;11732:66;11718:3;11714:16;;;11710:89;11696:12;;;11689:111;2610:12:42::1;::::0;11816::60;2633:36:42::1;;;;;;;;;;;;2625:45;;;:::i;:::-;2610:60;;2689:49;2708:11;;2689:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;2721:10:42::1;::::0;;-1:-1:-1;2733:4:42;;-1:-1:-1;2689:18:42::1;:49::i;:::-;2681:75;;;::::0;-1:-1:-1;;;2681:75:42;;12403:2:60;2681:75:42::1;::::0;::::1;12385:21:60::0;12442:2;12422:18;;;12415:30;12481:15;12461:18;;;12454:43;12514:18;;2681:75:42::1;12201:337:60::0;2681:75:42::1;2782:10;2767:26;::::0;;;:14:::1;:26;::::0;;;;;:35;;-1:-1:-1;;2767:35:42::1;;::::0;;::::1;::::0;;;::::1;::::0;;;2908:16;;;;;2838:27;;;::::1;2296:39:60::0;;;2908:16:42::1;::::0;::::1;2278:58:60::0;2838:27:42;-1:-1:-1;;;;;2908:3:42::1;:8;::::0;::::1;::::0;2251:18:60;;2908:16:42::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2935:51;::::0;;;;2964:4:::1;2935:51;::::0;::::1;13209:34:60::0;-1:-1:-1;;;;;13279:15:60;;;13259:18;;;13252:43;13311:18;;;13304:34;;;2887:37:42;;-1:-1:-1;2935:3:42::1;:20:::0;;::::1;::::0;::::1;::::0;13121:18:60;;2935:51:42::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3002:31:42::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;;3002:31:42;::::1;::::0;-1:-1:-1;3010:10:42::1;::::0;3002:31:::1;::::0;;;::::1;2370:671;;;2204:837:::0;;;;;;:::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;13551:2:60;2161:73:4::1;::::0;::::1;13533:21:60::0;13590:2;13570:18;;;13563:30;13629:34;13609:18;;;13602:62;13700:8;13680:18;;;13673:36;13726:19;;2161:73:4::1;13349:402:60::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;7806:196:27:-;7877:7;7964:26;7981:1;:8;7964:16;:26::i;:::-;7992:1;7913:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7903:92;;;;;;7896:99;;7806:196;;;:::o;415:696:26:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:26;-1:-1:-1;572:41:26;-1:-1:-1;733:28:26;;;749:2;733:28;788:280;-1:-1:-1;;819:5:26;958:8;953:2;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:26;788:280;1032:21;-1:-1:-1;1088:6:26;415:696;-1:-1:-1;;;415:696:26:o;9889:890:32:-;9942:7;;10026:6;10017:15;;10013:99;;10061:6;10052:15;;;-1:-1:-1;10095:2:32;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:32;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:32;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:32;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:32;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:32;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10676:64;10766:6;9889:890;-1:-1:-1;;9889:890:32:o;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:24;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;14827:2:60;1414:68:4;;;14809:21:60;;;14846:18;;;14839:30;14905:34;14885:18;;;14878:62;14957:18;;1414:68:4;14625:356:60;2433:117:6;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;;::::1;::::0;;2521:22:::1;719:10:24::0;2530:12:6::1;2521:22;::::0;-1:-1:-1;;;;;1105:55:60;;;1087:74;;1075:2;1060:18;2521:22:6::1;;;;;;;2433:117::o:0;1945:106::-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;2003:41;;;;-1:-1:-1;;;2003:41:6;;15188:2:60;2003:41:6;;;15170:21:60;15227:2;15207:18;;;15200:30;15266:22;15246:18;;;15239:50;15306:18;;2003:41:6;14986:344:60;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:6:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;;::::1;-1:-1:-1::0;;;2245:14:6::1;::::0;;2274:20:::1;2281:12;719:10:24::0;;640:96;1767:106:6;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:6;;15537:2:60;1828:38:6;;;15519:21:60;15576:2;15556:18;;;15549:30;15615:18;15595;;;15588:46;15651:18;;1828:38:6;15335:340:60;3661:227:27;3739:7;3759:17;3778:18;3800:27;3811:4;3817:9;3800:10;:27::i;:::-;3758:69;;;;3837:18;3849:5;3837:11;:18::i;:::-;-1:-1:-1;3872:9:27;3661:227;-1:-1:-1;;;3661:227:27:o;1156:184:29:-;1277:4;1329;1300:25;1313:5;1320:4;1300:12;:25::i;:::-;:33;;1156:184;-1:-1:-1;;;;1156:184:29:o;2145:730:27:-;2226:7;2235:12;2263:9;:16;2283:2;2263:22;2259:610;;2599:4;2584:20;;2578:27;2648:4;2633:20;;2627:27;2705:4;2690:20;;2684:27;2301:9;2676:36;2746:25;2757:4;2676:36;2578:27;2627;2746:10;:25::i;:::-;2739:32;;;;;;;;;2259:610;-1:-1:-1;2818:1:27;;-1:-1:-1;2822:35:27;2259:610;2145:730;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:27;;16071:2:60;788:34:27;;;16053:21:60;16110:2;16090:18;;;16083:30;16149:26;16129:18;;;16122:54;16193:18;;788:34:27;15869:348:60;730:345:27;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:27;;16424:2:60;903:41:27;;;16406:21:60;16463:2;16443:18;;;16436:30;16502:33;16482:18;;;16475:61;16553:18;;903:41:27;16222:355:60;839:236:27;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:27;;16784:2:60;1020:44:27;;;16766:21:60;16823:2;16803:18;;;16796:30;16862:34;16842:18;;;16835:62;16933:4;16913:18;;;16906:32;16955:19;;1020:44:27;16582:398:60;1994:290:29;2077:7;2119:4;2077:7;2133:116;2157:5;:12;2153:1;:16;2133:116;;;2205:33;2215:12;2229:5;2235:1;2229:8;;;;;;;;:::i;:::-;;;;;;;2205:9;:33::i;:::-;2190:48;-1:-1:-1;2171:3:29;;;;:::i;:::-;;;;2133:116;;5069:1494:27;5195:7;;6119:66;6106:79;;6102:161;;;-1:-1:-1;6217:1:27;;-1:-1:-1;6221:30:27;6201:51;;6102:161;6374:24;;;6357:14;6374:24;;;;;;;;;17755:25:60;;;17828:4;17816:17;;17796:18;;;17789:45;;;;17850:18;;;17843:34;;;17893:18;;;17886:34;;;6374:24:27;;17727:19:60;;6374:24:27;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6374:24:27;;-1:-1:-1;;6374:24:27;;;-1:-1:-1;;;;;;;6412:20:27;;6408:101;;6464:1;6468:29;6448:50;;;;;;;6408:101;6527:6;-1:-1:-1;6535:20:27;;-1:-1:-1;5069:1494:27;;;;;;;;:::o;8879:147:29:-;8942:7;8972:1;8968;:5;:51;;9100:13;9191:15;;;9226:4;9219:15;;;9272:4;9256:21;;8968:51;;;9100:13;9191:15;;;9226:4;9219:15;;;9272:4;9256:21;;8976:20;8961:58;8879:147;-1:-1:-1;;;8879:147:29:o;14:258:60:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:442::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;635:2;623:15;-1:-1:-1;;619:88:60;604:104;;;;710:2;600:113;;277:442;-1:-1:-1;;277:442:60:o;1172:162::-;-1:-1:-1;;;;;1259:5:60;1255:54;1248:5;1245:65;1235:93;;1324:1;1321;1314:12;1339:338;1422:6;1430;1483:2;1471:9;1462:7;1458:23;1454:32;1451:52;;;1499:1;1496;1489:12;1451:52;1538:9;1525:23;1557:39;1590:5;1557:39;:::i;:::-;1615:5;1667:2;1652:18;;;;1639:32;;-1:-1:-1;;;1339:338:60:o;1874:255::-;1933:6;1986:2;1974:9;1965:7;1961:23;1957:32;1954:52;;;2002:1;1999;1992:12;1954:52;2041:9;2028:23;2060:39;2093:5;2060:39;:::i;2347:180::-;2406:6;2459:2;2447:9;2438:7;2434:23;2430:32;2427:52;;;2475:1;2472;2465:12;2427:52;-1:-1:-1;2498:23:60;;2347:180;-1:-1:-1;2347:180:60:o;3009:348::-;3061:8;3071:6;3125:3;3118:4;3110:6;3106:17;3102:27;3092:55;;3143:1;3140;3133:12;3092:55;-1:-1:-1;3166:20:60;;3209:18;3198:30;;3195:50;;;3241:1;3238;3231:12;3195:50;3278:4;3270:6;3266:17;3254:29;;3330:3;3323:4;3314:6;3306;3302:19;3298:30;3295:39;3292:59;;;3347:1;3344;3337:12;3362:411;3433:6;3441;3494:2;3482:9;3473:7;3469:23;3465:32;3462:52;;;3510:1;3507;3500:12;3462:52;3550:9;3537:23;3583:18;3575:6;3572:30;3569:50;;;3615:1;3612;3605:12;3569:50;3654:59;3705:7;3696:6;3685:9;3681:22;3654:59;:::i;:::-;3732:8;;3628:85;;-1:-1:-1;3362:411:60;-1:-1:-1;;;;3362:411:60:o;3778:179::-;3845:20;;3905:26;3894:38;;3884:49;;3874:77;;3947:1;3944;3937:12;3874:77;3778:179;;;:::o;3962:367::-;4025:8;4035:6;4089:3;4082:4;4074:6;4070:17;4066:27;4056:55;;4107:1;4104;4097:12;4056:55;-1:-1:-1;4130:20:60;;4173:18;4162:30;;4159:50;;;4205:1;4202;4195:12;4159:50;4242:4;4234:6;4230:17;4218:29;;4302:3;4295:4;4285:6;4282:1;4278:14;4270:6;4266:27;4262:38;4259:47;4256:67;;;4319:1;4316;4309:12;4334:818;4448:6;4456;4464;4472;4480;4533:2;4521:9;4512:7;4508:23;4504:32;4501:52;;;4549:1;4546;4539:12;4501:52;4572:28;4590:9;4572:28;:::i;:::-;4562:38;;4651:2;4640:9;4636:18;4623:32;4674:18;4715:2;4707:6;4704:14;4701:34;;;4731:1;4728;4721:12;4701:34;4770:70;4832:7;4823:6;4812:9;4808:22;4770:70;:::i;:::-;4859:8;;-1:-1:-1;4744:96:60;-1:-1:-1;4947:2:60;4932:18;;4919:32;;-1:-1:-1;4963:16:60;;;4960:36;;;4992:1;4989;4982:12;4960:36;;5031:61;5084:7;5073:8;5062:9;5058:24;5031:61;:::i;:::-;4334:818;;;;-1:-1:-1;4334:818:60;;-1:-1:-1;5111:8:60;;5005:87;4334:818;-1:-1:-1;;;4334:818:60:o;5157:962::-;5280:6;5288;5296;5304;5312;5320;5373:3;5361:9;5352:7;5348:23;5344:33;5341:53;;;5390:1;5387;5380:12;5341:53;5429:9;5416:23;5448:39;5481:5;5448:39;:::i;:::-;5506:5;-1:-1:-1;5530:37:60;5563:2;5548:18;;5530:37;:::i;:::-;5520:47;;5618:2;5607:9;5603:18;5590:32;5641:18;5682:2;5674:6;5671:14;5668:34;;;5698:1;5695;5688:12;5668:34;5737:70;5799:7;5790:6;5779:9;5775:22;5737:70;:::i;:::-;5826:8;;-1:-1:-1;5711:96:60;-1:-1:-1;5914:2:60;5899:18;;5886:32;;-1:-1:-1;5930:16:60;;;5927:36;;;5959:1;5956;5949:12;5927:36;;5998:61;6051:7;6040:8;6029:9;6025:24;5998:61;:::i;:::-;5157:962;;;;-1:-1:-1;5157:962:60;;-1:-1:-1;5157:962:60;;6078:8;;5157:962;-1:-1:-1;;;5157:962:60:o;6124:437::-;6203:1;6199:12;;;;6246;;;6267:61;;6321:4;6313:6;6309:17;6299:27;;6267:61;6374:2;6366:6;6363:14;6343:18;6340:38;6337:218;;-1:-1:-1;;;6408:1:60;6401:88;6512:4;6509:1;6502:15;6540:4;6537:1;6530:15;6337:218;;6124:437;;;:::o;7216:277::-;7283:6;7336:2;7324:9;7315:7;7311:23;7307:32;7304:52;;;7352:1;7349;7342:12;7304:52;7384:9;7378:16;7437:5;7430:13;7423:21;7416:5;7413:32;7403:60;;7459:1;7456;7449:12;7842:184;-1:-1:-1;;;7891:1:60;7884:88;7991:4;7988:1;7981:15;8015:4;8012:1;8005:15;8157:545;8259:2;8254:3;8251:11;8248:448;;;8295:1;8320:5;8316:2;8309:17;8365:4;8361:2;8351:19;8435:2;8423:10;8419:19;8416:1;8412:27;8406:4;8402:38;8471:4;8459:10;8456:20;8453:47;;;-1:-1:-1;8494:4:60;8453:47;8549:2;8544:3;8540:12;8537:1;8533:20;8527:4;8523:31;8513:41;;8604:82;8622:2;8615:5;8612:13;8604:82;;;8667:17;;;8648:1;8637:13;8604:82;;;8608:3;;;8248:448;8157:545;;;:::o;8938:1325::-;9062:18;9057:3;9054:27;9051:53;;;9084:18;;:::i;:::-;9113:94;9203:3;9163:38;9195:4;9189:11;9163:38;:::i;:::-;9157:4;9113:94;:::i;:::-;9233:1;9258:2;9253:3;9250:11;9275:1;9270:735;;;;10049:1;10066:3;10063:93;;;-1:-1:-1;10122:19:60;;;10109:33;10063:93;-1:-1:-1;;8835:1:60;8831:11;;;8827:84;8823:89;8813:100;8919:1;8915:11;;;8810:117;10169:78;;9243:1014;;9270:735;8104:1;8097:14;;;8141:4;8128:18;;-1:-1:-1;;9306:76:60;;;9466:9;9488:229;9502:7;9499:1;9496:14;9488:229;;;9591:19;;;9578:33;9563:49;;9698:4;9683:20;;;;9651:1;9639:14;;;;9518:12;9488:229;;;9492:3;9745;9736:7;9733:16;9730:219;;;-1:-1:-1;;9859:3:60;9853;9850:1;9846:11;9842:21;9838:94;9834:99;9821:9;9816:3;9812:19;9799:33;9795:139;9787:6;9780:155;9730:219;;;9992:1;9986:3;9983:1;9979:11;9975:19;9969:4;9962:33;9243:1014;;8938:1325;;;:::o;10268:449::-;10427:2;10416:9;10409:21;10466:6;10461:2;10450:9;10446:18;10439:34;10523:6;10515;10510:2;10499:9;10495:18;10482:48;10579:1;10550:22;;;10574:2;10546:31;;;10539:42;;;;10633:2;10621:15;;;-1:-1:-1;;10617:88:60;10602:104;10598:113;;10268:449;-1:-1:-1;10268:449:60:o;11839:357::-;11957:12;;12004:4;11993:16;;;11987:23;;11957:12;12022:16;;12019:171;;;-1:-1:-1;;12096:4:60;12092:17;;;;12089:1;12085:25;12081:98;12070:110;;11839:357;-1:-1:-1;11839:357:60:o;12757:184::-;12827:6;12880:2;12868:9;12859:7;12855:23;12851:32;12848:52;;;12896:1;12893;12886:12;12848:52;-1:-1:-1;12919:16:60;;12757:184;-1:-1:-1;12757:184:60:o;13756:675::-;14064:66;14059:3;14052:79;14034:3;14160:6;14154:13;14176:62;14231:6;14226:2;14221:3;14217:12;14210:4;14202:6;14198:17;14176:62;:::i;:::-;14298:13;;14257:16;;;;14320:63;14298:13;14369:2;14361:11;;14354:4;14342:17;;14320:63;:::i;:::-;14403:17;14422:2;14399:26;;13756:675;-1:-1:-1;;;;13756:675:60:o;15680:184::-;-1:-1:-1;;;15729:1:60;15722:88;15829:4;15826:1;15819:15;15853:4;15850:1;15843:15;16985:184;-1:-1:-1;;;17034:1:60;17027:88;17134:4;17131:1;17124:15;17158:4;17155:1;17148:15;17174:349;17213:3;-1:-1:-1;;17237:5:60;17234:77;17231:257;;-1:-1:-1;;;17341:1:60;17334:88;17445:4;17442:1;17435:15;17473:4;17470:1;17463:15;17231:257;-1:-1:-1;17515:1:60;17504:13;;17174:349::o"},"methodIdentifiers":{"PNG()":"9bab65b8","SAR()":"33c88ff6","claim(uint96,bytes32[],bytes)":"c13f573e","claimTo(address,uint96,bytes32[],bytes)":"c1b0eb94","claimedAmounts(address)":"71417b32","complianceHash()":"2d2069ec","complianceMessage()":"0b22f24a","merkleRoot()":"2eb4a7ab","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","recover(address,uint256)":"5705ae43","renounceOwnership()":"715018a6","setComplianceMessage(string)":"be8cbeed","setMerkleRoot(bytes32)":"7cb64759","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"airdropToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakingPositions\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"MerkleRootSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newComplianceHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newComplianceMessage\",\"type\":\"string\"}],\"name\":\"NewComplianceMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PNG\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SAR\",\"outputs\":[{\"internalType\":\"contract IPangolinStakingPositions\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"claimTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimedAmounts\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"complianceHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"complianceMessage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"recover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newComplianceMessage\",\"type\":\"string\"}],\"name\":\"setComplianceMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newMerkleRoot\",\"type\":\"bytes32\"}],\"name\":\"setMerkleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-token/MerkledropToStakingCompliant.sol\":\"MerkledropToStakingCompliant\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xd466e8b07f4c6220eac16da5127f3ff142e65f0c15c03c7d38f257b02c8585e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6b3cab69f655e40117bbdd8e68d7423f26d1b24248fb189c295f08de8940616\",\"dweb:/ipfs/QmWoyRthsBDMa7gJpH5UCjpa8uNUQfyaGbSgY3uvhBH9F3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/pangolin-token/MerkledropToStakingCompliant.sol\":{\"keccak256\":\"0x2e8083d37c2548ef39848dafc7f42e74eb9289264f2b38b8518e7cd159802742\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41c64dba9204b59064b6dd8b0f53347f0304f2cfea5587c9b1ac0a3e48b87e46\",\"dweb:/ipfs/QmZwkLDp7F6q2zaCLiHrSfCxK74LZMt87SmxyqerhVdKa4\"]}},\"version\":1}"}},"contracts/pangolin-token/Png.sol":{"Png":{"abi":[{"inputs":[{"internalType":"uint96","name":"cap_","type":"uint96"},{"internalType":"uint96","name":"preMint","type":"uint96"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11632":{"entryPoint":null,"id":11632,"parameterSlots":4,"returnSlots":0},"@_2367":{"entryPoint":null,"id":2367,"parameterSlots":1,"returnSlots":0},"@_5377":{"entryPoint":null,"id":5377,"parameterSlots":2,"returnSlots":0},"@_882":{"entryPoint":null,"id":882,"parameterSlots":2,"returnSlots":0},"@_add_2214":{"entryPoint":1007,"id":2214,"parameterSlots":2,"returnSlots":1},"@_add_8447":{"entryPoint":1423,"id":8447,"parameterSlots":2,"returnSlots":1},"@_afterTokenTransfer_11681":{"entryPoint":1505,"id":11681,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_1423":{"entryPoint":null,"id":1423,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_1990":{"entryPoint":1743,"id":1990,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_1412":{"entryPoint":null,"id":1412,"parameterSlots":3,"returnSlots":0},"@_buildDomainSeparator_5433":{"entryPoint":null,"id":5433,"parameterSlots":3,"returnSlots":1},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_grantRole_283":{"entryPoint":600,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":341,"id":415,"parameterSlots":2,"returnSlots":0},"@_maxSupply_11660":{"entryPoint":null,"id":11660,"parameterSlots":0,"returnSlots":1},"@_mint_11699":{"entryPoint":314,"id":11699,"parameterSlots":2,"returnSlots":0},"@_mint_1241":{"entryPoint":796,"id":1241,"parameterSlots":2,"returnSlots":0},"@_mint_1937":{"entryPoint":408,"id":1937,"parameterSlots":2,"returnSlots":0},"@_moveVotingPower_2100":{"entryPoint":null,"id":2100,"parameterSlots":3,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_subtract_2228":{"entryPoint":2110,"id":2228,"parameterSlots":2,"returnSlots":1},"@_unsafeAccess_2243":{"entryPoint":null,"id":2243,"parameterSlots":2,"returnSlots":1},"@_writeCheckpoint_2200":{"entryPoint":1021,"id":2200,"parameterSlots":3,"returnSlots":2},"@add_8747":{"entryPoint":764,"id":8747,"parameterSlots":2,"returnSlots":1},"@delegates_1631":{"entryPoint":null,"id":1631,"parameterSlots":1,"returnSlots":1},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"@toUint224_6956":{"entryPoint":1529,"id":6956,"parameterSlots":1,"returnSlots":1},"@toUint32_7556":{"entryPoint":1640,"id":7556,"parameterSlots":1,"returnSlots":1},"@totalSupply_922":{"entryPoint":1001,"id":922,"parameterSlots":0,"returnSlots":1},"abi_decode_string_fromMemory":{"entryPoint":2175,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint96t_uint96t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":2358,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_uint96_fromMemory":{"entryPoint":2124,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2870,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2897,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":2562,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":2644,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2502,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":2848,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2153,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7452:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"73:116:60","statements":[{"nodeType":"YulAssignment","src":"83:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"98:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"92:5:60"},"nodeType":"YulFunctionCall","src":"92:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"83:5:60"}]},{"body":{"nodeType":"YulBlock","src":"167:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"176:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"179:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"169:6:60"},"nodeType":"YulFunctionCall","src":"169:12:60"},"nodeType":"YulExpressionStatement","src":"169:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"127:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"138:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"153:2:60","type":"","value":"96"},{"kind":"number","nodeType":"YulLiteral","src":"157:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"149:3:60"},"nodeType":"YulFunctionCall","src":"149:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"161:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"145:3:60"},"nodeType":"YulFunctionCall","src":"145:18:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"134:3:60"},"nodeType":"YulFunctionCall","src":"134:30:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"124:2:60"},"nodeType":"YulFunctionCall","src":"124:41:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"117:6:60"},"nodeType":"YulFunctionCall","src":"117:49:60"},"nodeType":"YulIf","src":"114:69:60"}]},"name":"abi_decode_uint96_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"63:5:60","type":""}],"src":"14:175:60"},{"body":{"nodeType":"YulBlock","src":"226:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"250:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"255:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"246:3:60"},"nodeType":"YulFunctionCall","src":"246:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"236:6:60"},"nodeType":"YulFunctionCall","src":"236:31:60"},"nodeType":"YulExpressionStatement","src":"236:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"283:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"286:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"276:6:60"},"nodeType":"YulFunctionCall","src":"276:15:60"},"nodeType":"YulExpressionStatement","src":"276:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"307:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"300:6:60"},"nodeType":"YulFunctionCall","src":"300:15:60"},"nodeType":"YulExpressionStatement","src":"300:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"194:127:60"},{"body":{"nodeType":"YulBlock","src":"390:821:60","statements":[{"body":{"nodeType":"YulBlock","src":"439:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"448:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"451:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"441:6:60"},"nodeType":"YulFunctionCall","src":"441:12:60"},"nodeType":"YulExpressionStatement","src":"441:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"418:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"426:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"414:3:60"},"nodeType":"YulFunctionCall","src":"414:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"433:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"410:3:60"},"nodeType":"YulFunctionCall","src":"410:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"403:6:60"},"nodeType":"YulFunctionCall","src":"403:35:60"},"nodeType":"YulIf","src":"400:55:60"},{"nodeType":"YulVariableDeclaration","src":"464:23:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"480:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"474:5:60"},"nodeType":"YulFunctionCall","src":"474:13:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"468:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"496:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"514:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"518:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"510:3:60"},"nodeType":"YulFunctionCall","src":"510:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"522:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"506:3:60"},"nodeType":"YulFunctionCall","src":"506:18:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"500:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"547:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"549:16:60"},"nodeType":"YulFunctionCall","src":"549:18:60"},"nodeType":"YulExpressionStatement","src":"549:18:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"539:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"543:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"536:2:60"},"nodeType":"YulFunctionCall","src":"536:10:60"},"nodeType":"YulIf","src":"533:36:60"},{"nodeType":"YulVariableDeclaration","src":"578:17:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"592:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"588:3:60"},"nodeType":"YulFunctionCall","src":"588:7:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"582:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"604:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"618:5:60"},"nodeType":"YulFunctionCall","src":"618:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"608:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"636:71:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"658:6:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"682:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"686:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"678:3:60"},"nodeType":"YulFunctionCall","src":"678:13:60"},{"name":"_3","nodeType":"YulIdentifier","src":"693:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"674:3:60"},"nodeType":"YulFunctionCall","src":"674:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"698:2:60","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"670:3:60"},"nodeType":"YulFunctionCall","src":"670:31:60"},{"name":"_3","nodeType":"YulIdentifier","src":"703:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"666:3:60"},"nodeType":"YulFunctionCall","src":"666:40:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"654:3:60"},"nodeType":"YulFunctionCall","src":"654:53:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"640:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"766:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"768:16:60"},"nodeType":"YulFunctionCall","src":"768:18:60"},"nodeType":"YulExpressionStatement","src":"768:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"725:10:60"},{"name":"_2","nodeType":"YulIdentifier","src":"737:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"722:2:60"},"nodeType":"YulFunctionCall","src":"722:18:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"745:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"757:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"742:2:60"},"nodeType":"YulFunctionCall","src":"742:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"719:2:60"},"nodeType":"YulFunctionCall","src":"719:46:60"},"nodeType":"YulIf","src":"716:72:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"804:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"808:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"797:6:60"},"nodeType":"YulFunctionCall","src":"797:22:60"},"nodeType":"YulExpressionStatement","src":"797:22:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"835:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"843:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"828:6:60"},"nodeType":"YulFunctionCall","src":"828:18:60"},"nodeType":"YulExpressionStatement","src":"828:18:60"},{"nodeType":"YulVariableDeclaration","src":"855:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"865:4:60","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"859:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"915:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"924:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"927:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"917:6:60"},"nodeType":"YulFunctionCall","src":"917:12:60"},"nodeType":"YulExpressionStatement","src":"917:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"892:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"900:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"888:3:60"},"nodeType":"YulFunctionCall","src":"888:15:60"},{"name":"_4","nodeType":"YulIdentifier","src":"905:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"884:3:60"},"nodeType":"YulFunctionCall","src":"884:24:60"},{"name":"end","nodeType":"YulIdentifier","src":"910:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"881:2:60"},"nodeType":"YulFunctionCall","src":"881:33:60"},"nodeType":"YulIf","src":"878:53:60"},{"nodeType":"YulVariableDeclaration","src":"940:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"949:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"944:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1005:87:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1034:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"1042:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1030:3:60"},"nodeType":"YulFunctionCall","src":"1030:14:60"},{"name":"_4","nodeType":"YulIdentifier","src":"1046:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1026:3:60"},"nodeType":"YulFunctionCall","src":"1026:23:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1065:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"1073:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1061:3:60"},"nodeType":"YulFunctionCall","src":"1061:14:60"},{"name":"_4","nodeType":"YulIdentifier","src":"1077:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1057:3:60"},"nodeType":"YulFunctionCall","src":"1057:23:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1051:5:60"},"nodeType":"YulFunctionCall","src":"1051:30:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1019:6:60"},"nodeType":"YulFunctionCall","src":"1019:63:60"},"nodeType":"YulExpressionStatement","src":"1019:63:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"970:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"973:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"967:2:60"},"nodeType":"YulFunctionCall","src":"967:9:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"977:19:60","statements":[{"nodeType":"YulAssignment","src":"979:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"988:1:60"},{"name":"_4","nodeType":"YulIdentifier","src":"991:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"984:3:60"},"nodeType":"YulFunctionCall","src":"984:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"979:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"963:3:60","statements":[]},"src":"959:133:60"},{"body":{"nodeType":"YulBlock","src":"1122:59:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1151:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1159:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1147:3:60"},"nodeType":"YulFunctionCall","src":"1147:15:60"},{"name":"_4","nodeType":"YulIdentifier","src":"1164:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1143:3:60"},"nodeType":"YulFunctionCall","src":"1143:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"1169:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1136:6:60"},"nodeType":"YulFunctionCall","src":"1136:35:60"},"nodeType":"YulExpressionStatement","src":"1136:35:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1107:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1110:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1104:2:60"},"nodeType":"YulFunctionCall","src":"1104:9:60"},"nodeType":"YulIf","src":"1101:80:60"},{"nodeType":"YulAssignment","src":"1190:15:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1199:6:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1190:5:60"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"364:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"372:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"380:5:60","type":""}],"src":"326:885:60"},{"body":{"nodeType":"YulBlock","src":"1366:579:60","statements":[{"body":{"nodeType":"YulBlock","src":"1413:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1422:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1425:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1415:6:60"},"nodeType":"YulFunctionCall","src":"1415:12:60"},"nodeType":"YulExpressionStatement","src":"1415:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1387:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1396:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1383:3:60"},"nodeType":"YulFunctionCall","src":"1383:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1408:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1379:3:60"},"nodeType":"YulFunctionCall","src":"1379:33:60"},"nodeType":"YulIf","src":"1376:53:60"},{"nodeType":"YulAssignment","src":"1438:49:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1477:9:60"}],"functionName":{"name":"abi_decode_uint96_fromMemory","nodeType":"YulIdentifier","src":"1448:28:60"},"nodeType":"YulFunctionCall","src":"1448:39:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1438:6:60"}]},{"nodeType":"YulAssignment","src":"1496:58:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1539:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1550:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1535:3:60"},"nodeType":"YulFunctionCall","src":"1535:18:60"}],"functionName":{"name":"abi_decode_uint96_fromMemory","nodeType":"YulIdentifier","src":"1506:28:60"},"nodeType":"YulFunctionCall","src":"1506:48:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1496:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1563:39:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1587:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1598:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1583:3:60"},"nodeType":"YulFunctionCall","src":"1583:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1577:5:60"},"nodeType":"YulFunctionCall","src":"1577:25:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1567:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1611:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1629:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1633:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1625:3:60"},"nodeType":"YulFunctionCall","src":"1625:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1637:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1621:3:60"},"nodeType":"YulFunctionCall","src":"1621:18:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1615:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1666:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1675:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1678:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1668:6:60"},"nodeType":"YulFunctionCall","src":"1668:12:60"},"nodeType":"YulExpressionStatement","src":"1668:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1654:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1662:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1651:2:60"},"nodeType":"YulFunctionCall","src":"1651:14:60"},"nodeType":"YulIf","src":"1648:34:60"},{"nodeType":"YulAssignment","src":"1691:71:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1734:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"1745:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:60"},"nodeType":"YulFunctionCall","src":"1730:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1754:7:60"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1701:28:60"},"nodeType":"YulFunctionCall","src":"1701:61:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1691:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1771:41:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1797:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1808:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1793:3:60"},"nodeType":"YulFunctionCall","src":"1793:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1787:5:60"},"nodeType":"YulFunctionCall","src":"1787:25:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1775:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1841:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1850:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1853:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1843:6:60"},"nodeType":"YulFunctionCall","src":"1843:12:60"},"nodeType":"YulExpressionStatement","src":"1843:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1827:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1837:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1824:2:60"},"nodeType":"YulFunctionCall","src":"1824:16:60"},"nodeType":"YulIf","src":"1821:36:60"},{"nodeType":"YulAssignment","src":"1866:73:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1909:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1920:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1905:3:60"},"nodeType":"YulFunctionCall","src":"1905:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1931:7:60"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1876:28:60"},"nodeType":"YulFunctionCall","src":"1876:63:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1866:6:60"}]}]},"name":"abi_decode_tuple_t_uint96t_uint96t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1308:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1319:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1331:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1339:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1347:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1355:6:60","type":""}],"src":"1216:729:60"},{"body":{"nodeType":"YulBlock","src":"2005:325:60","statements":[{"nodeType":"YulAssignment","src":"2015:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2029:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2032:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2025:3:60"},"nodeType":"YulFunctionCall","src":"2025:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2015:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"2046:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2076:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"2082:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2072:3:60"},"nodeType":"YulFunctionCall","src":"2072:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2050:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2123:31:60","statements":[{"nodeType":"YulAssignment","src":"2125:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2139:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2147:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2135:3:60"},"nodeType":"YulFunctionCall","src":"2135:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2125:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2103:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2096:6:60"},"nodeType":"YulFunctionCall","src":"2096:26:60"},"nodeType":"YulIf","src":"2093:61:60"},{"body":{"nodeType":"YulBlock","src":"2213:111:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2234:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2241:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2246:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2237:3:60"},"nodeType":"YulFunctionCall","src":"2237:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2227:6:60"},"nodeType":"YulFunctionCall","src":"2227:31:60"},"nodeType":"YulExpressionStatement","src":"2227:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2278:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2281:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2271:6:60"},"nodeType":"YulFunctionCall","src":"2271:15:60"},"nodeType":"YulExpressionStatement","src":"2271:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2306:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2309:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2299:6:60"},"nodeType":"YulFunctionCall","src":"2299:15:60"},"nodeType":"YulExpressionStatement","src":"2299:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2169:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2192:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2200:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2189:2:60"},"nodeType":"YulFunctionCall","src":"2189:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2166:2:60"},"nodeType":"YulFunctionCall","src":"2166:38:60"},"nodeType":"YulIf","src":"2163:161:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1985:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1994:6:60","type":""}],"src":"1950:380:60"},{"body":{"nodeType":"YulBlock","src":"2391:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2408:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2411:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2401:6:60"},"nodeType":"YulFunctionCall","src":"2401:14:60"},"nodeType":"YulExpressionStatement","src":"2401:14:60"},{"nodeType":"YulAssignment","src":"2424:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2442:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2445:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2432:9:60"},"nodeType":"YulFunctionCall","src":"2432:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2424:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2374:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2382:4:60","type":""}],"src":"2335:121:60"},{"body":{"nodeType":"YulBlock","src":"2542:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"2575:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2589:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2599:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2593:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2620:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"2624:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2613:6:60"},"nodeType":"YulFunctionCall","src":"2613:17:60"},"nodeType":"YulExpressionStatement","src":"2613:17:60"},{"nodeType":"YulVariableDeclaration","src":"2643:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2665:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"2669:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2655:9:60"},"nodeType":"YulFunctionCall","src":"2655:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2647:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2687:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2710:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2720:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2727:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"2739:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2723:3:60"},"nodeType":"YulFunctionCall","src":"2723:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2716:3:60"},"nodeType":"YulFunctionCall","src":"2716:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2706:3:60"},"nodeType":"YulFunctionCall","src":"2706:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2691:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2781:23:60","statements":[{"nodeType":"YulAssignment","src":"2783:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"2798:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2783:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2763:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"2775:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2760:2:60"},"nodeType":"YulFunctionCall","src":"2760:20:60"},"nodeType":"YulIf","src":"2757:47:60"},{"nodeType":"YulVariableDeclaration","src":"2817:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2831:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2841:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2848:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"2853:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2844:3:60"},"nodeType":"YulFunctionCall","src":"2844:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2837:3:60"},"nodeType":"YulFunctionCall","src":"2837:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2827:3:60"},"nodeType":"YulFunctionCall","src":"2827:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2821:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2871:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2884:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2875:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2969:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2978:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2985:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2971:6:60"},"nodeType":"YulFunctionCall","src":"2971:17:60"},"nodeType":"YulExpressionStatement","src":"2971:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2919:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2926:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2916:2:60"},"nodeType":"YulFunctionCall","src":"2916:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2930:26:60","statements":[{"nodeType":"YulAssignment","src":"2932:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2945:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"2952:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2941:3:60"},"nodeType":"YulFunctionCall","src":"2941:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2932:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2912:3:60","statements":[]},"src":"2908:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2558:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"2563:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2555:2:60"},"nodeType":"YulFunctionCall","src":"2555:11:60"},"nodeType":"YulIf","src":"2552:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2514:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"2521:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2526:10:60","type":""}],"src":"2461:545:60"},{"body":{"nodeType":"YulBlock","src":"3096:81:60","statements":[{"nodeType":"YulAssignment","src":"3106:65:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3121:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3139:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"3142:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3135:3:60"},"nodeType":"YulFunctionCall","src":"3135:11:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3152:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3148:3:60"},"nodeType":"YulFunctionCall","src":"3148:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3131:3:60"},"nodeType":"YulFunctionCall","src":"3131:24:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3127:3:60"},"nodeType":"YulFunctionCall","src":"3127:29:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3117:3:60"},"nodeType":"YulFunctionCall","src":"3117:40:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3163:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"3166:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3159:3:60"},"nodeType":"YulFunctionCall","src":"3159:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3114:2:60"},"nodeType":"YulFunctionCall","src":"3114:57:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"3106:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"3073:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"3079:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"3087:4:60","type":""}],"src":"3011:166:60"},{"body":{"nodeType":"YulBlock","src":"3278:1256:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3288:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3308:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3302:5:60"},"nodeType":"YulFunctionCall","src":"3302:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"3292:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3355:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3357:16:60"},"nodeType":"YulFunctionCall","src":"3357:18:60"},"nodeType":"YulExpressionStatement","src":"3357:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3327:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3343:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3347:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3339:3:60"},"nodeType":"YulFunctionCall","src":"3339:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"3351:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3335:3:60"},"nodeType":"YulFunctionCall","src":"3335:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3324:2:60"},"nodeType":"YulFunctionCall","src":"3324:30:60"},"nodeType":"YulIf","src":"3321:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3430:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3468:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3462:5:60"},"nodeType":"YulFunctionCall","src":"3462:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3436:25:60"},"nodeType":"YulFunctionCall","src":"3436:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"3476:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"3386:43:60"},"nodeType":"YulFunctionCall","src":"3386:97:60"},"nodeType":"YulExpressionStatement","src":"3386:97:60"},{"nodeType":"YulVariableDeclaration","src":"3492:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3509:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3496:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3519:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3538:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3523:11:60","type":""}]},{"nodeType":"YulAssignment","src":"3551:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3564:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3551:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3621:656:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3635:35:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3654:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3666:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3662:3:60"},"nodeType":"YulFunctionCall","src":"3662:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3650:3:60"},"nodeType":"YulFunctionCall","src":"3650:20:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3639:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3683:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3727:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3697:29:60"},"nodeType":"YulFunctionCall","src":"3697:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3687:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3745:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3754:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3749:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3832:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3857:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3875:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3880:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3871:3:60"},"nodeType":"YulFunctionCall","src":"3871:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3865:5:60"},"nodeType":"YulFunctionCall","src":"3865:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3850:6:60"},"nodeType":"YulFunctionCall","src":"3850:42:60"},"nodeType":"YulExpressionStatement","src":"3850:42:60"},{"nodeType":"YulAssignment","src":"3909:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3923:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3931:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3919:3:60"},"nodeType":"YulFunctionCall","src":"3919:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3909:6:60"}]},{"nodeType":"YulAssignment","src":"3950:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3967:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3978:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3963:3:60"},"nodeType":"YulFunctionCall","src":"3963:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3950:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3779:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3782:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3776:2:60"},"nodeType":"YulFunctionCall","src":"3776:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3791:28:60","statements":[{"nodeType":"YulAssignment","src":"3793:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3802:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3805:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3798:3:60"},"nodeType":"YulFunctionCall","src":"3798:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3793:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"3772:3:60","statements":[]},"src":"3768:236:60"},{"body":{"nodeType":"YulBlock","src":"4052:166:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4070:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4097:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4102:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4093:3:60"},"nodeType":"YulFunctionCall","src":"4093:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4087:5:60"},"nodeType":"YulFunctionCall","src":"4087:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"4074:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"4137:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"4149:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4176:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"4179:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4172:3:60"},"nodeType":"YulFunctionCall","src":"4172:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"4188:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4168:3:60"},"nodeType":"YulFunctionCall","src":"4168:24:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4198:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4194:3:60"},"nodeType":"YulFunctionCall","src":"4194:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4164:3:60"},"nodeType":"YulFunctionCall","src":"4164:37:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4160:3:60"},"nodeType":"YulFunctionCall","src":"4160:42:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4145:3:60"},"nodeType":"YulFunctionCall","src":"4145:58:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4130:6:60"},"nodeType":"YulFunctionCall","src":"4130:74:60"},"nodeType":"YulExpressionStatement","src":"4130:74:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"4023:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"4032:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4020:2:60"},"nodeType":"YulFunctionCall","src":"4020:19:60"},"nodeType":"YulIf","src":"4017:201:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4238:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4252:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"4255:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4248:3:60"},"nodeType":"YulFunctionCall","src":"4248:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"4264:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4244:3:60"},"nodeType":"YulFunctionCall","src":"4244:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4231:6:60"},"nodeType":"YulFunctionCall","src":"4231:36:60"},"nodeType":"YulExpressionStatement","src":"4231:36:60"}]},"nodeType":"YulCase","src":"3614:663:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3619:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"4294:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4308:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4321:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4312:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4357:67:60","statements":[{"nodeType":"YulAssignment","src":"4375:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4394:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4399:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4390:3:60"},"nodeType":"YulFunctionCall","src":"4390:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4384:5:60"},"nodeType":"YulFunctionCall","src":"4384:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4375:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"4338:6:60"},"nodeType":"YulIf","src":"4335:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4444:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4503:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"4510:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4450:52:60"},"nodeType":"YulFunctionCall","src":"4450:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4437:6:60"},"nodeType":"YulFunctionCall","src":"4437:81:60"},"nodeType":"YulExpressionStatement","src":"4437:81:60"}]},"nodeType":"YulCase","src":"4286:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3594:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3602:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3591:2:60"},"nodeType":"YulFunctionCall","src":"3591:14:60"},"nodeType":"YulSwitch","src":"3584:944:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"3263:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"3269:3:60","type":""}],"src":"3182:1352:60"},{"body":{"nodeType":"YulBlock","src":"4752:276:60","statements":[{"nodeType":"YulAssignment","src":"4762:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4774:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4785:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4770:3:60"},"nodeType":"YulFunctionCall","src":"4770:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4762:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4805:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"4816:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4798:6:60"},"nodeType":"YulFunctionCall","src":"4798:25:60"},"nodeType":"YulExpressionStatement","src":"4798:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4854:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:60"},"nodeType":"YulFunctionCall","src":"4839:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"4859:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4832:6:60"},"nodeType":"YulFunctionCall","src":"4832:34:60"},"nodeType":"YulExpressionStatement","src":"4832:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4886:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4897:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4882:3:60"},"nodeType":"YulFunctionCall","src":"4882:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"4902:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4875:6:60"},"nodeType":"YulFunctionCall","src":"4875:34:60"},"nodeType":"YulExpressionStatement","src":"4875:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4929:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4940:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4925:3:60"},"nodeType":"YulFunctionCall","src":"4925:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"4945:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4918:6:60"},"nodeType":"YulFunctionCall","src":"4918:34:60"},"nodeType":"YulExpressionStatement","src":"4918:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4983:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:60"},"nodeType":"YulFunctionCall","src":"4968:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"4993:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5009:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5014:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5005:3:60"},"nodeType":"YulFunctionCall","src":"5005:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"5018:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5001:3:60"},"nodeType":"YulFunctionCall","src":"5001:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4989:3:60"},"nodeType":"YulFunctionCall","src":"4989:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4961:6:60"},"nodeType":"YulFunctionCall","src":"4961:61:60"},"nodeType":"YulExpressionStatement","src":"4961:61:60"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4689:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4700:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4708:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4716:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4724:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4732:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4743:4:60","type":""}],"src":"4539:489:60"},{"body":{"nodeType":"YulBlock","src":"5207:238:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5224:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5235:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5217:6:60"},"nodeType":"YulFunctionCall","src":"5217:21:60"},"nodeType":"YulExpressionStatement","src":"5217:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5258:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5269:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5254:3:60"},"nodeType":"YulFunctionCall","src":"5254:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5274:2:60","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5247:6:60"},"nodeType":"YulFunctionCall","src":"5247:30:60"},"nodeType":"YulExpressionStatement","src":"5247:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5297:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5308:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5293:3:60"},"nodeType":"YulFunctionCall","src":"5293:18:60"},{"hexValue":"4552433230566f7465733a20746f74616c20737570706c79207269736b73206f","kind":"string","nodeType":"YulLiteral","src":"5313:34:60","type":"","value":"ERC20Votes: total supply risks o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5286:6:60"},"nodeType":"YulFunctionCall","src":"5286:62:60"},"nodeType":"YulExpressionStatement","src":"5286:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5368:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5379:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5364:3:60"},"nodeType":"YulFunctionCall","src":"5364:18:60"},{"hexValue":"766572666c6f77696e6720766f746573","kind":"string","nodeType":"YulLiteral","src":"5384:18:60","type":"","value":"verflowing votes"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5357:6:60"},"nodeType":"YulFunctionCall","src":"5357:46:60"},"nodeType":"YulExpressionStatement","src":"5357:46:60"},{"nodeType":"YulAssignment","src":"5412:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5424:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5435:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5420:3:60"},"nodeType":"YulFunctionCall","src":"5420:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5412:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5184:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5198:4:60","type":""}],"src":"5033:412:60"},{"body":{"nodeType":"YulBlock","src":"5624:181:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5641:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5652:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5634:6:60"},"nodeType":"YulFunctionCall","src":"5634:21:60"},"nodeType":"YulExpressionStatement","src":"5634:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5675:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5686:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5671:3:60"},"nodeType":"YulFunctionCall","src":"5671:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5691:2:60","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5664:6:60"},"nodeType":"YulFunctionCall","src":"5664:30:60"},"nodeType":"YulExpressionStatement","src":"5664:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5714:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5725:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5710:3:60"},"nodeType":"YulFunctionCall","src":"5710:18:60"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"5730:33:60","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5703:6:60"},"nodeType":"YulFunctionCall","src":"5703:61:60"},"nodeType":"YulExpressionStatement","src":"5703:61:60"},{"nodeType":"YulAssignment","src":"5773:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5785:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5796:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5781:3:60"},"nodeType":"YulFunctionCall","src":"5781:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5773:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5601:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5615:4:60","type":""}],"src":"5450:355:60"},{"body":{"nodeType":"YulBlock","src":"5842:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5859:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5866:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5871:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5862:3:60"},"nodeType":"YulFunctionCall","src":"5862:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5852:6:60"},"nodeType":"YulFunctionCall","src":"5852:31:60"},"nodeType":"YulExpressionStatement","src":"5852:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5899:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5902:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5892:6:60"},"nodeType":"YulFunctionCall","src":"5892:15:60"},"nodeType":"YulExpressionStatement","src":"5892:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5923:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5926:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5916:6:60"},"nodeType":"YulFunctionCall","src":"5916:15:60"},"nodeType":"YulExpressionStatement","src":"5916:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5810:127:60"},{"body":{"nodeType":"YulBlock","src":"5990:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"6017:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6019:16:60"},"nodeType":"YulFunctionCall","src":"6019:18:60"},"nodeType":"YulExpressionStatement","src":"6019:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6006:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6013:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6009:3:60"},"nodeType":"YulFunctionCall","src":"6009:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6003:2:60"},"nodeType":"YulFunctionCall","src":"6003:13:60"},"nodeType":"YulIf","src":"6000:39:60"},{"nodeType":"YulAssignment","src":"6048:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6059:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"6062:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6055:3:60"},"nodeType":"YulFunctionCall","src":"6055:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6048:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5973:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"5976:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5982:3:60","type":""}],"src":"5942:128:60"},{"body":{"nodeType":"YulBlock","src":"6176:76:60","statements":[{"nodeType":"YulAssignment","src":"6186:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6198:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6209:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6194:3:60"},"nodeType":"YulFunctionCall","src":"6194:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6186:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6228:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"6239:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6221:6:60"},"nodeType":"YulFunctionCall","src":"6221:25:60"},"nodeType":"YulExpressionStatement","src":"6221:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6145:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6156:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6167:4:60","type":""}],"src":"6075:177:60"},{"body":{"nodeType":"YulBlock","src":"6306:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"6328:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6330:16:60"},"nodeType":"YulFunctionCall","src":"6330:18:60"},"nodeType":"YulExpressionStatement","src":"6330:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6322:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"6325:1:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6319:2:60"},"nodeType":"YulFunctionCall","src":"6319:8:60"},"nodeType":"YulIf","src":"6316:34:60"},{"nodeType":"YulAssignment","src":"6359:17:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6371:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"6374:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6367:3:60"},"nodeType":"YulFunctionCall","src":"6367:9:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"6359:4:60"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6288:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"6291:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"6297:4:60","type":""}],"src":"6257:125:60"},{"body":{"nodeType":"YulBlock","src":"6561:229:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6578:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6589:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6571:6:60"},"nodeType":"YulFunctionCall","src":"6571:21:60"},"nodeType":"YulExpressionStatement","src":"6571:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6612:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6623:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6608:3:60"},"nodeType":"YulFunctionCall","src":"6608:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6628:2:60","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6601:6:60"},"nodeType":"YulFunctionCall","src":"6601:30:60"},"nodeType":"YulExpressionStatement","src":"6601:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6651:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6662:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6647:3:60"},"nodeType":"YulFunctionCall","src":"6647:18:60"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032","kind":"string","nodeType":"YulLiteral","src":"6667:34:60","type":"","value":"SafeCast: value doesn't fit in 2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6640:6:60"},"nodeType":"YulFunctionCall","src":"6640:62:60"},"nodeType":"YulExpressionStatement","src":"6640:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6722:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6733:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6718:3:60"},"nodeType":"YulFunctionCall","src":"6718:18:60"},{"hexValue":"32342062697473","kind":"string","nodeType":"YulLiteral","src":"6738:9:60","type":"","value":"24 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6711:6:60"},"nodeType":"YulFunctionCall","src":"6711:37:60"},"nodeType":"YulExpressionStatement","src":"6711:37:60"},{"nodeType":"YulAssignment","src":"6757:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6769:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6780:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6765:3:60"},"nodeType":"YulFunctionCall","src":"6765:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6757:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6538:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6552:4:60","type":""}],"src":"6387:403:60"},{"body":{"nodeType":"YulBlock","src":"6969:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6986:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6997:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6979:6:60"},"nodeType":"YulFunctionCall","src":"6979:21:60"},"nodeType":"YulExpressionStatement","src":"6979:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7020:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7031:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7016:3:60"},"nodeType":"YulFunctionCall","src":"7016:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7036:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7009:6:60"},"nodeType":"YulFunctionCall","src":"7009:30:60"},"nodeType":"YulExpressionStatement","src":"7009:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7059:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7070:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7055:3:60"},"nodeType":"YulFunctionCall","src":"7055:18:60"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nodeType":"YulLiteral","src":"7075:34:60","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7048:6:60"},"nodeType":"YulFunctionCall","src":"7048:62:60"},"nodeType":"YulExpressionStatement","src":"7048:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7130:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7141:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7126:3:60"},"nodeType":"YulFunctionCall","src":"7126:18:60"},{"hexValue":"322062697473","kind":"string","nodeType":"YulLiteral","src":"7146:8:60","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7119:6:60"},"nodeType":"YulFunctionCall","src":"7119:36:60"},"nodeType":"YulExpressionStatement","src":"7119:36:60"},{"nodeType":"YulAssignment","src":"7164:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7176:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7187:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7172:3:60"},"nodeType":"YulFunctionCall","src":"7172:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7164:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6946:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6960:4:60","type":""}],"src":"6795:402:60"},{"body":{"nodeType":"YulBlock","src":"7331:119:60","statements":[{"nodeType":"YulAssignment","src":"7341:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7353:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7364:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7349:3:60"},"nodeType":"YulFunctionCall","src":"7349:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7341:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7383:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"7394:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7376:6:60"},"nodeType":"YulFunctionCall","src":"7376:25:60"},"nodeType":"YulExpressionStatement","src":"7376:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7421:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7432:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7417:3:60"},"nodeType":"YulFunctionCall","src":"7417:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"7437:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7410:6:60"},"nodeType":"YulFunctionCall","src":"7410:34:60"},"nodeType":"YulExpressionStatement","src":"7410:34:60"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7292:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7303:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7311:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7322:4:60","type":""}],"src":"7202:248:60"}]},"contents":"{\n    { }\n    function abi_decode_uint96_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(96, 1), 1)))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        if gt(i, _1)\n        {\n            mstore(add(add(memPtr, _1), _4), 0)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_uint96t_uint96t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_uint96_fromMemory(headStart)\n        value1 := abi_decode_uint96_fromMemory(add(headStart, 32))\n        let offset := mload(add(headStart, 64))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 48)\n        mstore(add(headStart, 64), \"ERC20Votes: total supply risks o\")\n        mstore(add(headStart, 96), \"verflowing votes\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 2\")\n        mstore(add(headStart, 96), \"24 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040523480156200001257600080fd5b50604051620038df380380620038df833981016040819052620000359162000936565b6040805180820190915260018152603160f81b6020820152829081908184600362000061838262000a54565b50600462000070828262000a54565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c052610120525050506001600160601b038087166101405262000123925033915085166200013a565b6200013060003362000155565b5050505062000b6b565b6200015182826200019860201b62000f0e1760201c565b5050565b6200016c82826200025860201b62000fd31760201c565b6000828152600b602090815260409091206200019391839062001075620002fc821b17901c565b505050565b620001af82826200031c60201b6200108a1760201c565b610140516001600160e01b0316620001cc620003e960201b60201c565b1115620002395760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b62000252600962001151620003ef60201b1783620003fd565b50505050565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1662000151576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620002b83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000313836001600160a01b0384166200058f565b90505b92915050565b6001600160a01b038216620003745760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000230565b806002600082825462000388919062000b36565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200015160008383620005e1565b60025490565b600062000313828462000b36565b825460009081908181156200045d576200042c876200041e60018562000b51565b600091825260209091200190565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b0316602082015262000472565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506200049084868860201c565b9250600082118015620004a95750805163ffffffff1643145b156200050057620004c583620005f960201b6200115d1760201c565b620004d7886200041e60018662000b51565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905562000585565b86604051806040016040528062000522436200066860201b620011e01760201c565b63ffffffff1681526020016200054386620005f960201b6200115d1760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6000818152600183016020526040812054620005d85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000316565b50600062000316565b62000193838383620006cf60201b6200125c1760201c565b60006001600160e01b03821115620006645760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840162000230565b5090565b600063ffffffff821115620006645760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840162000230565b620006e78383836200019360201b620007d21760201c565b6001600160a01b038381166000908152600760205260408082205485841683529120546200019392918216911683818314801590620007265750600081115b1562000193576001600160a01b03831615620007b3576001600160a01b0383166000908152600860209081526040822082916200077091906200083e901b6200128e1785620003fd565b91509150846001600160a01b0316600080516020620038bf8339815191528383604051620007a8929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161562000193576001600160a01b038216600090815260086020908152604082208291620007f79190620003ef901b620011511785620003fd565b91509150836001600160a01b0316600080516020620038bf83398151915283836040516200082f929190918252602082015260400190565b60405180910390a25050505050565b600062000313828462000b51565b80516001600160601b03811681146200086457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200089157600080fd5b81516001600160401b0380821115620008ae57620008ae62000869565b604051601f8301601f19908116603f01168101908282118183101715620008d957620008d962000869565b81604052838152602092508683858801011115620008f657600080fd5b600091505b838210156200091a5785820183015181830184015290820190620008fb565b838211156200092c5760008385830101525b9695505050505050565b600080600080608085870312156200094d57600080fd5b62000958856200084c565b935062000968602086016200084c565b60408601519093506001600160401b03808211156200098657600080fd5b62000994888389016200087f565b93506060870151915080821115620009ab57600080fd5b50620009ba878288016200087f565b91505092959194509250565b600181811c90821680620009db57607f821691505b602082108103620009fc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019357600081815260208120601f850160051c8101602086101562000a2b5750805b601f850160051c820191505b8181101562000a4c5782815560010162000a37565b505050505050565b81516001600160401b0381111562000a705762000a7062000869565b62000a888162000a818454620009c6565b8462000a02565b602080601f83116001811462000ac0576000841562000aa75750858301515b600019600386901b1c1916600185901b17855562000a4c565b600085815260208120601f198616915b8281101562000af15788860151825594840194600190910190840162000ad0565b508582101562000b105787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b6000821982111562000b4c5762000b4c62000b20565b500190565b60008282101562000b665762000b6662000b20565b500390565b60805160a05160c05160e051610100516101205161014051612cf262000bcd600039600081816103580152610f1a015260006117be0152600061180d015260006117e8015260006117410152600061176b015260006117950152612cf26000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c8063782d6fe111610160578063a457c2d7116100d8578063d505accf1161008c578063d547741f11610071578063d547741f146105fa578063dd62ed3e1461060d578063f1127ed81461064657600080fd5b8063d505accf146105c0578063d5391393146105d357600080fd5b8063b4b5ea57116100bd578063b4b5ea5714610587578063c3cda5201461059a578063ca15c873146105ad57600080fd5b8063a457c2d714610561578063a9059cbb1461057457600080fd5b80639010d07c1161012f57806395d89b411161011457806395d89b411461053e5780639ab24eb014610546578063a217fddf1461055957600080fd5b80639010d07c146104f257806391d148541461050557600080fd5b8063782d6fe11461048957806379cc6790146104b95780637ecebe00146104cc5780638e539e8c146104df57600080fd5b80633644e5151161020e57806342966c68116101c25780635c19a95c116101a75780635c19a95c146104255780636fcfff451461043857806370a082311461046057600080fd5b806342966c68146103ce578063587cde1e146103e157600080fd5b806339509351116101f357806339509351146103955780633a46b1a8146103a857806340c10f19146103bb57600080fd5b80633644e5151461037a57806336568abe1461038257600080fd5b806323b872dd116102655780632f2ff15d1161024a5780632f2ff15d1461032f578063313ce56714610344578063355274ea1461035357600080fd5b806323b872dd146102f9578063248a9ca31461030c57600080fd5b806301ffc9a71461029757806306fdde03146102bf578063095ea7b3146102d457806318160ddd146102e7575b600080fd5b6102aa6102a536600461281a565b610683565b60405190151581526020015b60405180910390f35b6102c76106df565b6040516102b69190612888565b6102aa6102e23660046128d7565b610771565b6002545b6040519081526020016102b6565b6102aa610307366004612901565b610789565b6102eb61031a36600461293d565b6000908152600a602052604090206001015490565b61034261033d366004612956565b6107ad565b005b604051601281526020016102b6565b6102eb7f000000000000000000000000000000000000000000000000000000000000000081565b6102eb6107d7565b610342610390366004612956565b6107e6565b6102aa6103a33660046128d7565b610877565b6102eb6103b63660046128d7565b6108b6565b6103426103c93660046128d7565b610930565b6103426103dc36600461293d565b610964565b61040d6103ef366004612982565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016102b6565b610342610433366004612982565b610971565b61044b610446366004612982565b61097b565b60405163ffffffff90911681526020016102b6565b6102eb61046e366004612982565b6001600160a01b031660009081526020819052604090205490565b61049c6104973660046128d7565b61099d565b6040516bffffffffffffffffffffffff90911681526020016102b6565b6103426104c73660046128d7565b6109b1565b6102eb6104da366004612982565b6109c6565b6102eb6104ed36600461293d565b6109e4565b61040d61050036600461299d565b610a40565b6102aa610513366004612956565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6102c7610a58565b6102eb610554366004612982565b610a67565b6102eb600081565b6102aa61056f3660046128d7565b610aee565b6102aa6105823660046128d7565b610b98565b61049c610595366004612982565b610ba6565b6103426105a83660046129d0565b610bb4565b6102eb6105bb36600461293d565b610cea565b6103426105ce366004612a28565b610d01565b6102eb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610342610608366004612956565b610e65565b6102eb61061b366004612a92565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610659610654366004612abc565b610e8a565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016102b6565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f0000000000000000000000000000000000000000000000000000000014806106d957506106d98261129a565b92915050565b6060600380546106ee90612afc565b80601f016020809104026020016040519081016040528092919081815260200182805461071a90612afc565b80156107675780601f1061073c57610100808354040283529160200191610767565b820191906000526020600020905b81548152906001019060200180831161074a57829003601f168201915b5050505050905090565b60003361077f818585611331565b5060019392505050565b600033610797858285611489565b6107a2858585611515565b506001949350505050565b6000828152600a60205260409020600101546107c881611708565b6107d28383611712565b505050565b60006107e1611734565b905090565b6001600160a01b03811633146108695760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610873828261185b565b5050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061077f90829086906108b1908790612b46565b611331565b60004382106109075760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610860565b6001600160a01b0383166000908152600860205260409020610929908361187d565b9392505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661095a81611708565b6107d28383611974565b61096e338261197e565b50565b61096e3382611988565b6001600160a01b0381166000908152600860205260408120546106d9906111e0565b60006109296109ac84846108b6565b611a19565b6109bc823383611489565b610873828261197e565b6001600160a01b0381166000908152600560205260408120546106d9565b6000438210610a355760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610860565b6106d960098361187d565b6000828152600b602052604081206109299083611a9d565b6060600480546106ee90612afc565b6001600160a01b0381166000908152600860205260408120548015610adb576001600160a01b0383166000908152600860205260409020610aa9600183612b5e565b81548110610ab957610ab9612b75565b60009182526020909120015464010000000090046001600160e01b0316610ade565b60005b6001600160e01b03169392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610860565b6107a28286868403611331565b60003361077f818585611515565b60006106d96109ac83610a67565b83421115610c045760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610860565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610c7e90610c769060a00160405160208183030381529060405280519060200120611aa9565b858585611b12565b9050610c8981611b3a565b8614610cd75760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610860565b610ce18188611988565b50505050505050565b6000818152600b602052604081206106d990611b62565b83421115610d515760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610860565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d808c611b3a565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610ddb82611aa9565b90506000610deb82878787611b12565b9050896001600160a01b0316816001600160a01b031614610e4e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610860565b610e598a8a8a611331565b50505050505050505050565b6000828152600a6020526040902060010154610e8081611708565b6107d2838361185b565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610ece57610ece612b75565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610f18828261108a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b0316610f4b60025490565b1115610fbf5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608401610860565b610fcd600961115183611b6c565b50505050565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610873576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff191660011790556110313390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610929836001600160a01b038416611cc0565b6001600160a01b0382166110e05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610860565b80600260008282546110f29190612b46565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361087360008383611d0f565b60006109298284612b46565b60006001600160e01b038211156111dc5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610860565b5090565b600063ffffffff8211156111dc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b038381166000908152600760205260408082205485841683529120546107d292918216911683611d1a565b60006109298284612b5e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106d957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106d9565b6001600160a01b0383166113ac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0382166114285760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610fcd57818110156115085760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610860565b610fcd8484848403611331565b6001600160a01b0383166115915760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b03821661160d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0383166000908152602081905260409020548181101561169c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610fcd848484611d0f565b61096e8133611e57565b61171c8282610fd3565b6000828152600b602052604090206107d29082611075565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561178d57507f000000000000000000000000000000000000000000000000000000000000000046145b156117b757507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6118658282611ecc565b6000828152600b602052604090206107d29082611f4f565b8154600090818160058111156118d757600061189884611f64565b6118a29085612b5e565b600088815260209020909150869082015463ffffffff1611156118c7578091506118d5565b6118d2816001612b46565b92505b505b808210156119245760006118eb838361204c565b600088815260209020909150869082015463ffffffff1611156119105780915061191e565b61191b816001612b46565b92505b506118d7565b801561195e5761194786611939600184612b5e565b600091825260209091200190565b5464010000000090046001600160e01b0316611961565b60005b6001600160e01b03169695505050505050565b6108738282610f0e565b6108738282612067565b6001600160a01b038281166000818152600760208181526040808420805485845282862054949093528787167fffffffffffffffffffffffff00000000000000000000000000000000000000008416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610fcd828483611d1a565b60006bffffffffffffffffffffffff8211156111dc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610860565b6000610929838361207f565b60006106d9611ab6611734565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611b23878787876120a9565b91509150611b308161216d565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b60006106d9825490565b82546000908190818115611bb957611b8987611939600185612b5e565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611bce565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611bee84868863ffffffff16565b9250600082118015611c065750805163ffffffff1643145b15611c4b57611c148361115d565b611c2388611939600186612b5e565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611cb6565b866040518060400160405280611c60436111e0565b63ffffffff168152602001611c748661115d565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6000818152600183016020526040812054611d07575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106d9565b5060006106d9565b6107d283838361125c565b816001600160a01b0316836001600160a01b031614158015611d3c5750600081115b156107d2576001600160a01b03831615611dca576001600160a01b03831660009081526008602052604081208190611d779061128e85611b6c565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611dbf929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156107d2576001600160a01b03821660009081526008602052604081208190611e009061115185611b6c565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611e48929190918252602082015260400190565b60405180910390a25050505050565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1661087357611e8a816122d2565b611e958360206122e4565b604051602001611ea6929190612b8b565b60408051601f198184030181529082905262461bcd60e51b825261086091600401612888565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1615610873576000828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610929836001600160a01b03841661250d565b600081600003611f7657506000919050565b60006001611f8384612600565b901c6001901b90506001818481611f9c57611f9c612c0c565b048201901c90506001818481611fb457611fb4612c0c565b048201901c90506001818481611fcc57611fcc612c0c565b048201901c90506001818481611fe457611fe4612c0c565b048201901c90506001818481611ffc57611ffc612c0c565b048201901c9050600181848161201457612014612c0c565b048201901c9050600181848161202c5761202c612c0c565b048201901c90506109298182858161204657612046612c0c565b04612694565b600061205b6002848418612c22565b61092990848416612b46565b61207182826126aa565b610fcd600961128e83611b6c565b600082600001828154811061209657612096612b75565b9060005260206000200154905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120e05750600090506003612164565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612134573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661215d57600060019250925050612164565b9150600090505b94509492505050565b600081600481111561218157612181612c44565b036121895750565b600181600481111561219d5761219d612c44565b036121ea5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610860565b60028160048111156121fe576121fe612c44565b0361224b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610860565b600381600481111561225f5761225f612c44565b0361096e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610860565b60606106d96001600160a01b03831660145b606060006122f3836002612c5a565b6122fe906002612b46565b67ffffffffffffffff81111561231657612316612c79565b6040519080825280601f01601f191660200182016040528015612340576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061237757612377612b75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106123da576123da612b75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612416846002612c5a565b612421906001612b46565b90505b60018111156124be577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061246257612462612b75565b1a60f81b82828151811061247857612478612b75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936124b781612c8f565b9050612424565b5083156109295760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610860565b600081815260018301602052604081205480156125f6576000612531600183612b5e565b855490915060009061254590600190612b5e565b90508181146125aa57600086600001828154811061256557612565612b75565b906000526020600020015490508087600001848154811061258857612588612b75565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806125bb576125bb612ca6565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106d9565b60009150506106d9565b600080608083901c1561261557608092831c92015b604083901c1561262757604092831c92015b602083901c1561263957602092831c92015b601083901c1561264b57601092831c92015b600883901c1561265d57600892831c92015b600483901c1561266f57600492831c92015b600283901c1561268157600292831c92015b600183901c156106d95760010192915050565b60008183106126a35781610929565b5090919050565b6001600160a01b0382166127265760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b038216600090815260208190526040902054818110156127b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36107d283600084611d0f565b60006020828403121561282c57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461092957600080fd5b60005b8381101561287757818101518382015260200161285f565b83811115610fcd5750506000910152565b60208152600082518060208401526128a781604085016020870161285c565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146128d257600080fd5b919050565b600080604083850312156128ea57600080fd5b6128f3836128bb565b946020939093013593505050565b60008060006060848603121561291657600080fd5b61291f846128bb565b925061292d602085016128bb565b9150604084013590509250925092565b60006020828403121561294f57600080fd5b5035919050565b6000806040838503121561296957600080fd5b82359150612979602084016128bb565b90509250929050565b60006020828403121561299457600080fd5b610929826128bb565b600080604083850312156129b057600080fd5b50508035926020909101359150565b803560ff811681146128d257600080fd5b60008060008060008060c087890312156129e957600080fd5b6129f2876128bb565b95506020870135945060408701359350612a0e606088016129bf565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215612a4357600080fd5b612a4c886128bb565b9650612a5a602089016128bb565b95506040880135945060608801359350612a76608089016129bf565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215612aa557600080fd5b612aae836128bb565b9150612979602084016128bb565b60008060408385031215612acf57600080fd5b612ad8836128bb565b9150602083013563ffffffff81168114612af157600080fd5b809150509250929050565b600181811c90821680612b1057607f821691505b602082108103611b5c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115612b5957612b59612b30565b500190565b600082821015612b7057612b70612b30565b500390565b634e487b7160e01b600052603260045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612bc381601785016020880161285c565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612c0081602884016020880161285c565b01602801949350505050565b634e487b7160e01b600052601260045260246000fd5b600082612c3f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b6000816000190483118215151615612c7457612c74612b30565b500290565b634e487b7160e01b600052604160045260246000fd5b600081612c9e57612c9e612b30565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209dfe1a11165bab5de5b5c2c50c39075b0fd24c82d6b3a53a0293534536e3649664736f6c634300080f0033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x38DF CODESIZE SUB DUP1 PUSH3 0x38DF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0x936 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE DUP3 SWAP1 DUP2 SWAP1 DUP2 DUP5 PUSH1 0x3 PUSH3 0x61 DUP4 DUP3 PUSH3 0xA54 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x70 DUP3 DUP3 PUSH3 0xA54 JUMP JUMPDEST POP POP DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 KECCAK256 DUP4 MLOAD DUP5 DUP4 ADD KECCAK256 PUSH1 0xE0 DUP3 SWAP1 MSTORE PUSH2 0x100 DUP2 SWAP1 MSTORE CHAINID PUSH1 0xA0 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP9 ADD DUP2 SWAP1 MSTORE DUP2 DUP4 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE ADDRESS DUP2 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP3 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0xC0 ADD SWAP1 MSTORE DUP1 MLOAD SWAP5 ADD SWAP4 SWAP1 SWAP4 KECCAK256 SWAP2 SWAP4 POP SWAP2 SWAP1 PUSH1 0x80 MSTORE ADDRESS PUSH1 0xC0 MSTORE PUSH2 0x120 MSTORE POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP1 DUP8 AND PUSH2 0x140 MSTORE PUSH3 0x123 SWAP3 POP CALLER SWAP2 POP DUP6 AND PUSH3 0x13A JUMP JUMPDEST PUSH3 0x130 PUSH1 0x0 CALLER PUSH3 0x155 JUMP JUMPDEST POP POP POP POP PUSH3 0xB6B JUMP JUMPDEST PUSH3 0x151 DUP3 DUP3 PUSH3 0x198 PUSH1 0x20 SHL PUSH3 0xF0E OR PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH3 0x16C DUP3 DUP3 PUSH3 0x258 PUSH1 0x20 SHL PUSH3 0xFD3 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH3 0x193 SWAP2 DUP4 SWAP1 PUSH3 0x1075 PUSH3 0x2FC DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH3 0x1AF DUP3 DUP3 PUSH3 0x31C PUSH1 0x20 SHL PUSH3 0x108A OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x140 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH3 0x1CC PUSH3 0x3E9 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST GT ISZERO PUSH3 0x239 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20746F74616C20737570706C79207269736B73206F PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x766572666C6F77696E6720766F746573 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x252 PUSH1 0x9 PUSH3 0x1151 PUSH3 0x3EF PUSH1 0x20 SHL OR DUP4 PUSH3 0x3FD JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x151 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x2B8 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x313 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0x58F JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x374 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x230 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x388 SWAP2 SWAP1 PUSH3 0xB36 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH3 0x151 PUSH1 0x0 DUP4 DUP4 PUSH3 0x5E1 JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x313 DUP3 DUP5 PUSH3 0xB36 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 DUP2 ISZERO PUSH3 0x45D JUMPI PUSH3 0x42C DUP8 PUSH3 0x41E PUSH1 0x1 DUP6 PUSH3 0xB51 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP1 SLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP3 MSTORE PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x472 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 POP PUSH3 0x490 DUP5 DUP7 DUP9 PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH3 0x4A9 JUMPI POP DUP1 MLOAD PUSH4 0xFFFFFFFF AND NUMBER EQ JUMPDEST ISZERO PUSH3 0x500 JUMPI PUSH3 0x4C5 DUP4 PUSH3 0x5F9 PUSH1 0x20 SHL PUSH3 0x115D OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x4D7 DUP9 PUSH3 0x41E PUSH1 0x1 DUP7 PUSH3 0xB51 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x585 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH3 0x522 NUMBER PUSH3 0x668 PUSH1 0x20 SHL PUSH3 0x11E0 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x543 DUP7 PUSH3 0x5F9 PUSH1 0x20 SHL PUSH3 0x115D OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP5 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 ADD SSTORE JUMPDEST POP POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x5D8 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x316 JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x316 JUMP JUMPDEST PUSH3 0x193 DUP4 DUP4 DUP4 PUSH3 0x6CF PUSH1 0x20 SHL PUSH3 0x125C OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH3 0x664 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32342062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0x230 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH3 0x664 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0x230 JUMP JUMPDEST PUSH3 0x6E7 DUP4 DUP4 DUP4 PUSH3 0x193 PUSH1 0x20 SHL PUSH3 0x7D2 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP6 DUP5 AND DUP4 MSTORE SWAP2 KECCAK256 SLOAD PUSH3 0x193 SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 DUP2 DUP4 EQ DUP1 ISZERO SWAP1 PUSH3 0x726 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH3 0x193 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH3 0x7B3 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP3 SWAP2 PUSH3 0x770 SWAP2 SWAP1 PUSH3 0x83E SWAP1 SHL PUSH3 0x128E OR DUP6 PUSH3 0x3FD JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x38BF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP4 PUSH1 0x40 MLOAD PUSH3 0x7A8 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH3 0x193 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP3 SWAP2 PUSH3 0x7F7 SWAP2 SWAP1 PUSH3 0x3EF SWAP1 SHL PUSH3 0x1151 OR DUP6 PUSH3 0x3FD JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x38BF DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP4 PUSH1 0x40 MLOAD PUSH3 0x82F SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x313 DUP3 DUP5 PUSH3 0xB51 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x8AE JUMPI PUSH3 0x8AE PUSH3 0x869 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x8D9 JUMPI PUSH3 0x8D9 PUSH3 0x869 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x8F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x91A JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x8FB JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x92C JUMPI PUSH1 0x0 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x94D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x958 DUP6 PUSH3 0x84C JUMP JUMPDEST SWAP4 POP PUSH3 0x968 PUSH1 0x20 DUP7 ADD PUSH3 0x84C JUMP JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD SWAP1 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x994 DUP9 DUP4 DUP10 ADD PUSH3 0x87F JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x9AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x9BA DUP8 DUP3 DUP9 ADD PUSH3 0x87F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x9DB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x9FC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x193 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0xA2B JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0xA4C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xA37 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0xA70 JUMPI PUSH3 0xA70 PUSH3 0x869 JUMP JUMPDEST PUSH3 0xA88 DUP2 PUSH3 0xA81 DUP5 SLOAD PUSH3 0x9C6 JUMP JUMPDEST DUP5 PUSH3 0xA02 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0xAC0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0xAA7 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0xA4C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0xAF1 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0xAD0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0xB10 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0xB4C JUMPI PUSH3 0xB4C PUSH3 0xB20 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH3 0xB66 JUMPI PUSH3 0xB66 PUSH3 0xB20 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x2CF2 PUSH3 0xBCD PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x358 ADD MSTORE PUSH2 0xF1A ADD MSTORE PUSH1 0x0 PUSH2 0x17BE ADD MSTORE PUSH1 0x0 PUSH2 0x180D ADD MSTORE PUSH1 0x0 PUSH2 0x17E8 ADD MSTORE PUSH1 0x0 PUSH2 0x1741 ADD MSTORE PUSH1 0x0 PUSH2 0x176B ADD MSTORE PUSH1 0x0 PUSH2 0x1795 ADD MSTORE PUSH2 0x2CF2 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 0x292 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 GT PUSH2 0x160 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xD505ACCF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x5C0 JUMPI DUP1 PUSH4 0xD5391393 EQ PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4B5EA57 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xB4B5EA57 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x561 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0x12F JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x9AB24EB0 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x782D6FE1 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x4B9 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x8E539E8C EQ PUSH2 0x4DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x5C19A95C GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x425 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x3CE JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 GT PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x3A46B1A8 EQ PUSH2 0x3A8 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x265 JUMPI DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x24A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x344 JUMPI DUP1 PUSH4 0x355274EA EQ PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2E7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x281A JUMP JUMPDEST PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C7 PUSH2 0x6DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B6 SWAP2 SWAP1 PUSH2 0x2888 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x771 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x307 CALLDATASIZE PUSH1 0x4 PUSH2 0x2901 JUMP JUMPDEST PUSH2 0x789 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2EB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x7D7 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x390 CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH2 0x7E6 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x3A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x3B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x3C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x930 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x3DC CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH2 0x964 JUMP JUMPDEST PUSH2 0x40D PUSH2 0x3EF CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x433 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0x971 JUMP JUMPDEST PUSH2 0x44B PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x49C PUSH2 0x497 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x4C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x4DA CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0x9C6 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x4ED CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH2 0x9E4 JUMP JUMPDEST PUSH2 0x40D PUSH2 0x500 CALLDATASIZE PUSH1 0x4 PUSH2 0x299D JUMP JUMPDEST PUSH2 0xA40 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x513 CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x2C7 PUSH2 0xA58 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x554 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x2EB PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x56F CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0xAEE JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0xB98 JUMP JUMPDEST PUSH2 0x49C PUSH2 0x595 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0xBA6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x5A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x5BB CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH2 0xCEA JUMP JUMPDEST PUSH2 0x342 PUSH2 0x5CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2A28 JUMP JUMPDEST PUSH2 0xD01 JUMP JUMPDEST PUSH2 0x2EB PUSH32 0x9F2DF0FED2C77648DE5860A4CC508CD0818C85B8B8A1AB4CEEEF8D981C8956A6 DUP2 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH2 0xE65 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x61B CALLDATASIZE PUSH1 0x4 PUSH2 0x2A92 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x659 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ABC JUMP JUMPDEST PUSH2 0xE8A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x6D9 JUMPI POP PUSH2 0x6D9 DUP3 PUSH2 0x129A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x6EE SWAP1 PUSH2 0x2AFC JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x71A SWAP1 PUSH2 0x2AFC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x767 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x73C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x767 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x74A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x77F DUP2 DUP6 DUP6 PUSH2 0x1331 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x797 DUP6 DUP3 DUP6 PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x7A2 DUP6 DUP6 DUP6 PUSH2 0x1515 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x7C8 DUP2 PUSH2 0x1708 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 PUSH2 0x1712 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7E1 PUSH2 0x1734 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x869 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0x185B JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x77F SWAP1 DUP3 SWAP1 DUP7 SWAP1 PUSH2 0x8B1 SWAP1 DUP8 SWAP1 PUSH2 0x2B46 JUMP JUMPDEST PUSH2 0x1331 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x907 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20626C6F636B206E6F7420796574206D696E656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x929 SWAP1 DUP4 PUSH2 0x187D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x9F2DF0FED2C77648DE5860A4CC508CD0818C85B8B8A1AB4CEEEF8D981C8956A6 PUSH2 0x95A DUP2 PUSH2 0x1708 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 PUSH2 0x1974 JUMP JUMPDEST PUSH2 0x96E CALLER DUP3 PUSH2 0x197E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x96E CALLER DUP3 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6D9 SWAP1 PUSH2 0x11E0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 PUSH2 0x9AC DUP5 DUP5 PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x1A19 JUMP JUMPDEST PUSH2 0x9BC DUP3 CALLER DUP4 PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0x197E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20626C6F636B206E6F7420796574206D696E656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0x6D9 PUSH1 0x9 DUP4 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x929 SWAP1 DUP4 PUSH2 0x1A9D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x6EE SWAP1 PUSH2 0x2AFC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAA9 PUSH1 0x1 DUP4 PUSH2 0x2B5E JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xAB9 JUMPI PUSH2 0xAB9 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0xADE JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP4 DUP2 LT ISZERO PUSH2 0xB8B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0x7A2 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x1331 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x77F DUP2 DUP6 DUP6 PUSH2 0x1515 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 PUSH2 0x9AC DUP4 PUSH2 0xA67 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0xC04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A207369676E61747572652065787069726564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xC7E SWAP1 PUSH2 0xC76 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1AA9 JUMP JUMPDEST DUP6 DUP6 DUP6 PUSH2 0x1B12 JUMP JUMPDEST SWAP1 POP PUSH2 0xC89 DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP7 EQ PUSH2 0xCD7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20696E76616C6964206E6F6E636500000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xCE1 DUP2 DUP9 PUSH2 0x1988 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x6D9 SWAP1 PUSH2 0x1B62 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0xD51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332305065726D69743A206578706972656420646561646C696E65000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP9 DUP9 DUP9 PUSH2 0xD80 DUP13 PUSH2 0x1B3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND SWAP1 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP2 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH2 0xDDB DUP3 PUSH2 0x1AA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDEB DUP3 DUP8 DUP8 DUP8 PUSH2 0x1B12 JUMP JUMPDEST SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332305065726D69743A20696E76616C6964207369676E61747572650000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xE59 DUP11 DUP11 DUP11 PUSH2 0x1331 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xE80 DUP2 PUSH2 0x1708 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 PUSH2 0x185B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP2 LT PUSH2 0xECE JUMPI PUSH2 0xECE PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP3 MSTORE PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF18 DUP3 DUP3 PUSH2 0x108A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0xF4B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST GT ISZERO PUSH2 0xFBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20746F74616C20737570706C79207269736B73206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x766572666C6F77696E6720766F74657300000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xFCD PUSH1 0x9 PUSH2 0x1151 DUP4 PUSH2 0x1B6C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x873 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1031 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1CC0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x10F2 SWAP2 SWAP1 PUSH2 0x2B46 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x873 PUSH1 0x0 DUP4 DUP4 PUSH2 0x1D0F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP3 DUP5 PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3234206269747300000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3220626974730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP6 DUP5 AND DUP4 MSTORE SWAP2 KECCAK256 SLOAD PUSH2 0x7D2 SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH2 0x1D1A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP3 DUP5 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x6D9 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x13AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1428 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0xFCD JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1508 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xFCD DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x1331 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1591 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x160D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x169C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xFCD DUP5 DUP5 DUP5 PUSH2 0x1D0F JUMP JUMPDEST PUSH2 0x96E DUP2 CALLER PUSH2 0x1E57 JUMP JUMPDEST PUSH2 0x171C DUP3 DUP3 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x7D2 SWAP1 DUP3 PUSH2 0x1075 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x178D JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x17B7 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x1865 DUP3 DUP3 PUSH2 0x1ECC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x7D2 SWAP1 DUP3 PUSH2 0x1F4F JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 DUP2 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x18D7 JUMPI PUSH1 0x0 PUSH2 0x1898 DUP5 PUSH2 0x1F64 JUMP JUMPDEST PUSH2 0x18A2 SWAP1 DUP6 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 SWAP2 POP DUP7 SWAP1 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x18C7 JUMPI DUP1 SWAP2 POP PUSH2 0x18D5 JUMP JUMPDEST PUSH2 0x18D2 DUP2 PUSH1 0x1 PUSH2 0x2B46 JUMP JUMPDEST SWAP3 POP JUMPDEST POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x1924 JUMPI PUSH1 0x0 PUSH2 0x18EB DUP4 DUP4 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 SWAP2 POP DUP7 SWAP1 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x1910 JUMPI DUP1 SWAP2 POP PUSH2 0x191E JUMP JUMPDEST PUSH2 0x191B DUP2 PUSH1 0x1 PUSH2 0x2B46 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x18D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x195E JUMPI PUSH2 0x1947 DUP7 PUSH2 0x1939 PUSH1 0x1 DUP5 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SWAP1 JUMP JUMPDEST SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1961 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0xF0E JUMP JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0x2067 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD DUP6 DUP5 MSTORE DUP3 DUP7 KECCAK256 SLOAD SWAP5 SWAP1 SWAP4 MSTORE DUP8 DUP8 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP5 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP6 AND SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 DUP6 SWAP3 SWAP2 PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F SWAP2 SWAP1 LOG4 PUSH2 0xFCD DUP3 DUP5 DUP4 PUSH2 0x1D1A JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2039 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3620626974730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP4 DUP4 PUSH2 0x207F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 PUSH2 0x1AB6 PUSH2 0x1734 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1B23 DUP8 DUP8 DUP8 DUP8 PUSH2 0x20A9 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1B30 DUP2 PUSH2 0x216D JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 DUP3 SLOAD SWAP1 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 DUP2 ISZERO PUSH2 0x1BB9 JUMPI PUSH2 0x1B89 DUP8 PUSH2 0x1939 PUSH1 0x1 DUP6 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP1 SLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP3 MSTORE PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1BCE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 POP PUSH2 0x1BEE DUP5 DUP7 DUP9 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH2 0x1C06 JUMPI POP DUP1 MLOAD PUSH4 0xFFFFFFFF AND NUMBER EQ JUMPDEST ISZERO PUSH2 0x1C4B JUMPI PUSH2 0x1C14 DUP4 PUSH2 0x115D JUMP JUMPDEST PUSH2 0x1C23 DUP9 PUSH2 0x1939 PUSH1 0x1 DUP7 PUSH2 0x2B5E JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1CB6 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x1C60 NUMBER PUSH2 0x11E0 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C74 DUP7 PUSH2 0x115D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP5 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 ADD SSTORE JUMPDEST POP POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1D07 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x6D9 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 DUP4 PUSH2 0x125C JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0x7D2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x1DCA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1D77 SWAP1 PUSH2 0x128E DUP6 PUSH2 0x1B6C JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1DBF SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x7D2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1E00 SWAP1 PUSH2 0x1151 DUP6 PUSH2 0x1B6C JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1E48 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x873 JUMPI PUSH2 0x1E8A DUP2 PUSH2 0x22D2 JUMP JUMPDEST PUSH2 0x1E95 DUP4 PUSH1 0x20 PUSH2 0x22E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1EA6 SWAP3 SWAP2 SWAP1 PUSH2 0x2B8B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x860 SWAP2 PUSH1 0x4 ADD PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x250D JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0x1F76 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1F83 DUP5 PUSH2 0x2600 JUMP JUMPDEST SWAP1 SHR PUSH1 0x1 SWAP1 SHL SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1F9C JUMPI PUSH2 0x1F9C PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FB4 JUMPI PUSH2 0x1FB4 PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FCC JUMPI PUSH2 0x1FCC PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FE4 JUMPI PUSH2 0x1FE4 PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FFC JUMPI PUSH2 0x1FFC PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x2014 JUMPI PUSH2 0x2014 PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x202C JUMPI PUSH2 0x202C PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH2 0x929 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2046 JUMPI PUSH2 0x2046 PUSH2 0x2C0C JUMP JUMPDEST DIV PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x205B PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x2C22 JUMP JUMPDEST PUSH2 0x929 SWAP1 DUP5 DUP5 AND PUSH2 0x2B46 JUMP JUMPDEST PUSH2 0x2071 DUP3 DUP3 PUSH2 0x26AA JUMP JUMPDEST PUSH2 0xFCD PUSH1 0x9 PUSH2 0x128E DUP4 PUSH2 0x1B6C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2096 JUMPI PUSH2 0x2096 PUSH2 0x2B75 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x20E0 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x2164 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2134 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x215D JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x2164 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2181 JUMPI PUSH2 0x2181 PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x2189 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x219D JUMPI PUSH2 0x219D PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x21EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x21FE JUMPI PUSH2 0x21FE PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x224B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x225F JUMPI PUSH2 0x225F PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x96E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6D9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x22F3 DUP4 PUSH1 0x2 PUSH2 0x2C5A JUMP JUMPDEST PUSH2 0x22FE SWAP1 PUSH1 0x2 PUSH2 0x2B46 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2316 JUMPI PUSH2 0x2316 PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2377 JUMPI PUSH2 0x2377 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x23DA JUMPI PUSH2 0x23DA PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x2416 DUP5 PUSH1 0x2 PUSH2 0x2C5A JUMP JUMPDEST PUSH2 0x2421 SWAP1 PUSH1 0x1 PUSH2 0x2B46 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x24BE JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x2462 JUMPI PUSH2 0x2462 PUSH2 0x2B75 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2478 JUMPI PUSH2 0x2478 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x24B7 DUP2 PUSH2 0x2C8F JUMP JUMPDEST SWAP1 POP PUSH2 0x2424 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x25F6 JUMPI PUSH1 0x0 PUSH2 0x2531 PUSH1 0x1 DUP4 PUSH2 0x2B5E JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2545 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x25AA JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2565 JUMPI PUSH2 0x2565 PUSH2 0x2B75 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2588 JUMPI PUSH2 0x2588 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x25BB JUMPI PUSH2 0x25BB PUSH2 0x2CA6 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x80 DUP4 SWAP1 SHR ISZERO PUSH2 0x2615 JUMPI PUSH1 0x80 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x40 DUP4 SWAP1 SHR ISZERO PUSH2 0x2627 JUMPI PUSH1 0x40 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x20 DUP4 SWAP1 SHR ISZERO PUSH2 0x2639 JUMPI PUSH1 0x20 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x10 DUP4 SWAP1 SHR ISZERO PUSH2 0x264B JUMPI PUSH1 0x10 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x8 DUP4 SWAP1 SHR ISZERO PUSH2 0x265D JUMPI PUSH1 0x8 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x4 DUP4 SWAP1 SHR ISZERO PUSH2 0x266F JUMPI PUSH1 0x4 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x2 DUP4 SWAP1 SHR ISZERO PUSH2 0x2681 JUMPI PUSH1 0x2 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x1 DUP4 SWAP1 SHR ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x26A3 JUMPI DUP2 PUSH2 0x929 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2726 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x27B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP8 SWAP1 SUB SWAP1 SSTORE MLOAD DUP6 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x7D2 DUP4 PUSH1 0x0 DUP5 PUSH2 0x1D0F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2877 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x285F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xFCD JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x28A7 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x285C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x28D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP4 PUSH2 0x28BB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291F DUP5 PUSH2 0x28BB JUMP JUMPDEST SWAP3 POP PUSH2 0x292D PUSH1 0x20 DUP6 ADD PUSH2 0x28BB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x294F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2969 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x2979 PUSH1 0x20 DUP5 ADD PUSH2 0x28BB JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x929 DUP3 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x28D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x29E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F2 DUP8 PUSH2 0x28BB JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x2A0E PUSH1 0x60 DUP9 ADD PUSH2 0x29BF JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP2 POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2A43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A4C DUP9 PUSH2 0x28BB JUMP JUMPDEST SWAP7 POP PUSH2 0x2A5A PUSH1 0x20 DUP10 ADD PUSH2 0x28BB JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH2 0x2A76 PUSH1 0x80 DUP10 ADD PUSH2 0x29BF JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AAE DUP4 PUSH2 0x28BB JUMP JUMPDEST SWAP2 POP PUSH2 0x2979 PUSH1 0x20 DUP5 ADD PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2ACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AD8 DUP4 PUSH2 0x28BB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2B10 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1B5C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2B59 JUMPI PUSH2 0x2B59 PUSH2 0x2B30 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2B70 JUMPI PUSH2 0x2B70 PUSH2 0x2B30 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x2BC3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x285C JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2C00 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x285C JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C3F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C74 JUMPI PUSH2 0x2C74 PUSH2 0x2B30 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2C9E JUMPI PUSH2 0x2C9E PUSH2 0x2B30 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 INVALID BYTE GT AND JUMPDEST 0xAB 0x5D 0xE5 0xB5 0xC2 0xC5 0xC CODECOPY SMOD JUMPDEST 0xF 0xD2 0x4C DUP3 0xD6 0xB3 0xA5 GASPRICE MUL SWAP4 MSTORE8 GASLIMIT CALLDATASIZE 0xE3 PUSH5 0x9664736F6C PUSH4 0x4300080F STOP CALLER 0xDE 0xC2 0xBA 0xCD 0xD2 CREATE JUMPDEST MSIZE 0xDE CALLVALUE 0xDA SWAP12 MSTORE RETURNDATASIZE SELFDESTRUCT DUP12 0xE4 0x2E 0x5E CODESIZE 0xE8 XOR 0xC8 0x2F 0xDB SIGNEXTEND 0xAE PUSH24 0x4387A7240000000000000000000000000000000000000000 ","sourceMap":"422:1172:43:-:0;;;626:268;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2464:602:28;;;;;;;;;;;;-1:-1:-1;;;2464:602:28;;;;763:5:43;;;;;733:7;2042:5:7;:13;763:5:43;2042::7;:13;:::i;:::-;-1:-1:-1;2065:7:7;:17;2075:7;2065;:17;:::i;:::-;-1:-1:-1;;2550:22:28;;;;;;;;;;2606:25;;;;;;2787;;;;2822:31;;;;2882:13;2863:32;;;;-1:-1:-1;3642:73:28;;2660:117;3642:73;;;4798:25:60;;;4839:18;;;4832:34;;;-1:-1:-1;4882:18:60;;4875:34;;;4925:18;;;4918:34;;;;3709:4:28;4968:19:60;;;4961:61;3642:73:28;;;;;;;;;;4770:19:60;;3642:73:28;;3632:84;;;;;;;;2550:22;;-1:-1:-1;2606:25:28;2660:117;2905:85;;3023:4;3000:28;;3038:21;;-1:-1:-1;;;;;;;;786:10:43;;::::2;;::::0;807:26:::2;::::0;-1:-1:-1;813:10:43::2;::::0;-1:-1:-1;807:26:43;::::2;:5;:26::i;:::-;844:42;2072:4:0;875:10:43;844;:42::i;:::-;626:268:::0;;;;422:1172;;1329:122;1420:23;1432:2;1436:6;1420:11;;;;;:23;;:::i;:::-;1329:122;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106:18;;;;:12;:18;;;;;;;;:31;;2129:7;;2106:22;;;;;:31;;:::i;:::-;;1978:166;;:::o;6705:285:10:-;6789:28;6801:7;6810:6;6789:11;;;;;:28;;:::i;:::-;1108:3:43;;-1:-1:-1;;;;;6835:29:10;:13;:11;;;:13;;:::i;:::-;:29;;6827:90;;;;-1:-1:-1;;;6827:90:10;;5235:2:60;6827:90:10;;;5217:21:60;5274:2;5254:18;;;5247:30;5313:34;5293:18;;;5286:62;-1:-1:-1;;;5364:18:60;;;5357:46;5420:19;;6827:90:10;;;;;;;;;6928:55;6945:23;6970:4;;;;;6976:6;6928:16;:55::i;:::-;;;6705:285;;:::o;7461:233:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;:::-;8383:57;;8297:150;;;;;:::o;8567:535:7:-;-1:-1:-1;;;;;8650:21:7;;8642:65;;;;-1:-1:-1;;;8642:65:7;;5652:2:60;8642:65:7;;;5634:21:60;5691:2;5671:18;;;5664:30;5730:33;5710:18;;;5703:61;5781:18;;8642:65:7;5450:355:60;8642:65:7;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:7;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;6221:25:60;;;8999:37:7;;6194:18:60;8999:37:7;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;:48::i;3242:106::-;3329:12;;;3242:106::o;9575:96:10:-;9633:7;9659:5;9663:1;9659;:5;:::i;8853:716::-;9085:12;;9023:17;;;;;9136:8;;:59;;9166:29;9180:5;9187:7;9193:1;9187:3;:7;:::i;:::-;10007:25;10067:21;;;10133:4;10120:18;;;10116:28;;9921:239;9166:29;9136:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9136:59:10;;;;;;;;9147:16;;;;;;;;;-1:-1:-1;9147:16:10;;;;;;;9136:59;9108:87;;9218:7;:13;;;-1:-1:-1;;;;;9206:25:10;;;9253:20;9256:9;9267:5;9253:2;:20;;:::i;:::-;9241:32;;9294:1;9288:3;:7;:44;;;;-1:-1:-1;9299:17:10;;:33;;9320:12;9299:33;9288:44;9284:279;;;9386:29;9405:9;9386:18;;;;;:29;;:::i;:::-;9348;9362:5;9369:7;9375:1;9369:3;:7;:::i;9348:29::-;:67;;-1:-1:-1;;;;;9348:67:10;;;;;;;;;;;;;;;;9284:279;;;9446:5;9457:94;;;;;;;;9480:31;9498:12;9480:17;;;;;:31;;:::i;:::-;9457:94;;;;;;9520:29;9539:9;9520:18;;;;;:29;;:::i;:::-;-1:-1:-1;;;;;9457:94:10;;;;;;9446:106;;;;;;;-1:-1:-1;9446:106:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9284:279;9061:508;;8853:716;;;;;;:::o;2206:404:34:-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;1128:193:43;1270:43;1296:4;1302:2;1306:6;1270:25;;;;;:43;;:::i;2836:192:33:-;2893:7;-1:-1:-1;;;;;2920:26:33;;;2912:78;;;;-1:-1:-1;;;2912:78:33;;6589:2:60;2912:78:33;;;6571:21:60;6628:2;6608:18;;;6601:30;6667:34;6647:18;;;6640:62;-1:-1:-1;;;6718:18:60;;;6711:37;6765:19;;2912:78:33;6387:403:60;2912:78:33;-1:-1:-1;3015:5:33;2836:192::o;15264:187::-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:33;;6997:2:60;15338:76:33;;;6979:21:60;7036:2;7016:18;;;7009:30;7075:34;7055:18;;;7048:62;-1:-1:-1;;;7126:18:60;;;7119:36;7172:19;;15338:76:33;6795:402:60;7409:254:10;7546:43;7572:4;7578:2;7582:6;7546:25;;;;;:43;;:::i;:::-;-1:-1:-1;;;;;2318:19:10;;;2292:7;2318:19;;;:10;:19;;;;;;;;;;;;;;;7600:56;;2318:19;;;;;7649:6;8340:10;;;;;;:24;;;8363:1;8354:6;:10;8340:24;8336:505;;;-1:-1:-1;;;;;8384:17:10;;;8380:221;;-1:-1:-1;;;;;8479:17:10;;8422;8479;;;:12;:17;;;;;;;8422;;8462:54;;8479:17;8498:9;;;;;8509:6;8462:16;:54::i;:::-;8421:95;;;;8560:3;-1:-1:-1;;;;;8539:47:10;-1:-1:-1;;;;;;;;;;;8565:9:10;8576;8539:47;;;;;;7376:25:60;;;7432:2;7417:18;;7410:34;7364:2;7349:18;;7202:248;8539:47:10;;;;;;;;8403:198;;8380:221;-1:-1:-1;;;;;8619:17:10;;;8615:216;;-1:-1:-1;;;;;8714:17:10;;8657;8714;;;:12;:17;;;;;;;8657;;8697:49;;8714:17;8733:4;;;;;8739:6;8697:16;:49::i;:::-;8656:90;;;;8790:3;-1:-1:-1;;;;;8769:47:10;-1:-1:-1;;;;;;;;;;;8795:9:10;8806;8769:47;;;;;;7376:25:60;;;7432:2;7417:18;;7410:34;7364:2;7349:18;;7202:248;8769:47:10;;;;;;;;8638:193;;8220:627;;;:::o;9677:101::-;9740:7;9766:5;9770:1;9766;:5;:::i;14:175:60:-;92:13;;-1:-1:-1;;;;;134:30:60;;124:41;;114:69;;179:1;176;169:12;114:69;14:175;;;:::o;194:127::-;255:10;250:3;246:20;243:1;236:31;286:4;283:1;276:15;310:4;307:1;300:15;326:885;380:5;433:3;426:4;418:6;414:17;410:27;400:55;;451:1;448;441:12;400:55;474:13;;-1:-1:-1;;;;;536:10:60;;;533:36;;;549:18;;:::i;:::-;624:2;618:9;592:2;678:13;;-1:-1:-1;;674:22:60;;;698:2;670:31;666:40;654:53;;;722:18;;;742:22;;;719:46;716:72;;;768:18;;:::i;:::-;808:10;804:2;797:22;843:2;835:6;828:18;865:4;855:14;;910:3;905:2;900;892:6;888:15;884:24;881:33;878:53;;;927:1;924;917:12;878:53;949:1;940:10;;959:133;973:2;970:1;967:9;959:133;;;1061:14;;;1057:23;;1051:30;1030:14;;;1026:23;;1019:63;984:10;;;;959:133;;;1110:2;1107:1;1104:9;1101:80;;;1169:1;1164:2;1159;1151:6;1147:15;1143:24;1136:35;1101:80;1199:6;326:885;-1:-1:-1;;;;;;326:885:60:o;1216:729::-;1331:6;1339;1347;1355;1408:3;1396:9;1387:7;1383:23;1379:33;1376:53;;;1425:1;1422;1415:12;1376:53;1448:39;1477:9;1448:39;:::i;:::-;1438:49;;1506:48;1550:2;1539:9;1535:18;1506:48;:::i;:::-;1598:2;1583:18;;1577:25;1496:58;;-1:-1:-1;;;;;;1651:14:60;;;1648:34;;;1678:1;1675;1668:12;1648:34;1701:61;1754:7;1745:6;1734:9;1730:22;1701:61;:::i;:::-;1691:71;;1808:2;1797:9;1793:18;1787:25;1771:41;;1837:2;1827:8;1824:16;1821:36;;;1853:1;1850;1843:12;1821:36;;1876:63;1931:7;1920:8;1909:9;1905:24;1876:63;:::i;:::-;1866:73;;;1216:729;;;;;;;:::o;1950:380::-;2029:1;2025:12;;;;2072;;;2093:61;;2147:4;2139:6;2135:17;2125:27;;2093:61;2200:2;2192:6;2189:14;2169:18;2166:38;2163:161;;2246:10;2241:3;2237:20;2234:1;2227:31;2281:4;2278:1;2271:15;2309:4;2306:1;2299:15;2163:161;;1950:380;;;:::o;2461:545::-;2563:2;2558:3;2555:11;2552:448;;;2599:1;2624:5;2620:2;2613:17;2669:4;2665:2;2655:19;2739:2;2727:10;2723:19;2720:1;2716:27;2710:4;2706:38;2775:4;2763:10;2760:20;2757:47;;;-1:-1:-1;2798:4:60;2757:47;2853:2;2848:3;2844:12;2841:1;2837:20;2831:4;2827:31;2817:41;;2908:82;2926:2;2919:5;2916:13;2908:82;;;2971:17;;;2952:1;2941:13;2908:82;;;2912:3;;;2461:545;;;:::o;3182:1352::-;3302:10;;-1:-1:-1;;;;;3324:30:60;;3321:56;;;3357:18;;:::i;:::-;3386:97;3476:6;3436:38;3468:4;3462:11;3436:38;:::i;:::-;3430:4;3386:97;:::i;:::-;3538:4;;3602:2;3591:14;;3619:1;3614:663;;;;4321:1;4338:6;4335:89;;;-1:-1:-1;4390:19:60;;;4384:26;4335:89;-1:-1:-1;;3139:1:60;3135:11;;;3131:24;3127:29;3117:40;3163:1;3159:11;;;3114:57;4437:81;;3584:944;;3614:663;2408:1;2401:14;;;2445:4;2432:18;;-1:-1:-1;;3650:20:60;;;3768:236;3782:7;3779:1;3776:14;3768:236;;;3871:19;;;3865:26;3850:42;;3963:27;;;;3931:1;3919:14;;;;3798:19;;3768:236;;;3772:3;4032:6;4023:7;4020:19;4017:201;;;4093:19;;;4087:26;-1:-1:-1;;4176:1:60;4172:14;;;4188:3;4168:24;4164:37;4160:42;4145:58;4130:74;;4017:201;-1:-1:-1;;;;;4264:1:60;4248:14;;;4244:22;4231:36;;-1:-1:-1;3182:1352:60:o;5810:127::-;5871:10;5866:3;5862:20;5859:1;5852:31;5902:4;5899:1;5892:15;5926:4;5923:1;5916:15;5942:128;5982:3;6013:1;6009:6;6006:1;6003:13;6000:39;;;6019:18;;:::i;:::-;-1:-1:-1;6055:9:60;;5942:128::o;6257:125::-;6297:4;6325:1;6322;6319:8;6316:34;;;6330:18;;:::i;:::-;-1:-1:-1;6367:9:60;;6257:125::o;7202:248::-;422:1172:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_27":{"entryPoint":null,"id":27,"parameterSlots":0,"returnSlots":0},"@DOMAIN_SEPARATOR_2467":{"entryPoint":2007,"id":2467,"parameterSlots":0,"returnSlots":1},"@MINTER_ROLE_11595":{"entryPoint":null,"id":11595,"parameterSlots":0,"returnSlots":0},"@_add_2214":{"entryPoint":4433,"id":2214,"parameterSlots":2,"returnSlots":1},"@_add_8447":{"entryPoint":7360,"id":8447,"parameterSlots":2,"returnSlots":1},"@_afterTokenTransfer_11681":{"entryPoint":7439,"id":11681,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_1423":{"entryPoint":null,"id":1423,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_1990":{"entryPoint":4700,"id":1990,"parameterSlots":3,"returnSlots":0},"@_approve_1358":{"entryPoint":4913,"id":1358,"parameterSlots":3,"returnSlots":0},"@_at_8581":{"entryPoint":8319,"id":8581,"parameterSlots":2,"returnSlots":1},"@_beforeTokenTransfer_1412":{"entryPoint":null,"id":1412,"parameterSlots":3,"returnSlots":0},"@_buildDomainSeparator_5433":{"entryPoint":null,"id":5433,"parameterSlots":3,"returnSlots":1},"@_burn_11717":{"entryPoint":6526,"id":11717,"parameterSlots":2,"returnSlots":0},"@_burn_1313":{"entryPoint":9898,"id":1313,"parameterSlots":2,"returnSlots":0},"@_burn_1960":{"entryPoint":8295,"id":1960,"parameterSlots":2,"returnSlots":0},"@_checkRole_131":{"entryPoint":7767,"id":131,"parameterSlots":2,"returnSlots":0},"@_checkRole_92":{"entryPoint":5896,"id":92,"parameterSlots":1,"returnSlots":0},"@_checkpointsLookup_1818":{"entryPoint":6269,"id":1818,"parameterSlots":2,"returnSlots":1},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_delegate_2029":{"entryPoint":6536,"id":2029,"parameterSlots":2,"returnSlots":0},"@_domainSeparatorV4_5406":{"entryPoint":5940,"id":5406,"parameterSlots":0,"returnSlots":1},"@_grantRole_283":{"entryPoint":4051,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":5906,"id":415,"parameterSlots":2,"returnSlots":0},"@_hashTypedDataV4_5449":{"entryPoint":6825,"id":5449,"parameterSlots":1,"returnSlots":1},"@_length_8564":{"entryPoint":null,"id":8564,"parameterSlots":1,"returnSlots":1},"@_maxSupply_11660":{"entryPoint":null,"id":11660,"parameterSlots":0,"returnSlots":1},"@_mint_11699":{"entryPoint":6516,"id":11699,"parameterSlots":2,"returnSlots":0},"@_mint_1241":{"entryPoint":4234,"id":1241,"parameterSlots":2,"returnSlots":0},"@_mint_1937":{"entryPoint":3854,"id":1937,"parameterSlots":2,"returnSlots":0},"@_moveVotingPower_2100":{"entryPoint":7450,"id":2100,"parameterSlots":3,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_remove_8531":{"entryPoint":9485,"id":8531,"parameterSlots":2,"returnSlots":1},"@_revokeRole_314":{"entryPoint":7884,"id":314,"parameterSlots":2,"returnSlots":0},"@_revokeRole_439":{"entryPoint":6235,"id":439,"parameterSlots":2,"returnSlots":0},"@_spendAllowance_1401":{"entryPoint":5257,"id":1401,"parameterSlots":3,"returnSlots":0},"@_subtract_2228":{"entryPoint":4750,"id":2228,"parameterSlots":2,"returnSlots":1},"@_throwError_4989":{"entryPoint":8557,"id":4989,"parameterSlots":1,"returnSlots":0},"@_transfer_1184":{"entryPoint":5397,"id":1184,"parameterSlots":3,"returnSlots":0},"@_unsafeAccess_2243":{"entryPoint":null,"id":2243,"parameterSlots":2,"returnSlots":1},"@_useNonce_2496":{"entryPoint":6970,"id":2496,"parameterSlots":1,"returnSlots":1},"@_writeCheckpoint_2200":{"entryPoint":7020,"id":2200,"parameterSlots":3,"returnSlots":2},"@add_8747":{"entryPoint":4213,"id":8747,"parameterSlots":2,"returnSlots":1},"@allowance_979":{"entryPoint":null,"id":979,"parameterSlots":2,"returnSlots":1},"@approve_1004":{"entryPoint":1905,"id":1004,"parameterSlots":2,"returnSlots":1},"@at_8843":{"entryPoint":6813,"id":8843,"parameterSlots":2,"returnSlots":1},"@average_6054":{"entryPoint":8268,"id":6054,"parameterSlots":2,"returnSlots":1},"@balanceOf_936":{"entryPoint":null,"id":936,"parameterSlots":1,"returnSlots":1},"@burnFrom_1545":{"entryPoint":2481,"id":1545,"parameterSlots":2,"returnSlots":0},"@burn_1524":{"entryPoint":2404,"id":1524,"parameterSlots":1,"returnSlots":0},"@cap_11597":{"entryPoint":null,"id":11597,"parameterSlots":0,"returnSlots":0},"@checkpoints_1600":{"entryPoint":3722,"id":1600,"parameterSlots":2,"returnSlots":1},"@current_4704":{"entryPoint":null,"id":4704,"parameterSlots":1,"returnSlots":1},"@decimals_912":{"entryPoint":null,"id":912,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_1107":{"entryPoint":2798,"id":1107,"parameterSlots":2,"returnSlots":1},"@delegateBySig_1892":{"entryPoint":2996,"id":1892,"parameterSlots":6,"returnSlots":0},"@delegate_1832":{"entryPoint":2417,"id":1832,"parameterSlots":1,"returnSlots":0},"@delegates_1631":{"entryPoint":null,"id":1631,"parameterSlots":1,"returnSlots":1},"@getCurrentVotes_2266":{"entryPoint":2982,"id":2266,"parameterSlots":1,"returnSlots":1},"@getPastTotalSupply_1712":{"entryPoint":2532,"id":1712,"parameterSlots":1,"returnSlots":1},"@getPastVotes_1689":{"entryPoint":2230,"id":1689,"parameterSlots":2,"returnSlots":1},"@getPriorVotes_2285":{"entryPoint":2461,"id":2285,"parameterSlots":2,"returnSlots":1},"@getRoleAdmin_146":{"entryPoint":null,"id":146,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_391":{"entryPoint":3306,"id":391,"parameterSlots":1,"returnSlots":1},"@getRoleMember_375":{"entryPoint":2624,"id":375,"parameterSlots":2,"returnSlots":1},"@getVotes_1662":{"entryPoint":2663,"id":1662,"parameterSlots":1,"returnSlots":1},"@grantRole_166":{"entryPoint":1965,"id":166,"parameterSlots":2,"returnSlots":0},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_1066":{"entryPoint":2167,"id":1066,"parameterSlots":2,"returnSlots":1},"@increment_4718":{"entryPoint":null,"id":4718,"parameterSlots":1,"returnSlots":0},"@length_8816":{"entryPoint":7010,"id":8816,"parameterSlots":1,"returnSlots":1},"@log2_6525":{"entryPoint":9728,"id":6525,"parameterSlots":1,"returnSlots":1},"@min_6031":{"entryPoint":9876,"id":6031,"parameterSlots":2,"returnSlots":1},"@mint_11648":{"entryPoint":2352,"id":11648,"parameterSlots":2,"returnSlots":0},"@name_892":{"entryPoint":1759,"id":892,"parameterSlots":0,"returnSlots":1},"@nonces_2456":{"entryPoint":2502,"id":2456,"parameterSlots":1,"returnSlots":1},"@numCheckpoints_1617":{"entryPoint":2427,"id":1617,"parameterSlots":1,"returnSlots":1},"@permit_2440":{"entryPoint":3329,"id":2440,"parameterSlots":7,"returnSlots":0},"@recover_5236":{"entryPoint":6930,"id":5236,"parameterSlots":4,"returnSlots":1},"@remove_8774":{"entryPoint":8015,"id":8774,"parameterSlots":2,"returnSlots":1},"@renounceRole_209":{"entryPoint":2022,"id":209,"parameterSlots":2,"returnSlots":0},"@revokeRole_186":{"entryPoint":3685,"id":186,"parameterSlots":2,"returnSlots":0},"@sqrt_6357":{"entryPoint":8036,"id":6357,"parameterSlots":1,"returnSlots":1},"@supportsInterface_356":{"entryPoint":1667,"id":356,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5975":{"entryPoint":null,"id":5975,"parameterSlots":1,"returnSlots":1},"@supportsInterface_60":{"entryPoint":4762,"id":60,"parameterSlots":1,"returnSlots":1},"@symbol_902":{"entryPoint":2648,"id":902,"parameterSlots":0,"returnSlots":1},"@toHexString_4914":{"entryPoint":8932,"id":4914,"parameterSlots":2,"returnSlots":1},"@toHexString_4934":{"entryPoint":8914,"id":4934,"parameterSlots":1,"returnSlots":1},"@toTypedDataHash_5295":{"entryPoint":null,"id":5295,"parameterSlots":2,"returnSlots":1},"@toUint224_6956":{"entryPoint":4445,"id":6956,"parameterSlots":1,"returnSlots":1},"@toUint32_7556":{"entryPoint":4576,"id":7556,"parameterSlots":1,"returnSlots":1},"@toUint96_7356":{"entryPoint":6681,"id":7356,"parameterSlots":1,"returnSlots":1},"@totalSupply_922":{"entryPoint":null,"id":922,"parameterSlots":0,"returnSlots":1},"@transferFrom_1037":{"entryPoint":1929,"id":1037,"parameterSlots":3,"returnSlots":1},"@transfer_961":{"entryPoint":2968,"id":961,"parameterSlots":2,"returnSlots":1},"@tryRecover_5203":{"entryPoint":8361,"id":5203,"parameterSlots":4,"returnSlots":2},"abi_decode_address":{"entryPoint":10427,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":10626,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":10898,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":10497,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":10792,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":10455,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":10704,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_uint32":{"entryPoint":10940,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":10557,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":10582,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":10653,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":10266,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":10687,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":11147,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10376,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_136d0f69bc85a5c125b5cc368e2880ebdb3c89d4d9828f6476431c386ea60257__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1a23b43d95073d55a7380117ca03cace60cd22fee15d5cb140d51e46236e6872__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3e89525a63fb9c966b61cf8f5305156de8420bc773a2b60828a2f32c3c5797bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_94ca1ab58dfda790a1782ffbb0c0a140ec51d4148dbeecc6c39e37b25ff4b124__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Checkpoint_$1563_memory_ptr__to_t_struct$_Checkpoint_$1563_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11078,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11298,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11354,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11102,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":10332,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":11407,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":11004,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":11056,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11276,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":11332,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":11430,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":11125,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":11385,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:21932:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"83:263:60","statements":[{"body":{"nodeType":"YulBlock","src":"129:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"138:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"141:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"131:6:60"},"nodeType":"YulFunctionCall","src":"131:12:60"},"nodeType":"YulExpressionStatement","src":"131:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"104:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"113:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:60"},"nodeType":"YulFunctionCall","src":"100:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"125:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"96:3:60"},"nodeType":"YulFunctionCall","src":"96:32:60"},"nodeType":"YulIf","src":"93:52:60"},{"nodeType":"YulVariableDeclaration","src":"154:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"180:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"167:12:60"},"nodeType":"YulFunctionCall","src":"167:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"158:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"300:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:60"},"nodeType":"YulFunctionCall","src":"302:12:60"},"nodeType":"YulExpressionStatement","src":"302:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"212:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"230:66:60","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"219:3:60"},"nodeType":"YulFunctionCall","src":"219:78:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"209:2:60"},"nodeType":"YulFunctionCall","src":"209:89:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"202:6:60"},"nodeType":"YulFunctionCall","src":"202:97:60"},"nodeType":"YulIf","src":"199:117:60"},{"nodeType":"YulAssignment","src":"325:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"335:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"325:6:60"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"49:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"60:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"72:6:60","type":""}],"src":"14:332:60"},{"body":{"nodeType":"YulBlock","src":"446:92:60","statements":[{"nodeType":"YulAssignment","src":"456:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:60"},"nodeType":"YulFunctionCall","src":"464:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"456:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"498:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"523:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"516:6:60"},"nodeType":"YulFunctionCall","src":"516:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"509:6:60"},"nodeType":"YulFunctionCall","src":"509:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"491:6:60"},"nodeType":"YulFunctionCall","src":"491:41:60"},"nodeType":"YulExpressionStatement","src":"491:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"415:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"426:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"437:4:60","type":""}],"src":"351:187:60"},{"body":{"nodeType":"YulBlock","src":"596:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"606:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"615:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"610:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"675:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"700:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"705:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"696:3:60"},"nodeType":"YulFunctionCall","src":"696:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"719:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"724:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:60"},"nodeType":"YulFunctionCall","src":"715:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"709:5:60"},"nodeType":"YulFunctionCall","src":"709:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"689:6:60"},"nodeType":"YulFunctionCall","src":"689:39:60"},"nodeType":"YulExpressionStatement","src":"689:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"636:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"639:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"633:2:60"},"nodeType":"YulFunctionCall","src":"633:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"647:19:60","statements":[{"nodeType":"YulAssignment","src":"649:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"658:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"661:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"654:3:60"},"nodeType":"YulFunctionCall","src":"654:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"649:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"629:3:60","statements":[]},"src":"625:113:60"},{"body":{"nodeType":"YulBlock","src":"764:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"777:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"782:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"773:3:60"},"nodeType":"YulFunctionCall","src":"773:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"791:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"766:6:60"},"nodeType":"YulFunctionCall","src":"766:27:60"},"nodeType":"YulExpressionStatement","src":"766:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"753:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"756:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"750:2:60"},"nodeType":"YulFunctionCall","src":"750:13:60"},"nodeType":"YulIf","src":"747:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"574:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"579:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"584:6:60","type":""}],"src":"543:258:60"},{"body":{"nodeType":"YulBlock","src":"927:321:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"944:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"955:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"937:6:60"},"nodeType":"YulFunctionCall","src":"937:21:60"},"nodeType":"YulExpressionStatement","src":"937:21:60"},{"nodeType":"YulVariableDeclaration","src":"967:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"987:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"981:5:60"},"nodeType":"YulFunctionCall","src":"981:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"971:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1014:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1025:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1010:3:60"},"nodeType":"YulFunctionCall","src":"1010:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"1030:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1003:6:60"},"nodeType":"YulFunctionCall","src":"1003:34:60"},"nodeType":"YulExpressionStatement","src":"1003:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1072:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1080:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1068:3:60"},"nodeType":"YulFunctionCall","src":"1068:15:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1089:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1100:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1085:3:60"},"nodeType":"YulFunctionCall","src":"1085:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"1105:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1046:21:60"},"nodeType":"YulFunctionCall","src":"1046:66:60"},"nodeType":"YulExpressionStatement","src":"1046:66:60"},{"nodeType":"YulAssignment","src":"1121:121:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1137:9:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1156:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1164:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1152:3:60"},"nodeType":"YulFunctionCall","src":"1152:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"1169:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1148:3:60"},"nodeType":"YulFunctionCall","src":"1148:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1133:3:60"},"nodeType":"YulFunctionCall","src":"1133:104:60"},{"kind":"number","nodeType":"YulLiteral","src":"1239:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1129:3:60"},"nodeType":"YulFunctionCall","src":"1129:113:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1121:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"896:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"907:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"918:4:60","type":""}],"src":"806:442:60"},{"body":{"nodeType":"YulBlock","src":"1302:147:60","statements":[{"nodeType":"YulAssignment","src":"1312:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1334:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1321:12:60"},"nodeType":"YulFunctionCall","src":"1321:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1312:5:60"}]},{"body":{"nodeType":"YulBlock","src":"1427:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1436:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1439:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1429:6:60"},"nodeType":"YulFunctionCall","src":"1429:12:60"},"nodeType":"YulExpressionStatement","src":"1429:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1363:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1374:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1381:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1370:3:60"},"nodeType":"YulFunctionCall","src":"1370:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1360:2:60"},"nodeType":"YulFunctionCall","src":"1360:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1353:6:60"},"nodeType":"YulFunctionCall","src":"1353:73:60"},"nodeType":"YulIf","src":"1350:93:60"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1281:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1292:5:60","type":""}],"src":"1253:196:60"},{"body":{"nodeType":"YulBlock","src":"1541:167:60","statements":[{"body":{"nodeType":"YulBlock","src":"1587:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1596:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1599:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1589:6:60"},"nodeType":"YulFunctionCall","src":"1589:12:60"},"nodeType":"YulExpressionStatement","src":"1589:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1562:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1571:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1558:3:60"},"nodeType":"YulFunctionCall","src":"1558:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1583:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1554:3:60"},"nodeType":"YulFunctionCall","src":"1554:32:60"},"nodeType":"YulIf","src":"1551:52:60"},{"nodeType":"YulAssignment","src":"1612:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1641:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1622:18:60"},"nodeType":"YulFunctionCall","src":"1622:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1612:6:60"}]},{"nodeType":"YulAssignment","src":"1660:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1687:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1698:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1683:3:60"},"nodeType":"YulFunctionCall","src":"1683:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1670:12:60"},"nodeType":"YulFunctionCall","src":"1670:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1660:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1499:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1510:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1522:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1530:6:60","type":""}],"src":"1454:254:60"},{"body":{"nodeType":"YulBlock","src":"1814:76:60","statements":[{"nodeType":"YulAssignment","src":"1824:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1836:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1847:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1832:3:60"},"nodeType":"YulFunctionCall","src":"1832:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1824:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1866:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"1877:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1859:6:60"},"nodeType":"YulFunctionCall","src":"1859:25:60"},"nodeType":"YulExpressionStatement","src":"1859:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1783:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1794:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1805:4:60","type":""}],"src":"1713:177:60"},{"body":{"nodeType":"YulBlock","src":"1999:224:60","statements":[{"body":{"nodeType":"YulBlock","src":"2045:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2054:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2057:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2047:6:60"},"nodeType":"YulFunctionCall","src":"2047:12:60"},"nodeType":"YulExpressionStatement","src":"2047:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2020:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2029:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2016:3:60"},"nodeType":"YulFunctionCall","src":"2016:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2041:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2012:3:60"},"nodeType":"YulFunctionCall","src":"2012:32:60"},"nodeType":"YulIf","src":"2009:52:60"},{"nodeType":"YulAssignment","src":"2070:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2099:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2080:18:60"},"nodeType":"YulFunctionCall","src":"2080:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2070:6:60"}]},{"nodeType":"YulAssignment","src":"2118:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2151:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2162:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2147:3:60"},"nodeType":"YulFunctionCall","src":"2147:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2128:18:60"},"nodeType":"YulFunctionCall","src":"2128:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2118:6:60"}]},{"nodeType":"YulAssignment","src":"2175:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2202:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2213:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2198:3:60"},"nodeType":"YulFunctionCall","src":"2198:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2185:12:60"},"nodeType":"YulFunctionCall","src":"2185:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2175:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1949:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1960:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1972:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1980:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1988:6:60","type":""}],"src":"1895:328:60"},{"body":{"nodeType":"YulBlock","src":"2298:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"2344:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2353:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2356:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2346:6:60"},"nodeType":"YulFunctionCall","src":"2346:12:60"},"nodeType":"YulExpressionStatement","src":"2346:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2319:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2328:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2315:3:60"},"nodeType":"YulFunctionCall","src":"2315:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2340:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2311:3:60"},"nodeType":"YulFunctionCall","src":"2311:32:60"},"nodeType":"YulIf","src":"2308:52:60"},{"nodeType":"YulAssignment","src":"2369:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2392:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2379:12:60"},"nodeType":"YulFunctionCall","src":"2379:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2369:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2264:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2275:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2287:6:60","type":""}],"src":"2228:180:60"},{"body":{"nodeType":"YulBlock","src":"2514:76:60","statements":[{"nodeType":"YulAssignment","src":"2524:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2536:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2547:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2532:3:60"},"nodeType":"YulFunctionCall","src":"2532:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2524:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2566:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"2577:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2559:6:60"},"nodeType":"YulFunctionCall","src":"2559:25:60"},"nodeType":"YulExpressionStatement","src":"2559:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2483:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2494:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2505:4:60","type":""}],"src":"2413:177:60"},{"body":{"nodeType":"YulBlock","src":"2682:167:60","statements":[{"body":{"nodeType":"YulBlock","src":"2728:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2737:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2740:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2730:6:60"},"nodeType":"YulFunctionCall","src":"2730:12:60"},"nodeType":"YulExpressionStatement","src":"2730:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2703:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2712:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2699:3:60"},"nodeType":"YulFunctionCall","src":"2699:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2724:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2695:3:60"},"nodeType":"YulFunctionCall","src":"2695:32:60"},"nodeType":"YulIf","src":"2692:52:60"},{"nodeType":"YulAssignment","src":"2753:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2776:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2763:12:60"},"nodeType":"YulFunctionCall","src":"2763:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2753:6:60"}]},{"nodeType":"YulAssignment","src":"2795:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2828:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2839:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2824:3:60"},"nodeType":"YulFunctionCall","src":"2824:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2805:18:60"},"nodeType":"YulFunctionCall","src":"2805:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2795:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2640:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2651:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2663:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2671:6:60","type":""}],"src":"2595:254:60"},{"body":{"nodeType":"YulBlock","src":"2951:87:60","statements":[{"nodeType":"YulAssignment","src":"2961:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2973:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2984:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2969:3:60"},"nodeType":"YulFunctionCall","src":"2969:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2961:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3003:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3018:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3026:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3014:3:60"},"nodeType":"YulFunctionCall","src":"3014:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2996:6:60"},"nodeType":"YulFunctionCall","src":"2996:36:60"},"nodeType":"YulExpressionStatement","src":"2996:36:60"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2920:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2931:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2942:4:60","type":""}],"src":"2854:184:60"},{"body":{"nodeType":"YulBlock","src":"3113:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"3159:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3168:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3171:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3161:6:60"},"nodeType":"YulFunctionCall","src":"3161:12:60"},"nodeType":"YulExpressionStatement","src":"3161:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3134:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3143:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3130:3:60"},"nodeType":"YulFunctionCall","src":"3130:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3155:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3126:3:60"},"nodeType":"YulFunctionCall","src":"3126:32:60"},"nodeType":"YulIf","src":"3123:52:60"},{"nodeType":"YulAssignment","src":"3184:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3207:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3194:12:60"},"nodeType":"YulFunctionCall","src":"3194:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3184:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3079:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3090:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3102:6:60","type":""}],"src":"3043:180:60"},{"body":{"nodeType":"YulBlock","src":"3298:116:60","statements":[{"body":{"nodeType":"YulBlock","src":"3344:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3353:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3356:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3346:6:60"},"nodeType":"YulFunctionCall","src":"3346:12:60"},"nodeType":"YulExpressionStatement","src":"3346:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3319:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3328:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3315:3:60"},"nodeType":"YulFunctionCall","src":"3315:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3340:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3311:3:60"},"nodeType":"YulFunctionCall","src":"3311:32:60"},"nodeType":"YulIf","src":"3308:52:60"},{"nodeType":"YulAssignment","src":"3369:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3398:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3379:18:60"},"nodeType":"YulFunctionCall","src":"3379:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3369:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3264:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3275:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3287:6:60","type":""}],"src":"3228:186:60"},{"body":{"nodeType":"YulBlock","src":"3520:125:60","statements":[{"nodeType":"YulAssignment","src":"3530:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3538:3:60"},"nodeType":"YulFunctionCall","src":"3538:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3530:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3572:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3587:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3595:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3583:3:60"},"nodeType":"YulFunctionCall","src":"3583:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3565:6:60"},"nodeType":"YulFunctionCall","src":"3565:74:60"},"nodeType":"YulExpressionStatement","src":"3565:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3489:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3500:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3511:4:60","type":""}],"src":"3419:226:60"},{"body":{"nodeType":"YulBlock","src":"3749:93:60","statements":[{"nodeType":"YulAssignment","src":"3759:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3771:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3782:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3767:3:60"},"nodeType":"YulFunctionCall","src":"3767:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3759:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3801:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3816:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3824:10:60","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3812:3:60"},"nodeType":"YulFunctionCall","src":"3812:23:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3794:6:60"},"nodeType":"YulFunctionCall","src":"3794:42:60"},"nodeType":"YulExpressionStatement","src":"3794:42:60"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3718:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3729:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3740:4:60","type":""}],"src":"3650:192:60"},{"body":{"nodeType":"YulBlock","src":"3946:109:60","statements":[{"nodeType":"YulAssignment","src":"3956:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3968:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3979:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3964:3:60"},"nodeType":"YulFunctionCall","src":"3964:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3956:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3998:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4013:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4021:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4009:3:60"},"nodeType":"YulFunctionCall","src":"4009:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3991:6:60"},"nodeType":"YulFunctionCall","src":"3991:58:60"},"nodeType":"YulExpressionStatement","src":"3991:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3915:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3926:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3937:4:60","type":""}],"src":"3847:208:60"},{"body":{"nodeType":"YulBlock","src":"4147:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"4193:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4202:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4205:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4195:6:60"},"nodeType":"YulFunctionCall","src":"4195:12:60"},"nodeType":"YulExpressionStatement","src":"4195:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4168:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4177:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4164:3:60"},"nodeType":"YulFunctionCall","src":"4164:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4189:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4160:3:60"},"nodeType":"YulFunctionCall","src":"4160:32:60"},"nodeType":"YulIf","src":"4157:52:60"},{"nodeType":"YulAssignment","src":"4218:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4241:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4228:12:60"},"nodeType":"YulFunctionCall","src":"4228:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4218:6:60"}]},{"nodeType":"YulAssignment","src":"4260:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4287:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4298:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4283:3:60"},"nodeType":"YulFunctionCall","src":"4283:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4270:12:60"},"nodeType":"YulFunctionCall","src":"4270:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4260:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4105:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4116:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4128:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4136:6:60","type":""}],"src":"4060:248:60"},{"body":{"nodeType":"YulBlock","src":"4360:109:60","statements":[{"nodeType":"YulAssignment","src":"4370:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4392:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4379:12:60"},"nodeType":"YulFunctionCall","src":"4379:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4370:5:60"}]},{"body":{"nodeType":"YulBlock","src":"4447:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4456:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4459:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4449:6:60"},"nodeType":"YulFunctionCall","src":"4449:12:60"},"nodeType":"YulExpressionStatement","src":"4449:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4421:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4432:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"4439:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4428:3:60"},"nodeType":"YulFunctionCall","src":"4428:16:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4418:2:60"},"nodeType":"YulFunctionCall","src":"4418:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4411:6:60"},"nodeType":"YulFunctionCall","src":"4411:35:60"},"nodeType":"YulIf","src":"4408:55:60"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4339:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"4350:5:60","type":""}],"src":"4313:156:60"},{"body":{"nodeType":"YulBlock","src":"4627:378:60","statements":[{"body":{"nodeType":"YulBlock","src":"4674:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4683:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4686:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4676:6:60"},"nodeType":"YulFunctionCall","src":"4676:12:60"},"nodeType":"YulExpressionStatement","src":"4676:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4648:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4657:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4644:3:60"},"nodeType":"YulFunctionCall","src":"4644:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4669:3:60","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4640:3:60"},"nodeType":"YulFunctionCall","src":"4640:33:60"},"nodeType":"YulIf","src":"4637:53:60"},{"nodeType":"YulAssignment","src":"4699:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4728:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4709:18:60"},"nodeType":"YulFunctionCall","src":"4709:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4699:6:60"}]},{"nodeType":"YulAssignment","src":"4747:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4774:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4785:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4770:3:60"},"nodeType":"YulFunctionCall","src":"4770:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4757:12:60"},"nodeType":"YulFunctionCall","src":"4757:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4747:6:60"}]},{"nodeType":"YulAssignment","src":"4798:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4825:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4836:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4821:3:60"},"nodeType":"YulFunctionCall","src":"4821:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4808:12:60"},"nodeType":"YulFunctionCall","src":"4808:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4798:6:60"}]},{"nodeType":"YulAssignment","src":"4849:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4880:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4891:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4876:3:60"},"nodeType":"YulFunctionCall","src":"4876:18:60"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"4859:16:60"},"nodeType":"YulFunctionCall","src":"4859:36:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4849:6:60"}]},{"nodeType":"YulAssignment","src":"4904:43:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4931:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4942:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4927:3:60"},"nodeType":"YulFunctionCall","src":"4927:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4914:12:60"},"nodeType":"YulFunctionCall","src":"4914:33:60"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4904:6:60"}]},{"nodeType":"YulAssignment","src":"4956:43:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4983:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4994:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4979:3:60"},"nodeType":"YulFunctionCall","src":"4979:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4966:12:60"},"nodeType":"YulFunctionCall","src":"4966:33:60"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4956:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4553:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4564:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4576:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4584:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4592:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4600:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4608:6:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4616:6:60","type":""}],"src":"4474:531:60"},{"body":{"nodeType":"YulBlock","src":"5180:436:60","statements":[{"body":{"nodeType":"YulBlock","src":"5227:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5236:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5239:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5229:6:60"},"nodeType":"YulFunctionCall","src":"5229:12:60"},"nodeType":"YulExpressionStatement","src":"5229:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5201:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5210:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5197:3:60"},"nodeType":"YulFunctionCall","src":"5197:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5222:3:60","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5193:3:60"},"nodeType":"YulFunctionCall","src":"5193:33:60"},"nodeType":"YulIf","src":"5190:53:60"},{"nodeType":"YulAssignment","src":"5252:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5281:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5262:18:60"},"nodeType":"YulFunctionCall","src":"5262:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5252:6:60"}]},{"nodeType":"YulAssignment","src":"5300:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5333:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5344:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5329:3:60"},"nodeType":"YulFunctionCall","src":"5329:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5310:18:60"},"nodeType":"YulFunctionCall","src":"5310:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5300:6:60"}]},{"nodeType":"YulAssignment","src":"5357:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5384:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5395:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5380:3:60"},"nodeType":"YulFunctionCall","src":"5380:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5367:12:60"},"nodeType":"YulFunctionCall","src":"5367:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5357:6:60"}]},{"nodeType":"YulAssignment","src":"5408:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5435:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5446:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5431:3:60"},"nodeType":"YulFunctionCall","src":"5431:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5418:12:60"},"nodeType":"YulFunctionCall","src":"5418:32:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5408:6:60"}]},{"nodeType":"YulAssignment","src":"5459:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5490:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5501:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5486:3:60"},"nodeType":"YulFunctionCall","src":"5486:19:60"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"5469:16:60"},"nodeType":"YulFunctionCall","src":"5469:37:60"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5459:6:60"}]},{"nodeType":"YulAssignment","src":"5515:43:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5542:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5553:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5538:3:60"},"nodeType":"YulFunctionCall","src":"5538:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5525:12:60"},"nodeType":"YulFunctionCall","src":"5525:33:60"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"5515:6:60"}]},{"nodeType":"YulAssignment","src":"5567:43:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5594:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5605:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5590:3:60"},"nodeType":"YulFunctionCall","src":"5590:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5577:12:60"},"nodeType":"YulFunctionCall","src":"5577:33:60"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"5567:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5098:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5109:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5121:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5129:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5137:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5145:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5153:6:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5161:6:60","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5169:6:60","type":""}],"src":"5010:606:60"},{"body":{"nodeType":"YulBlock","src":"5708:173:60","statements":[{"body":{"nodeType":"YulBlock","src":"5754:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5763:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5766:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5756:6:60"},"nodeType":"YulFunctionCall","src":"5756:12:60"},"nodeType":"YulExpressionStatement","src":"5756:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5729:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5738:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5725:3:60"},"nodeType":"YulFunctionCall","src":"5725:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5750:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5721:3:60"},"nodeType":"YulFunctionCall","src":"5721:32:60"},"nodeType":"YulIf","src":"5718:52:60"},{"nodeType":"YulAssignment","src":"5779:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5808:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5789:18:60"},"nodeType":"YulFunctionCall","src":"5789:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5779:6:60"}]},{"nodeType":"YulAssignment","src":"5827:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5860:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5871:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5856:3:60"},"nodeType":"YulFunctionCall","src":"5856:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5837:18:60"},"nodeType":"YulFunctionCall","src":"5837:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5827:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5666:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5677:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5689:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5697:6:60","type":""}],"src":"5621:260:60"},{"body":{"nodeType":"YulBlock","src":"5972:264:60","statements":[{"body":{"nodeType":"YulBlock","src":"6018:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6027:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6030:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6020:6:60"},"nodeType":"YulFunctionCall","src":"6020:12:60"},"nodeType":"YulExpressionStatement","src":"6020:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5993:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"6002:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5989:3:60"},"nodeType":"YulFunctionCall","src":"5989:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"6014:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5985:3:60"},"nodeType":"YulFunctionCall","src":"5985:32:60"},"nodeType":"YulIf","src":"5982:52:60"},{"nodeType":"YulAssignment","src":"6043:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6072:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6053:18:60"},"nodeType":"YulFunctionCall","src":"6053:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6043:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6091:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6121:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6132:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6117:3:60"},"nodeType":"YulFunctionCall","src":"6117:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6104:12:60"},"nodeType":"YulFunctionCall","src":"6104:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6095:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6190:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6199:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6202:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6192:6:60"},"nodeType":"YulFunctionCall","src":"6192:12:60"},"nodeType":"YulExpressionStatement","src":"6192:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6158:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6169:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"6176:10:60","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6165:3:60"},"nodeType":"YulFunctionCall","src":"6165:22:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6155:2:60"},"nodeType":"YulFunctionCall","src":"6155:33:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6148:6:60"},"nodeType":"YulFunctionCall","src":"6148:41:60"},"nodeType":"YulIf","src":"6145:61:60"},{"nodeType":"YulAssignment","src":"6215:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"6225:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6215:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5930:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5941:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5953:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5961:6:60","type":""}],"src":"5886:350:60"},{"body":{"nodeType":"YulBlock","src":"6398:228:60","statements":[{"nodeType":"YulAssignment","src":"6408:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6420:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6431:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6416:3:60"},"nodeType":"YulFunctionCall","src":"6416:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6408:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6450:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6471:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6465:5:60"},"nodeType":"YulFunctionCall","src":"6465:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"6480:10:60","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6461:3:60"},"nodeType":"YulFunctionCall","src":"6461:30:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6443:6:60"},"nodeType":"YulFunctionCall","src":"6443:49:60"},"nodeType":"YulExpressionStatement","src":"6443:49:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6512:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6523:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6508:3:60"},"nodeType":"YulFunctionCall","src":"6508:20:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6544:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6552:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6540:3:60"},"nodeType":"YulFunctionCall","src":"6540:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6534:5:60"},"nodeType":"YulFunctionCall","src":"6534:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"6560:58:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6530:3:60"},"nodeType":"YulFunctionCall","src":"6530:89:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6501:6:60"},"nodeType":"YulFunctionCall","src":"6501:119:60"},"nodeType":"YulExpressionStatement","src":"6501:119:60"}]},"name":"abi_encode_tuple_t_struct$_Checkpoint_$1563_memory_ptr__to_t_struct$_Checkpoint_$1563_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6367:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6378:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6389:4:60","type":""}],"src":"6241:385:60"},{"body":{"nodeType":"YulBlock","src":"6686:382:60","statements":[{"nodeType":"YulAssignment","src":"6696:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6710:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"6713:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6706:3:60"},"nodeType":"YulFunctionCall","src":"6706:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6696:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6727:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6757:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"6763:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6753:3:60"},"nodeType":"YulFunctionCall","src":"6753:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6731:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6804:31:60","statements":[{"nodeType":"YulAssignment","src":"6806:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6820:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6828:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6816:3:60"},"nodeType":"YulFunctionCall","src":"6816:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6806:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6784:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6777:6:60"},"nodeType":"YulFunctionCall","src":"6777:26:60"},"nodeType":"YulIf","src":"6774:61:60"},{"body":{"nodeType":"YulBlock","src":"6894:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6915:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6918:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6908:6:60"},"nodeType":"YulFunctionCall","src":"6908:88:60"},"nodeType":"YulExpressionStatement","src":"6908:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7016:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7019:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7009:6:60"},"nodeType":"YulFunctionCall","src":"7009:15:60"},"nodeType":"YulExpressionStatement","src":"7009:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7044:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7047:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7037:6:60"},"nodeType":"YulFunctionCall","src":"7037:15:60"},"nodeType":"YulExpressionStatement","src":"7037:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6850:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6873:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6881:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6870:2:60"},"nodeType":"YulFunctionCall","src":"6870:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6847:2:60"},"nodeType":"YulFunctionCall","src":"6847:38:60"},"nodeType":"YulIf","src":"6844:218:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"6666:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"6675:6:60","type":""}],"src":"6631:437:60"},{"body":{"nodeType":"YulBlock","src":"7247:237:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7264:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7275:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7257:6:60"},"nodeType":"YulFunctionCall","src":"7257:21:60"},"nodeType":"YulExpressionStatement","src":"7257:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7298:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7309:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7294:3:60"},"nodeType":"YulFunctionCall","src":"7294:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7314:2:60","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7287:6:60"},"nodeType":"YulFunctionCall","src":"7287:30:60"},"nodeType":"YulExpressionStatement","src":"7287:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7337:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7348:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7333:3:60"},"nodeType":"YulFunctionCall","src":"7333:18:60"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"7353:34:60","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7326:6:60"},"nodeType":"YulFunctionCall","src":"7326:62:60"},"nodeType":"YulExpressionStatement","src":"7326:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7408:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7419:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7404:3:60"},"nodeType":"YulFunctionCall","src":"7404:18:60"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"7424:17:60","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7397:6:60"},"nodeType":"YulFunctionCall","src":"7397:45:60"},"nodeType":"YulExpressionStatement","src":"7397:45:60"},{"nodeType":"YulAssignment","src":"7451:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7463:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7474:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7459:3:60"},"nodeType":"YulFunctionCall","src":"7459:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7451:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7224:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7238:4:60","type":""}],"src":"7073:411:60"},{"body":{"nodeType":"YulBlock","src":"7521:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7538:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7541:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7531:6:60"},"nodeType":"YulFunctionCall","src":"7531:88:60"},"nodeType":"YulExpressionStatement","src":"7531:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7635:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7638:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7628:6:60"},"nodeType":"YulFunctionCall","src":"7628:15:60"},"nodeType":"YulExpressionStatement","src":"7628:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7659:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7662:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7652:6:60"},"nodeType":"YulFunctionCall","src":"7652:15:60"},"nodeType":"YulExpressionStatement","src":"7652:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"7489:184:60"},{"body":{"nodeType":"YulBlock","src":"7726:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"7753:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"7755:16:60"},"nodeType":"YulFunctionCall","src":"7755:18:60"},"nodeType":"YulExpressionStatement","src":"7755:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7742:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7749:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7745:3:60"},"nodeType":"YulFunctionCall","src":"7745:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7739:2:60"},"nodeType":"YulFunctionCall","src":"7739:13:60"},"nodeType":"YulIf","src":"7736:39:60"},{"nodeType":"YulAssignment","src":"7784:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7795:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"7798:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7791:3:60"},"nodeType":"YulFunctionCall","src":"7791:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"7784:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7709:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"7712:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"7718:3:60","type":""}],"src":"7678:128:60"},{"body":{"nodeType":"YulBlock","src":"7985:181:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8002:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8013:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7995:6:60"},"nodeType":"YulFunctionCall","src":"7995:21:60"},"nodeType":"YulExpressionStatement","src":"7995:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8036:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8047:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8032:3:60"},"nodeType":"YulFunctionCall","src":"8032:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8052:2:60","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8025:6:60"},"nodeType":"YulFunctionCall","src":"8025:30:60"},"nodeType":"YulExpressionStatement","src":"8025:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8075:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8086:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8071:3:60"},"nodeType":"YulFunctionCall","src":"8071:18:60"},{"hexValue":"4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564","kind":"string","nodeType":"YulLiteral","src":"8091:33:60","type":"","value":"ERC20Votes: block not yet mined"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8064:6:60"},"nodeType":"YulFunctionCall","src":"8064:61:60"},"nodeType":"YulExpressionStatement","src":"8064:61:60"},{"nodeType":"YulAssignment","src":"8134:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8146:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8157:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8142:3:60"},"nodeType":"YulFunctionCall","src":"8142:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8134:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7962:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7976:4:60","type":""}],"src":"7811:355:60"},{"body":{"nodeType":"YulBlock","src":"8220:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"8242:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8244:16:60"},"nodeType":"YulFunctionCall","src":"8244:18:60"},"nodeType":"YulExpressionStatement","src":"8244:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8236:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"8239:1:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8233:2:60"},"nodeType":"YulFunctionCall","src":"8233:8:60"},"nodeType":"YulIf","src":"8230:34:60"},{"nodeType":"YulAssignment","src":"8273:17:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8285:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"8288:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8281:3:60"},"nodeType":"YulFunctionCall","src":"8281:9:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"8273:4:60"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8202:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"8205:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"8211:4:60","type":""}],"src":"8171:125:60"},{"body":{"nodeType":"YulBlock","src":"8333:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8350:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8353:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8343:6:60"},"nodeType":"YulFunctionCall","src":"8343:88:60"},"nodeType":"YulExpressionStatement","src":"8343:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8447:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8450:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8440:6:60"},"nodeType":"YulFunctionCall","src":"8440:15:60"},"nodeType":"YulExpressionStatement","src":"8440:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8471:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8474:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8464:6:60"},"nodeType":"YulFunctionCall","src":"8464:15:60"},"nodeType":"YulExpressionStatement","src":"8464:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"8301:184:60"},{"body":{"nodeType":"YulBlock","src":"8664:227:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8681:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8692:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8674:6:60"},"nodeType":"YulFunctionCall","src":"8674:21:60"},"nodeType":"YulExpressionStatement","src":"8674:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8715:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8726:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8711:3:60"},"nodeType":"YulFunctionCall","src":"8711:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8731:2:60","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8704:6:60"},"nodeType":"YulFunctionCall","src":"8704:30:60"},"nodeType":"YulExpressionStatement","src":"8704:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8754:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8765:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8750:3:60"},"nodeType":"YulFunctionCall","src":"8750:18:60"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"8770:34:60","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8743:6:60"},"nodeType":"YulFunctionCall","src":"8743:62:60"},"nodeType":"YulExpressionStatement","src":"8743:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8825:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8836:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8821:3:60"},"nodeType":"YulFunctionCall","src":"8821:18:60"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"8841:7:60","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8814:6:60"},"nodeType":"YulFunctionCall","src":"8814:35:60"},"nodeType":"YulExpressionStatement","src":"8814:35:60"},{"nodeType":"YulAssignment","src":"8858:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8870:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8881:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8866:3:60"},"nodeType":"YulFunctionCall","src":"8866:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8858:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8641:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8655:4:60","type":""}],"src":"8490:401:60"},{"body":{"nodeType":"YulBlock","src":"9070:179:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9087:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9098:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9080:6:60"},"nodeType":"YulFunctionCall","src":"9080:21:60"},"nodeType":"YulExpressionStatement","src":"9080:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9121:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9132:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9117:3:60"},"nodeType":"YulFunctionCall","src":"9117:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"9137:2:60","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9110:6:60"},"nodeType":"YulFunctionCall","src":"9110:30:60"},"nodeType":"YulExpressionStatement","src":"9110:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9160:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9171:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9156:3:60"},"nodeType":"YulFunctionCall","src":"9156:18:60"},{"hexValue":"4552433230566f7465733a207369676e61747572652065787069726564","kind":"string","nodeType":"YulLiteral","src":"9176:31:60","type":"","value":"ERC20Votes: signature expired"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9149:6:60"},"nodeType":"YulFunctionCall","src":"9149:59:60"},"nodeType":"YulExpressionStatement","src":"9149:59:60"},{"nodeType":"YulAssignment","src":"9217:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9229:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9240:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9225:3:60"},"nodeType":"YulFunctionCall","src":"9225:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9217:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_136d0f69bc85a5c125b5cc368e2880ebdb3c89d4d9828f6476431c386ea60257__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9047:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9061:4:60","type":""}],"src":"8896:353:60"},{"body":{"nodeType":"YulBlock","src":"9439:255:60","statements":[{"nodeType":"YulAssignment","src":"9449:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9461:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9472:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9457:3:60"},"nodeType":"YulFunctionCall","src":"9457:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9449:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9492:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"9503:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9485:6:60"},"nodeType":"YulFunctionCall","src":"9485:25:60"},"nodeType":"YulExpressionStatement","src":"9485:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9530:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9541:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9526:3:60"},"nodeType":"YulFunctionCall","src":"9526:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9550:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"9558:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9546:3:60"},"nodeType":"YulFunctionCall","src":"9546:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9519:6:60"},"nodeType":"YulFunctionCall","src":"9519:83:60"},"nodeType":"YulExpressionStatement","src":"9519:83:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9622:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9633:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9618:3:60"},"nodeType":"YulFunctionCall","src":"9618:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"9638:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9611:6:60"},"nodeType":"YulFunctionCall","src":"9611:34:60"},"nodeType":"YulExpressionStatement","src":"9611:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9665:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9676:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9661:3:60"},"nodeType":"YulFunctionCall","src":"9661:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"9681:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9654:6:60"},"nodeType":"YulFunctionCall","src":"9654:34:60"},"nodeType":"YulExpressionStatement","src":"9654:34:60"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9384:9:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9395:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9403:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9411:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9419:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9430:4:60","type":""}],"src":"9254:440:60"},{"body":{"nodeType":"YulBlock","src":"9873:175:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9890:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9901:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9883:6:60"},"nodeType":"YulFunctionCall","src":"9883:21:60"},"nodeType":"YulExpressionStatement","src":"9883:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9924:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9935:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9920:3:60"},"nodeType":"YulFunctionCall","src":"9920:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"9940:2:60","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9913:6:60"},"nodeType":"YulFunctionCall","src":"9913:30:60"},"nodeType":"YulExpressionStatement","src":"9913:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9963:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9974:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9959:3:60"},"nodeType":"YulFunctionCall","src":"9959:18:60"},{"hexValue":"4552433230566f7465733a20696e76616c6964206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"9979:27:60","type":"","value":"ERC20Votes: invalid nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9952:6:60"},"nodeType":"YulFunctionCall","src":"9952:55:60"},"nodeType":"YulExpressionStatement","src":"9952:55:60"},{"nodeType":"YulAssignment","src":"10016:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10028:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10039:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10024:3:60"},"nodeType":"YulFunctionCall","src":"10024:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10016:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a23b43d95073d55a7380117ca03cace60cd22fee15d5cb140d51e46236e6872__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9850:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9864:4:60","type":""}],"src":"9699:349:60"},{"body":{"nodeType":"YulBlock","src":"10227:179:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10244:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10255:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10237:6:60"},"nodeType":"YulFunctionCall","src":"10237:21:60"},"nodeType":"YulExpressionStatement","src":"10237:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10278:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10289:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10274:3:60"},"nodeType":"YulFunctionCall","src":"10274:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"10294:2:60","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10267:6:60"},"nodeType":"YulFunctionCall","src":"10267:30:60"},"nodeType":"YulExpressionStatement","src":"10267:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10317:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10328:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10313:3:60"},"nodeType":"YulFunctionCall","src":"10313:18:60"},{"hexValue":"45524332305065726d69743a206578706972656420646561646c696e65","kind":"string","nodeType":"YulLiteral","src":"10333:31:60","type":"","value":"ERC20Permit: expired deadline"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10306:6:60"},"nodeType":"YulFunctionCall","src":"10306:59:60"},"nodeType":"YulExpressionStatement","src":"10306:59:60"},{"nodeType":"YulAssignment","src":"10374:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10386:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10397:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10382:3:60"},"nodeType":"YulFunctionCall","src":"10382:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10374:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_3e89525a63fb9c966b61cf8f5305156de8420bc773a2b60828a2f32c3c5797bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10204:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10218:4:60","type":""}],"src":"10053:353:60"},{"body":{"nodeType":"YulBlock","src":"10652:373:60","statements":[{"nodeType":"YulAssignment","src":"10662:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10674:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10685:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10670:3:60"},"nodeType":"YulFunctionCall","src":"10670:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10662:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10705:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"10716:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10698:6:60"},"nodeType":"YulFunctionCall","src":"10698:25:60"},"nodeType":"YulExpressionStatement","src":"10698:25:60"},{"nodeType":"YulVariableDeclaration","src":"10732:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"10742:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10736:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10804:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10815:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10800:3:60"},"nodeType":"YulFunctionCall","src":"10800:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10824:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10832:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10820:3:60"},"nodeType":"YulFunctionCall","src":"10820:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10793:6:60"},"nodeType":"YulFunctionCall","src":"10793:43:60"},"nodeType":"YulExpressionStatement","src":"10793:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10856:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10867:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10852:3:60"},"nodeType":"YulFunctionCall","src":"10852:18:60"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10876:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10884:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10872:3:60"},"nodeType":"YulFunctionCall","src":"10872:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10845:6:60"},"nodeType":"YulFunctionCall","src":"10845:43:60"},"nodeType":"YulExpressionStatement","src":"10845:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10908:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10919:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10904:3:60"},"nodeType":"YulFunctionCall","src":"10904:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"10924:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10897:6:60"},"nodeType":"YulFunctionCall","src":"10897:34:60"},"nodeType":"YulExpressionStatement","src":"10897:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10951:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10962:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10947:3:60"},"nodeType":"YulFunctionCall","src":"10947:19:60"},{"name":"value4","nodeType":"YulIdentifier","src":"10968:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10940:6:60"},"nodeType":"YulFunctionCall","src":"10940:35:60"},"nodeType":"YulExpressionStatement","src":"10940:35:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10995:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11006:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10991:3:60"},"nodeType":"YulFunctionCall","src":"10991:19:60"},{"name":"value5","nodeType":"YulIdentifier","src":"11012:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10984:6:60"},"nodeType":"YulFunctionCall","src":"10984:35:60"},"nodeType":"YulExpressionStatement","src":"10984:35:60"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10581:9:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10592:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10600:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10608:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10616:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10624:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10632:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10643:4:60","type":""}],"src":"10411:614:60"},{"body":{"nodeType":"YulBlock","src":"11204:180:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11221:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11232:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11214:6:60"},"nodeType":"YulFunctionCall","src":"11214:21:60"},"nodeType":"YulExpressionStatement","src":"11214:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11255:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11266:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11251:3:60"},"nodeType":"YulFunctionCall","src":"11251:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"11271:2:60","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11244:6:60"},"nodeType":"YulFunctionCall","src":"11244:30:60"},"nodeType":"YulExpressionStatement","src":"11244:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11294:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11305:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11290:3:60"},"nodeType":"YulFunctionCall","src":"11290:18:60"},{"hexValue":"45524332305065726d69743a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"11310:32:60","type":"","value":"ERC20Permit: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11283:6:60"},"nodeType":"YulFunctionCall","src":"11283:60:60"},"nodeType":"YulExpressionStatement","src":"11283:60:60"},{"nodeType":"YulAssignment","src":"11352:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11364:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11375:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11360:3:60"},"nodeType":"YulFunctionCall","src":"11360:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11352:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_94ca1ab58dfda790a1782ffbb0c0a140ec51d4148dbeecc6c39e37b25ff4b124__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11181:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11195:4:60","type":""}],"src":"11030:354:60"},{"body":{"nodeType":"YulBlock","src":"11563:238:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11580:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11591:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11573:6:60"},"nodeType":"YulFunctionCall","src":"11573:21:60"},"nodeType":"YulExpressionStatement","src":"11573:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11614:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11625:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11610:3:60"},"nodeType":"YulFunctionCall","src":"11610:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"11630:2:60","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11603:6:60"},"nodeType":"YulFunctionCall","src":"11603:30:60"},"nodeType":"YulExpressionStatement","src":"11603:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11653:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11664:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11649:3:60"},"nodeType":"YulFunctionCall","src":"11649:18:60"},{"hexValue":"4552433230566f7465733a20746f74616c20737570706c79207269736b73206f","kind":"string","nodeType":"YulLiteral","src":"11669:34:60","type":"","value":"ERC20Votes: total supply risks o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11642:6:60"},"nodeType":"YulFunctionCall","src":"11642:62:60"},"nodeType":"YulExpressionStatement","src":"11642:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11724:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11735:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11720:3:60"},"nodeType":"YulFunctionCall","src":"11720:18:60"},{"hexValue":"766572666c6f77696e6720766f746573","kind":"string","nodeType":"YulLiteral","src":"11740:18:60","type":"","value":"verflowing votes"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11713:6:60"},"nodeType":"YulFunctionCall","src":"11713:46:60"},"nodeType":"YulExpressionStatement","src":"11713:46:60"},{"nodeType":"YulAssignment","src":"11768:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11780:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11791:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11776:3:60"},"nodeType":"YulFunctionCall","src":"11776:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11768:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11540:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11554:4:60","type":""}],"src":"11389:412:60"},{"body":{"nodeType":"YulBlock","src":"11980:181:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11997:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12008:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11990:6:60"},"nodeType":"YulFunctionCall","src":"11990:21:60"},"nodeType":"YulExpressionStatement","src":"11990:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12031:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12042:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12027:3:60"},"nodeType":"YulFunctionCall","src":"12027:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"12047:2:60","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12020:6:60"},"nodeType":"YulFunctionCall","src":"12020:30:60"},"nodeType":"YulExpressionStatement","src":"12020:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12070:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12081:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12066:3:60"},"nodeType":"YulFunctionCall","src":"12066:18:60"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"12086:33:60","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12059:6:60"},"nodeType":"YulFunctionCall","src":"12059:61:60"},"nodeType":"YulExpressionStatement","src":"12059:61:60"},{"nodeType":"YulAssignment","src":"12129:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12141:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12152:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12137:3:60"},"nodeType":"YulFunctionCall","src":"12137:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12129:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11957:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11971:4:60","type":""}],"src":"11806:355:60"},{"body":{"nodeType":"YulBlock","src":"12340:229:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12357:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12368:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12350:6:60"},"nodeType":"YulFunctionCall","src":"12350:21:60"},"nodeType":"YulExpressionStatement","src":"12350:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12391:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12402:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12387:3:60"},"nodeType":"YulFunctionCall","src":"12387:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"12407:2:60","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12380:6:60"},"nodeType":"YulFunctionCall","src":"12380:30:60"},"nodeType":"YulExpressionStatement","src":"12380:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12430:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12441:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12426:3:60"},"nodeType":"YulFunctionCall","src":"12426:18:60"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032","kind":"string","nodeType":"YulLiteral","src":"12446:34:60","type":"","value":"SafeCast: value doesn't fit in 2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12419:6:60"},"nodeType":"YulFunctionCall","src":"12419:62:60"},"nodeType":"YulExpressionStatement","src":"12419:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12501:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12512:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12497:3:60"},"nodeType":"YulFunctionCall","src":"12497:18:60"},{"hexValue":"32342062697473","kind":"string","nodeType":"YulLiteral","src":"12517:9:60","type":"","value":"24 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12490:6:60"},"nodeType":"YulFunctionCall","src":"12490:37:60"},"nodeType":"YulExpressionStatement","src":"12490:37:60"},{"nodeType":"YulAssignment","src":"12536:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12548:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12559:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12544:3:60"},"nodeType":"YulFunctionCall","src":"12544:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12536:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12317:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12331:4:60","type":""}],"src":"12166:403:60"},{"body":{"nodeType":"YulBlock","src":"12748:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12765:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12776:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12758:6:60"},"nodeType":"YulFunctionCall","src":"12758:21:60"},"nodeType":"YulExpressionStatement","src":"12758:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12799:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12810:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12795:3:60"},"nodeType":"YulFunctionCall","src":"12795:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"12815:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12788:6:60"},"nodeType":"YulFunctionCall","src":"12788:30:60"},"nodeType":"YulExpressionStatement","src":"12788:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12838:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12849:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12834:3:60"},"nodeType":"YulFunctionCall","src":"12834:18:60"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nodeType":"YulLiteral","src":"12854:34:60","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12827:6:60"},"nodeType":"YulFunctionCall","src":"12827:62:60"},"nodeType":"YulExpressionStatement","src":"12827:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12909:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12920:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12905:3:60"},"nodeType":"YulFunctionCall","src":"12905:18:60"},{"hexValue":"322062697473","kind":"string","nodeType":"YulLiteral","src":"12925:8:60","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12898:6:60"},"nodeType":"YulFunctionCall","src":"12898:36:60"},"nodeType":"YulExpressionStatement","src":"12898:36:60"},{"nodeType":"YulAssignment","src":"12943:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12955:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12966:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12951:3:60"},"nodeType":"YulFunctionCall","src":"12951:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12943:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12725:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12739:4:60","type":""}],"src":"12574:402:60"},{"body":{"nodeType":"YulBlock","src":"13155:226:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13172:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13183:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13165:6:60"},"nodeType":"YulFunctionCall","src":"13165:21:60"},"nodeType":"YulExpressionStatement","src":"13165:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13206:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13217:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13202:3:60"},"nodeType":"YulFunctionCall","src":"13202:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"13222:2:60","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13195:6:60"},"nodeType":"YulFunctionCall","src":"13195:30:60"},"nodeType":"YulExpressionStatement","src":"13195:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13245:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13256:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13241:3:60"},"nodeType":"YulFunctionCall","src":"13241:18:60"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"13261:34:60","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13234:6:60"},"nodeType":"YulFunctionCall","src":"13234:62:60"},"nodeType":"YulExpressionStatement","src":"13234:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13316:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13327:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13312:3:60"},"nodeType":"YulFunctionCall","src":"13312:18:60"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"13332:6:60","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13305:6:60"},"nodeType":"YulFunctionCall","src":"13305:34:60"},"nodeType":"YulExpressionStatement","src":"13305:34:60"},{"nodeType":"YulAssignment","src":"13348:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13360:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13371:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13356:3:60"},"nodeType":"YulFunctionCall","src":"13356:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13348:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13132:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13146:4:60","type":""}],"src":"12981:400:60"},{"body":{"nodeType":"YulBlock","src":"13560:224:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13577:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13588:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13570:6:60"},"nodeType":"YulFunctionCall","src":"13570:21:60"},"nodeType":"YulExpressionStatement","src":"13570:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13611:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13622:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13607:3:60"},"nodeType":"YulFunctionCall","src":"13607:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"13627:2:60","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13600:6:60"},"nodeType":"YulFunctionCall","src":"13600:30:60"},"nodeType":"YulExpressionStatement","src":"13600:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13650:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13661:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13646:3:60"},"nodeType":"YulFunctionCall","src":"13646:18:60"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"13666:34:60","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13639:6:60"},"nodeType":"YulFunctionCall","src":"13639:62:60"},"nodeType":"YulExpressionStatement","src":"13639:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13721:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13732:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13717:3:60"},"nodeType":"YulFunctionCall","src":"13717:18:60"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"13737:4:60","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13710:6:60"},"nodeType":"YulFunctionCall","src":"13710:32:60"},"nodeType":"YulExpressionStatement","src":"13710:32:60"},{"nodeType":"YulAssignment","src":"13751:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13763:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13774:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13759:3:60"},"nodeType":"YulFunctionCall","src":"13759:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13751:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13537:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13551:4:60","type":""}],"src":"13386:398:60"},{"body":{"nodeType":"YulBlock","src":"13963:179:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13980:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13991:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13973:6:60"},"nodeType":"YulFunctionCall","src":"13973:21:60"},"nodeType":"YulExpressionStatement","src":"13973:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14014:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14025:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14010:3:60"},"nodeType":"YulFunctionCall","src":"14010:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"14030:2:60","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14003:6:60"},"nodeType":"YulFunctionCall","src":"14003:30:60"},"nodeType":"YulExpressionStatement","src":"14003:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14053:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14064:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14049:3:60"},"nodeType":"YulFunctionCall","src":"14049:18:60"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"14069:31:60","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14042:6:60"},"nodeType":"YulFunctionCall","src":"14042:59:60"},"nodeType":"YulExpressionStatement","src":"14042:59:60"},{"nodeType":"YulAssignment","src":"14110:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14122:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14133:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14118:3:60"},"nodeType":"YulFunctionCall","src":"14118:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14110:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13940:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13954:4:60","type":""}],"src":"13789:353:60"},{"body":{"nodeType":"YulBlock","src":"14321:227:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14338:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14349:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14331:6:60"},"nodeType":"YulFunctionCall","src":"14331:21:60"},"nodeType":"YulExpressionStatement","src":"14331:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14372:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14383:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14368:3:60"},"nodeType":"YulFunctionCall","src":"14368:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"14388:2:60","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14361:6:60"},"nodeType":"YulFunctionCall","src":"14361:30:60"},"nodeType":"YulExpressionStatement","src":"14361:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14411:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14422:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14407:3:60"},"nodeType":"YulFunctionCall","src":"14407:18:60"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"14427:34:60","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14400:6:60"},"nodeType":"YulFunctionCall","src":"14400:62:60"},"nodeType":"YulExpressionStatement","src":"14400:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14482:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14493:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14478:3:60"},"nodeType":"YulFunctionCall","src":"14478:18:60"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"14498:7:60","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14471:6:60"},"nodeType":"YulFunctionCall","src":"14471:35:60"},"nodeType":"YulExpressionStatement","src":"14471:35:60"},{"nodeType":"YulAssignment","src":"14515:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14527:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14538:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14523:3:60"},"nodeType":"YulFunctionCall","src":"14523:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14515:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14298:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14312:4:60","type":""}],"src":"14147:401:60"},{"body":{"nodeType":"YulBlock","src":"14727:225:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14744:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14755:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14737:6:60"},"nodeType":"YulFunctionCall","src":"14737:21:60"},"nodeType":"YulExpressionStatement","src":"14737:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14778:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14789:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14774:3:60"},"nodeType":"YulFunctionCall","src":"14774:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"14794:2:60","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14767:6:60"},"nodeType":"YulFunctionCall","src":"14767:30:60"},"nodeType":"YulExpressionStatement","src":"14767:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14817:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14828:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14813:3:60"},"nodeType":"YulFunctionCall","src":"14813:18:60"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"14833:34:60","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14806:6:60"},"nodeType":"YulFunctionCall","src":"14806:62:60"},"nodeType":"YulExpressionStatement","src":"14806:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14888:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14899:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14884:3:60"},"nodeType":"YulFunctionCall","src":"14884:18:60"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"14904:5:60","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14877:6:60"},"nodeType":"YulFunctionCall","src":"14877:33:60"},"nodeType":"YulExpressionStatement","src":"14877:33:60"},{"nodeType":"YulAssignment","src":"14919:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14931:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14942:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14927:3:60"},"nodeType":"YulFunctionCall","src":"14927:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14919:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14704:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14718:4:60","type":""}],"src":"14553:399:60"},{"body":{"nodeType":"YulBlock","src":"15131:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15148:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15159:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15141:6:60"},"nodeType":"YulFunctionCall","src":"15141:21:60"},"nodeType":"YulExpressionStatement","src":"15141:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15182:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15193:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15178:3:60"},"nodeType":"YulFunctionCall","src":"15178:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"15198:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15171:6:60"},"nodeType":"YulFunctionCall","src":"15171:30:60"},"nodeType":"YulExpressionStatement","src":"15171:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15221:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15232:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15217:3:60"},"nodeType":"YulFunctionCall","src":"15217:18:60"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"15237:34:60","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15210:6:60"},"nodeType":"YulFunctionCall","src":"15210:62:60"},"nodeType":"YulExpressionStatement","src":"15210:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15292:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15303:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15288:3:60"},"nodeType":"YulFunctionCall","src":"15288:18:60"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"15308:8:60","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15281:6:60"},"nodeType":"YulFunctionCall","src":"15281:36:60"},"nodeType":"YulExpressionStatement","src":"15281:36:60"},{"nodeType":"YulAssignment","src":"15326:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15338:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15349:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15334:3:60"},"nodeType":"YulFunctionCall","src":"15334:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15326:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15108:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15122:4:60","type":""}],"src":"14957:402:60"},{"body":{"nodeType":"YulBlock","src":"15538:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15555:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15566:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15548:6:60"},"nodeType":"YulFunctionCall","src":"15548:21:60"},"nodeType":"YulExpressionStatement","src":"15548:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15589:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15600:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15585:3:60"},"nodeType":"YulFunctionCall","src":"15585:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"15605:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15578:6:60"},"nodeType":"YulFunctionCall","src":"15578:30:60"},"nodeType":"YulExpressionStatement","src":"15578:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15628:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15639:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15624:3:60"},"nodeType":"YulFunctionCall","src":"15624:18:60"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039","kind":"string","nodeType":"YulLiteral","src":"15644:34:60","type":"","value":"SafeCast: value doesn't fit in 9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15617:6:60"},"nodeType":"YulFunctionCall","src":"15617:62:60"},"nodeType":"YulExpressionStatement","src":"15617:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15699:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15710:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15695:3:60"},"nodeType":"YulFunctionCall","src":"15695:18:60"},{"hexValue":"362062697473","kind":"string","nodeType":"YulLiteral","src":"15715:8:60","type":"","value":"6 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15688:6:60"},"nodeType":"YulFunctionCall","src":"15688:36:60"},"nodeType":"YulExpressionStatement","src":"15688:36:60"},{"nodeType":"YulAssignment","src":"15733:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15745:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15756:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15741:3:60"},"nodeType":"YulFunctionCall","src":"15741:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15733:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15515:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15529:4:60","type":""}],"src":"15364:402:60"},{"body":{"nodeType":"YulBlock","src":"15900:119:60","statements":[{"nodeType":"YulAssignment","src":"15910:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15922:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15933:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15918:3:60"},"nodeType":"YulFunctionCall","src":"15918:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15910:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15952:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"15963:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15945:6:60"},"nodeType":"YulFunctionCall","src":"15945:25:60"},"nodeType":"YulExpressionStatement","src":"15945:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15990:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16001:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15986:3:60"},"nodeType":"YulFunctionCall","src":"15986:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"16006:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15979:6:60"},"nodeType":"YulFunctionCall","src":"15979:34:60"},"nodeType":"YulExpressionStatement","src":"15979:34:60"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15861:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15872:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15880:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15891:4:60","type":""}],"src":"15771:248:60"},{"body":{"nodeType":"YulBlock","src":"16413:397:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16430:3:60"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"16435:25:60","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16423:6:60"},"nodeType":"YulFunctionCall","src":"16423:38:60"},"nodeType":"YulExpressionStatement","src":"16423:38:60"},{"nodeType":"YulVariableDeclaration","src":"16470:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16490:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16484:5:60"},"nodeType":"YulFunctionCall","src":"16484:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16474:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16532:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"16540:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16528:3:60"},"nodeType":"YulFunctionCall","src":"16528:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16551:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"16556:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16547:3:60"},"nodeType":"YulFunctionCall","src":"16547:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"16561:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"16506:21:60"},"nodeType":"YulFunctionCall","src":"16506:62:60"},"nodeType":"YulExpressionStatement","src":"16506:62:60"},{"nodeType":"YulVariableDeclaration","src":"16577:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16591:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"16596:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16587:3:60"},"nodeType":"YulFunctionCall","src":"16587:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16581:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16623:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"16627:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16619:3:60"},"nodeType":"YulFunctionCall","src":"16619:11:60"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"16632:19:60","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16612:6:60"},"nodeType":"YulFunctionCall","src":"16612:40:60"},"nodeType":"YulExpressionStatement","src":"16612:40:60"},{"nodeType":"YulVariableDeclaration","src":"16661:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16683:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16677:5:60"},"nodeType":"YulFunctionCall","src":"16677:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"16665:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16725:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"16733:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16721:3:60"},"nodeType":"YulFunctionCall","src":"16721:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16744:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"16748:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16740:3:60"},"nodeType":"YulFunctionCall","src":"16740:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"16753:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"16699:21:60"},"nodeType":"YulFunctionCall","src":"16699:63:60"},"nodeType":"YulExpressionStatement","src":"16699:63:60"},{"nodeType":"YulAssignment","src":"16771:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16786:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"16790:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16782:3:60"},"nodeType":"YulFunctionCall","src":"16782:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"16801:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16778:3:60"},"nodeType":"YulFunctionCall","src":"16778:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16771:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16381:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16386:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16394:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16405:3:60","type":""}],"src":"16024:786:60"},{"body":{"nodeType":"YulBlock","src":"17028:299:60","statements":[{"nodeType":"YulAssignment","src":"17038:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17050:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17061:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17046:3:60"},"nodeType":"YulFunctionCall","src":"17046:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17038:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17081:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"17092:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17074:6:60"},"nodeType":"YulFunctionCall","src":"17074:25:60"},"nodeType":"YulExpressionStatement","src":"17074:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17119:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17130:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17115:3:60"},"nodeType":"YulFunctionCall","src":"17115:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"17135:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17108:6:60"},"nodeType":"YulFunctionCall","src":"17108:34:60"},"nodeType":"YulExpressionStatement","src":"17108:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17162:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17173:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17158:3:60"},"nodeType":"YulFunctionCall","src":"17158:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"17178:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17151:6:60"},"nodeType":"YulFunctionCall","src":"17151:34:60"},"nodeType":"YulExpressionStatement","src":"17151:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17205:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17216:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17201:3:60"},"nodeType":"YulFunctionCall","src":"17201:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"17221:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17194:6:60"},"nodeType":"YulFunctionCall","src":"17194:34:60"},"nodeType":"YulExpressionStatement","src":"17194:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17248:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17259:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17244:3:60"},"nodeType":"YulFunctionCall","src":"17244:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17269:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17277:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17265:3:60"},"nodeType":"YulFunctionCall","src":"17265:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17237:6:60"},"nodeType":"YulFunctionCall","src":"17237:84:60"},"nodeType":"YulExpressionStatement","src":"17237:84:60"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16965:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16976:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16984:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16992:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17000:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17008:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17019:4:60","type":""}],"src":"16815:512:60"},{"body":{"nodeType":"YulBlock","src":"17364:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17381:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17384:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17374:6:60"},"nodeType":"YulFunctionCall","src":"17374:88:60"},"nodeType":"YulExpressionStatement","src":"17374:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17478:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17481:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17471:6:60"},"nodeType":"YulFunctionCall","src":"17471:15:60"},"nodeType":"YulExpressionStatement","src":"17471:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17502:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17505:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17495:6:60"},"nodeType":"YulFunctionCall","src":"17495:15:60"},"nodeType":"YulExpressionStatement","src":"17495:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"17332:184:60"},{"body":{"nodeType":"YulBlock","src":"17567:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"17598:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17619:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17622:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17612:6:60"},"nodeType":"YulFunctionCall","src":"17612:88:60"},"nodeType":"YulExpressionStatement","src":"17612:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17720:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17723:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17713:6:60"},"nodeType":"YulFunctionCall","src":"17713:15:60"},"nodeType":"YulExpressionStatement","src":"17713:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17748:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17751:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17741:6:60"},"nodeType":"YulFunctionCall","src":"17741:15:60"},"nodeType":"YulExpressionStatement","src":"17741:15:60"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17587:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17580:6:60"},"nodeType":"YulFunctionCall","src":"17580:9:60"},"nodeType":"YulIf","src":"17577:189:60"},{"nodeType":"YulAssignment","src":"17775:14:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17784:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"17787:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"17780:3:60"},"nodeType":"YulFunctionCall","src":"17780:9:60"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"17775:1:60"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17552:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"17555:1:60","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"17561:1:60","type":""}],"src":"17521:274:60"},{"body":{"nodeType":"YulBlock","src":"18048:196:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18065:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"18070:66:60","type":"","value":"0x1901000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18058:6:60"},"nodeType":"YulFunctionCall","src":"18058:79:60"},"nodeType":"YulExpressionStatement","src":"18058:79:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18157:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"18162:1:60","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18153:3:60"},"nodeType":"YulFunctionCall","src":"18153:11:60"},{"name":"value0","nodeType":"YulIdentifier","src":"18166:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18146:6:60"},"nodeType":"YulFunctionCall","src":"18146:27:60"},"nodeType":"YulExpressionStatement","src":"18146:27:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18193:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"18198:2:60","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18189:3:60"},"nodeType":"YulFunctionCall","src":"18189:12:60"},{"name":"value1","nodeType":"YulIdentifier","src":"18203:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18182:6:60"},"nodeType":"YulFunctionCall","src":"18182:28:60"},"nodeType":"YulExpressionStatement","src":"18182:28:60"},{"nodeType":"YulAssignment","src":"18219:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"18230:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"18235:2:60","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18226:3:60"},"nodeType":"YulFunctionCall","src":"18226:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18219:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18016:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18021:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18029:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18040:3:60","type":""}],"src":"17800:444:60"},{"body":{"nodeType":"YulBlock","src":"18430:217:60","statements":[{"nodeType":"YulAssignment","src":"18440:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18452:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18463:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18448:3:60"},"nodeType":"YulFunctionCall","src":"18448:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18440:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18483:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"18494:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18476:6:60"},"nodeType":"YulFunctionCall","src":"18476:25:60"},"nodeType":"YulExpressionStatement","src":"18476:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18521:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18532:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18517:3:60"},"nodeType":"YulFunctionCall","src":"18517:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18541:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"18549:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18537:3:60"},"nodeType":"YulFunctionCall","src":"18537:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18510:6:60"},"nodeType":"YulFunctionCall","src":"18510:45:60"},"nodeType":"YulExpressionStatement","src":"18510:45:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18575:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18586:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18571:3:60"},"nodeType":"YulFunctionCall","src":"18571:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"18591:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18564:6:60"},"nodeType":"YulFunctionCall","src":"18564:34:60"},"nodeType":"YulExpressionStatement","src":"18564:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18618:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18629:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18614:3:60"},"nodeType":"YulFunctionCall","src":"18614:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"18634:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18607:6:60"},"nodeType":"YulFunctionCall","src":"18607:34:60"},"nodeType":"YulExpressionStatement","src":"18607:34:60"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18375:9:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18386:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18394:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18402:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18410:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18421:4:60","type":""}],"src":"18249:398:60"},{"body":{"nodeType":"YulBlock","src":"18684:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18701:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18704:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18694:6:60"},"nodeType":"YulFunctionCall","src":"18694:88:60"},"nodeType":"YulExpressionStatement","src":"18694:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18798:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18801:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18791:6:60"},"nodeType":"YulFunctionCall","src":"18791:15:60"},"nodeType":"YulExpressionStatement","src":"18791:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18822:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18825:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18815:6:60"},"nodeType":"YulFunctionCall","src":"18815:15:60"},"nodeType":"YulExpressionStatement","src":"18815:15:60"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"18652:184:60"},{"body":{"nodeType":"YulBlock","src":"19015:174:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19032:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19043:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19025:6:60"},"nodeType":"YulFunctionCall","src":"19025:21:60"},"nodeType":"YulExpressionStatement","src":"19025:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19066:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19077:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19062:3:60"},"nodeType":"YulFunctionCall","src":"19062:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"19082:2:60","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19055:6:60"},"nodeType":"YulFunctionCall","src":"19055:30:60"},"nodeType":"YulExpressionStatement","src":"19055:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19105:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19116:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19101:3:60"},"nodeType":"YulFunctionCall","src":"19101:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"19121:26:60","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19094:6:60"},"nodeType":"YulFunctionCall","src":"19094:54:60"},"nodeType":"YulExpressionStatement","src":"19094:54:60"},{"nodeType":"YulAssignment","src":"19157:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19169:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19180:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19165:3:60"},"nodeType":"YulFunctionCall","src":"19165:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19157:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18992:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19006:4:60","type":""}],"src":"18841:348:60"},{"body":{"nodeType":"YulBlock","src":"19368:181:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19385:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19396:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19378:6:60"},"nodeType":"YulFunctionCall","src":"19378:21:60"},"nodeType":"YulExpressionStatement","src":"19378:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19419:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19430:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19415:3:60"},"nodeType":"YulFunctionCall","src":"19415:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"19435:2:60","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19408:6:60"},"nodeType":"YulFunctionCall","src":"19408:30:60"},"nodeType":"YulExpressionStatement","src":"19408:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19458:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19469:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19454:3:60"},"nodeType":"YulFunctionCall","src":"19454:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nodeType":"YulLiteral","src":"19474:33:60","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19447:6:60"},"nodeType":"YulFunctionCall","src":"19447:61:60"},"nodeType":"YulExpressionStatement","src":"19447:61:60"},{"nodeType":"YulAssignment","src":"19517:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19540:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19525:3:60"},"nodeType":"YulFunctionCall","src":"19525:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19517:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19345:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19359:4:60","type":""}],"src":"19194:355:60"},{"body":{"nodeType":"YulBlock","src":"19728:224:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19745:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19756:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19738:6:60"},"nodeType":"YulFunctionCall","src":"19738:21:60"},"nodeType":"YulExpressionStatement","src":"19738:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19779:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19790:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19775:3:60"},"nodeType":"YulFunctionCall","src":"19775:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"19795:2:60","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19768:6:60"},"nodeType":"YulFunctionCall","src":"19768:30:60"},"nodeType":"YulExpressionStatement","src":"19768:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19818:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19829:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19814:3:60"},"nodeType":"YulFunctionCall","src":"19814:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nodeType":"YulLiteral","src":"19834:34:60","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19807:6:60"},"nodeType":"YulFunctionCall","src":"19807:62:60"},"nodeType":"YulExpressionStatement","src":"19807:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19889:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19900:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19885:3:60"},"nodeType":"YulFunctionCall","src":"19885:18:60"},{"hexValue":"7565","kind":"string","nodeType":"YulLiteral","src":"19905:4:60","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19878:6:60"},"nodeType":"YulFunctionCall","src":"19878:32:60"},"nodeType":"YulExpressionStatement","src":"19878:32:60"},{"nodeType":"YulAssignment","src":"19919:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19931:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19942:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19927:3:60"},"nodeType":"YulFunctionCall","src":"19927:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19919:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19705:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19719:4:60","type":""}],"src":"19554:398:60"},{"body":{"nodeType":"YulBlock","src":"20009:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"20128:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20130:16:60"},"nodeType":"YulFunctionCall","src":"20130:18:60"},"nodeType":"YulExpressionStatement","src":"20130:18:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20040:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20033:6:60"},"nodeType":"YulFunctionCall","src":"20033:9:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20026:6:60"},"nodeType":"YulFunctionCall","src":"20026:17:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"20048:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20055:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"20123:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"20051:3:60"},"nodeType":"YulFunctionCall","src":"20051:74:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20045:2:60"},"nodeType":"YulFunctionCall","src":"20045:81:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20022:3:60"},"nodeType":"YulFunctionCall","src":"20022:105:60"},"nodeType":"YulIf","src":"20019:131:60"},{"nodeType":"YulAssignment","src":"20159:20:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"20174:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"20177:1:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"20170:3:60"},"nodeType":"YulFunctionCall","src":"20170:9:60"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"20159:7:60"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19988:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"19991:1:60","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"19997:7:60","type":""}],"src":"19957:228:60"},{"body":{"nodeType":"YulBlock","src":"20222:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20239:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20242:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20232:6:60"},"nodeType":"YulFunctionCall","src":"20232:88:60"},"nodeType":"YulExpressionStatement","src":"20232:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20336:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20339:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20329:6:60"},"nodeType":"YulFunctionCall","src":"20329:15:60"},"nodeType":"YulExpressionStatement","src":"20329:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20360:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20363:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20353:6:60"},"nodeType":"YulFunctionCall","src":"20353:15:60"},"nodeType":"YulExpressionStatement","src":"20353:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"20190:184:60"},{"body":{"nodeType":"YulBlock","src":"20426:149:60","statements":[{"body":{"nodeType":"YulBlock","src":"20453:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"20455:16:60"},"nodeType":"YulFunctionCall","src":"20455:18:60"},"nodeType":"YulExpressionStatement","src":"20455:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20446:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20439:6:60"},"nodeType":"YulFunctionCall","src":"20439:13:60"},"nodeType":"YulIf","src":"20436:39:60"},{"nodeType":"YulAssignment","src":"20484:85:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20495:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"20502:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20491:3:60"},"nodeType":"YulFunctionCall","src":"20491:78:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"20484:3:60"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20408:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"20418:3:60","type":""}],"src":"20379:196:60"},{"body":{"nodeType":"YulBlock","src":"20754:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20771:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20782:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20764:6:60"},"nodeType":"YulFunctionCall","src":"20764:21:60"},"nodeType":"YulExpressionStatement","src":"20764:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20805:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20816:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20801:3:60"},"nodeType":"YulFunctionCall","src":"20801:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"20821:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20794:6:60"},"nodeType":"YulFunctionCall","src":"20794:30:60"},"nodeType":"YulExpressionStatement","src":"20794:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20844:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20855:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20840:3:60"},"nodeType":"YulFunctionCall","src":"20840:18:60"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"20860:34:60","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20833:6:60"},"nodeType":"YulFunctionCall","src":"20833:62:60"},"nodeType":"YulExpressionStatement","src":"20833:62:60"},{"nodeType":"YulAssignment","src":"20904:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20916:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20927:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20912:3:60"},"nodeType":"YulFunctionCall","src":"20912:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20904:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20731:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20745:4:60","type":""}],"src":"20580:356:60"},{"body":{"nodeType":"YulBlock","src":"20973:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20990:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20993:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20983:6:60"},"nodeType":"YulFunctionCall","src":"20983:88:60"},"nodeType":"YulExpressionStatement","src":"20983:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21087:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"21090:4:60","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21080:6:60"},"nodeType":"YulFunctionCall","src":"21080:15:60"},"nodeType":"YulExpressionStatement","src":"21080:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21111:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21114:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21104:6:60"},"nodeType":"YulFunctionCall","src":"21104:15:60"},"nodeType":"YulExpressionStatement","src":"21104:15:60"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"20941:184:60"},{"body":{"nodeType":"YulBlock","src":"21304:223:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21321:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21332:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21314:6:60"},"nodeType":"YulFunctionCall","src":"21314:21:60"},"nodeType":"YulExpressionStatement","src":"21314:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21355:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21366:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21351:3:60"},"nodeType":"YulFunctionCall","src":"21351:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"21371:2:60","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21344:6:60"},"nodeType":"YulFunctionCall","src":"21344:30:60"},"nodeType":"YulExpressionStatement","src":"21344:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21394:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21405:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21390:3:60"},"nodeType":"YulFunctionCall","src":"21390:18:60"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nodeType":"YulLiteral","src":"21410:34:60","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21383:6:60"},"nodeType":"YulFunctionCall","src":"21383:62:60"},"nodeType":"YulExpressionStatement","src":"21383:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21465:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21476:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21461:3:60"},"nodeType":"YulFunctionCall","src":"21461:18:60"},{"hexValue":"73","kind":"string","nodeType":"YulLiteral","src":"21481:3:60","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21454:6:60"},"nodeType":"YulFunctionCall","src":"21454:31:60"},"nodeType":"YulExpressionStatement","src":"21454:31:60"},{"nodeType":"YulAssignment","src":"21494:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21506:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21517:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21502:3:60"},"nodeType":"YulFunctionCall","src":"21502:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21494:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21281:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21295:4:60","type":""}],"src":"21130:397:60"},{"body":{"nodeType":"YulBlock","src":"21706:224:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21723:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21734:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21716:6:60"},"nodeType":"YulFunctionCall","src":"21716:21:60"},"nodeType":"YulExpressionStatement","src":"21716:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21757:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21768:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21753:3:60"},"nodeType":"YulFunctionCall","src":"21753:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"21773:2:60","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21746:6:60"},"nodeType":"YulFunctionCall","src":"21746:30:60"},"nodeType":"YulExpressionStatement","src":"21746:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21796:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21807:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21792:3:60"},"nodeType":"YulFunctionCall","src":"21792:18:60"},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e","kind":"string","nodeType":"YulLiteral","src":"21812:34:60","type":"","value":"ERC20: burn amount exceeds balan"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21785:6:60"},"nodeType":"YulFunctionCall","src":"21785:62:60"},"nodeType":"YulExpressionStatement","src":"21785:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21867:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21878:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21863:3:60"},"nodeType":"YulFunctionCall","src":"21863:18:60"},{"hexValue":"6365","kind":"string","nodeType":"YulLiteral","src":"21883:4:60","type":"","value":"ce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21856:6:60"},"nodeType":"YulFunctionCall","src":"21856:32:60"},"nodeType":"YulExpressionStatement","src":"21856:32:60"},{"nodeType":"YulAssignment","src":"21897:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21909:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21920:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21905:3:60"},"nodeType":"YulFunctionCall","src":"21905:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21897:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21683:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21697:4:60","type":""}],"src":"21532:398:60"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff))\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_uint8(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := abi_decode_uint8(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n        value5 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := abi_decode_uint8(add(headStart, 128))\n        value5 := calldataload(add(headStart, 160))\n        value6 := calldataload(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_uint32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n        value1 := value\n    }\n    function abi_encode_tuple_t_struct$_Checkpoint_$1563_memory_ptr__to_t_struct$_Checkpoint_$1563_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(mload(value0), 0xffffffff))\n        mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20Votes: block not yet mined\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n        mstore(add(headStart, 96), \" zero\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_136d0f69bc85a5c125b5cc368e2880ebdb3c89d4d9828f6476431c386ea60257__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20Votes: signature expired\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_stringliteral_1a23b43d95073d55a7380117ca03cace60cd22fee15d5cb140d51e46236e6872__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC20Votes: invalid nonce\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3e89525a63fb9c966b61cf8f5305156de8420bc773a2b60828a2f32c3c5797bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20Permit: expired deadline\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_address_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        mstore(headStart, value0)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_94ca1ab58dfda790a1782ffbb0c0a140ec51d4148dbeecc6c39e37b25ff4b124__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 30)\n        mstore(add(headStart, 64), \"ERC20Permit: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 48)\n        mstore(add(headStart, 64), \"ERC20Votes: total supply risks o\")\n        mstore(add(headStart, 96), \"verflowing votes\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 2\")\n        mstore(add(headStart, 96), \"24 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 3\")\n        mstore(add(headStart, 96), \"2 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n        mstore(add(headStart, 96), \"ss\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n        mstore(add(headStart, 96), \"alance\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_06d20189090e973729391526269baef79c35dd621633195648e5f8309eef9e19__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 9\")\n        mstore(add(headStart, 96), \"6 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x1901000000000000000000000000000000000000000000000000000000000000)\n        mstore(add(pos, 2), value0)\n        mstore(add(pos, 34), value1)\n        end := add(pos, 66)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC20: burn from the zero addres\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ERC20: burn amount exceeds balan\")\n        mstore(add(headStart, 96), \"ce\")\n        tail := add(headStart, 128)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"5302":[{"length":32,"start":6037}],"5304":[{"length":32,"start":5995}],"5306":[{"length":32,"start":5953}],"5308":[{"length":32,"start":6120}],"5310":[{"length":32,"start":6157}],"5312":[{"length":32,"start":6078}],"11597":[{"length":32,"start":856},{"length":32,"start":3866}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102925760003560e01c8063782d6fe111610160578063a457c2d7116100d8578063d505accf1161008c578063d547741f11610071578063d547741f146105fa578063dd62ed3e1461060d578063f1127ed81461064657600080fd5b8063d505accf146105c0578063d5391393146105d357600080fd5b8063b4b5ea57116100bd578063b4b5ea5714610587578063c3cda5201461059a578063ca15c873146105ad57600080fd5b8063a457c2d714610561578063a9059cbb1461057457600080fd5b80639010d07c1161012f57806395d89b411161011457806395d89b411461053e5780639ab24eb014610546578063a217fddf1461055957600080fd5b80639010d07c146104f257806391d148541461050557600080fd5b8063782d6fe11461048957806379cc6790146104b95780637ecebe00146104cc5780638e539e8c146104df57600080fd5b80633644e5151161020e57806342966c68116101c25780635c19a95c116101a75780635c19a95c146104255780636fcfff451461043857806370a082311461046057600080fd5b806342966c68146103ce578063587cde1e146103e157600080fd5b806339509351116101f357806339509351146103955780633a46b1a8146103a857806340c10f19146103bb57600080fd5b80633644e5151461037a57806336568abe1461038257600080fd5b806323b872dd116102655780632f2ff15d1161024a5780632f2ff15d1461032f578063313ce56714610344578063355274ea1461035357600080fd5b806323b872dd146102f9578063248a9ca31461030c57600080fd5b806301ffc9a71461029757806306fdde03146102bf578063095ea7b3146102d457806318160ddd146102e7575b600080fd5b6102aa6102a536600461281a565b610683565b60405190151581526020015b60405180910390f35b6102c76106df565b6040516102b69190612888565b6102aa6102e23660046128d7565b610771565b6002545b6040519081526020016102b6565b6102aa610307366004612901565b610789565b6102eb61031a36600461293d565b6000908152600a602052604090206001015490565b61034261033d366004612956565b6107ad565b005b604051601281526020016102b6565b6102eb7f000000000000000000000000000000000000000000000000000000000000000081565b6102eb6107d7565b610342610390366004612956565b6107e6565b6102aa6103a33660046128d7565b610877565b6102eb6103b63660046128d7565b6108b6565b6103426103c93660046128d7565b610930565b6103426103dc36600461293d565b610964565b61040d6103ef366004612982565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016102b6565b610342610433366004612982565b610971565b61044b610446366004612982565b61097b565b60405163ffffffff90911681526020016102b6565b6102eb61046e366004612982565b6001600160a01b031660009081526020819052604090205490565b61049c6104973660046128d7565b61099d565b6040516bffffffffffffffffffffffff90911681526020016102b6565b6103426104c73660046128d7565b6109b1565b6102eb6104da366004612982565b6109c6565b6102eb6104ed36600461293d565b6109e4565b61040d61050036600461299d565b610a40565b6102aa610513366004612956565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6102c7610a58565b6102eb610554366004612982565b610a67565b6102eb600081565b6102aa61056f3660046128d7565b610aee565b6102aa6105823660046128d7565b610b98565b61049c610595366004612982565b610ba6565b6103426105a83660046129d0565b610bb4565b6102eb6105bb36600461293d565b610cea565b6103426105ce366004612a28565b610d01565b6102eb7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610342610608366004612956565b610e65565b6102eb61061b366004612a92565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610659610654366004612abc565b610e8a565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016102b6565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f0000000000000000000000000000000000000000000000000000000014806106d957506106d98261129a565b92915050565b6060600380546106ee90612afc565b80601f016020809104026020016040519081016040528092919081815260200182805461071a90612afc565b80156107675780601f1061073c57610100808354040283529160200191610767565b820191906000526020600020905b81548152906001019060200180831161074a57829003601f168201915b5050505050905090565b60003361077f818585611331565b5060019392505050565b600033610797858285611489565b6107a2858585611515565b506001949350505050565b6000828152600a60205260409020600101546107c881611708565b6107d28383611712565b505050565b60006107e1611734565b905090565b6001600160a01b03811633146108695760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610873828261185b565b5050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061077f90829086906108b1908790612b46565b611331565b60004382106109075760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610860565b6001600160a01b0383166000908152600860205260409020610929908361187d565b9392505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661095a81611708565b6107d28383611974565b61096e338261197e565b50565b61096e3382611988565b6001600160a01b0381166000908152600860205260408120546106d9906111e0565b60006109296109ac84846108b6565b611a19565b6109bc823383611489565b610873828261197e565b6001600160a01b0381166000908152600560205260408120546106d9565b6000438210610a355760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610860565b6106d960098361187d565b6000828152600b602052604081206109299083611a9d565b6060600480546106ee90612afc565b6001600160a01b0381166000908152600860205260408120548015610adb576001600160a01b0383166000908152600860205260409020610aa9600183612b5e565b81548110610ab957610ab9612b75565b60009182526020909120015464010000000090046001600160e01b0316610ade565b60005b6001600160e01b03169392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610860565b6107a28286868403611331565b60003361077f818585611515565b60006106d96109ac83610a67565b83421115610c045760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610860565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610c7e90610c769060a00160405160208183030381529060405280519060200120611aa9565b858585611b12565b9050610c8981611b3a565b8614610cd75760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610860565b610ce18188611988565b50505050505050565b6000818152600b602052604081206106d990611b62565b83421115610d515760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610860565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610d808c611b3a565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610ddb82611aa9565b90506000610deb82878787611b12565b9050896001600160a01b0316816001600160a01b031614610e4e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610860565b610e598a8a8a611331565b50505050505050505050565b6000828152600a6020526040902060010154610e8081611708565b6107d2838361185b565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610ece57610ece612b75565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610f18828261108a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160e01b0316610f4b60025490565b1115610fbf5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608401610860565b610fcd600961115183611b6c565b50505050565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610873576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff191660011790556110313390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610929836001600160a01b038416611cc0565b6001600160a01b0382166110e05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610860565b80600260008282546110f29190612b46565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361087360008383611d0f565b60006109298284612b46565b60006001600160e01b038211156111dc5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610860565b5090565b600063ffffffff8211156111dc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b038381166000908152600760205260408082205485841683529120546107d292918216911683611d1a565b60006109298284612b5e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806106d957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106d9565b6001600160a01b0383166113ac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0382166114285760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610fcd57818110156115085760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610860565b610fcd8484848403611331565b6001600160a01b0383166115915760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b03821661160d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0383166000908152602081905260409020548181101561169c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610fcd848484611d0f565b61096e8133611e57565b61171c8282610fd3565b6000828152600b602052604090206107d29082611075565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561178d57507f000000000000000000000000000000000000000000000000000000000000000046145b156117b757507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6118658282611ecc565b6000828152600b602052604090206107d29082611f4f565b8154600090818160058111156118d757600061189884611f64565b6118a29085612b5e565b600088815260209020909150869082015463ffffffff1611156118c7578091506118d5565b6118d2816001612b46565b92505b505b808210156119245760006118eb838361204c565b600088815260209020909150869082015463ffffffff1611156119105780915061191e565b61191b816001612b46565b92505b506118d7565b801561195e5761194786611939600184612b5e565b600091825260209091200190565b5464010000000090046001600160e01b0316611961565b60005b6001600160e01b03169695505050505050565b6108738282610f0e565b6108738282612067565b6001600160a01b038281166000818152600760208181526040808420805485845282862054949093528787167fffffffffffffffffffffffff00000000000000000000000000000000000000008416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610fcd828483611d1a565b60006bffffffffffffffffffffffff8211156111dc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610860565b6000610929838361207f565b60006106d9611ab6611734565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611b23878787876120a9565b91509150611b308161216d565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b60006106d9825490565b82546000908190818115611bb957611b8987611939600185612b5e565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611bce565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611bee84868863ffffffff16565b9250600082118015611c065750805163ffffffff1643145b15611c4b57611c148361115d565b611c2388611939600186612b5e565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611cb6565b866040518060400160405280611c60436111e0565b63ffffffff168152602001611c748661115d565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6000818152600183016020526040812054611d07575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106d9565b5060006106d9565b6107d283838361125c565b816001600160a01b0316836001600160a01b031614158015611d3c5750600081115b156107d2576001600160a01b03831615611dca576001600160a01b03831660009081526008602052604081208190611d779061128e85611b6c565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611dbf929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156107d2576001600160a01b03821660009081526008602052604081208190611e009061115185611b6c565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611e48929190918252602082015260400190565b60405180910390a25050505050565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1661087357611e8a816122d2565b611e958360206122e4565b604051602001611ea6929190612b8b565b60408051601f198184030181529082905262461bcd60e51b825261086091600401612888565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1615610873576000828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610929836001600160a01b03841661250d565b600081600003611f7657506000919050565b60006001611f8384612600565b901c6001901b90506001818481611f9c57611f9c612c0c565b048201901c90506001818481611fb457611fb4612c0c565b048201901c90506001818481611fcc57611fcc612c0c565b048201901c90506001818481611fe457611fe4612c0c565b048201901c90506001818481611ffc57611ffc612c0c565b048201901c9050600181848161201457612014612c0c565b048201901c9050600181848161202c5761202c612c0c565b048201901c90506109298182858161204657612046612c0c565b04612694565b600061205b6002848418612c22565b61092990848416612b46565b61207182826126aa565b610fcd600961128e83611b6c565b600082600001828154811061209657612096612b75565b9060005260206000200154905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120e05750600090506003612164565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612134573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661215d57600060019250925050612164565b9150600090505b94509492505050565b600081600481111561218157612181612c44565b036121895750565b600181600481111561219d5761219d612c44565b036121ea5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610860565b60028160048111156121fe576121fe612c44565b0361224b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610860565b600381600481111561225f5761225f612c44565b0361096e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610860565b60606106d96001600160a01b03831660145b606060006122f3836002612c5a565b6122fe906002612b46565b67ffffffffffffffff81111561231657612316612c79565b6040519080825280601f01601f191660200182016040528015612340576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061237757612377612b75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106123da576123da612b75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612416846002612c5a565b612421906001612b46565b90505b60018111156124be577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061246257612462612b75565b1a60f81b82828151811061247857612478612b75565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936124b781612c8f565b9050612424565b5083156109295760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610860565b600081815260018301602052604081205480156125f6576000612531600183612b5e565b855490915060009061254590600190612b5e565b90508181146125aa57600086600001828154811061256557612565612b75565b906000526020600020015490508087600001848154811061258857612588612b75565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806125bb576125bb612ca6565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106d9565b60009150506106d9565b600080608083901c1561261557608092831c92015b604083901c1561262757604092831c92015b602083901c1561263957602092831c92015b601083901c1561264b57601092831c92015b600883901c1561265d57600892831c92015b600483901c1561266f57600492831c92015b600283901c1561268157600292831c92015b600183901c156106d95760010192915050565b60008183106126a35781610929565b5090919050565b6001600160a01b0382166127265760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b038216600090815260208190526040902054818110156127b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610860565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36107d283600084611d0f565b60006020828403121561282c57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461092957600080fd5b60005b8381101561287757818101518382015260200161285f565b83811115610fcd5750506000910152565b60208152600082518060208401526128a781604085016020870161285c565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146128d257600080fd5b919050565b600080604083850312156128ea57600080fd5b6128f3836128bb565b946020939093013593505050565b60008060006060848603121561291657600080fd5b61291f846128bb565b925061292d602085016128bb565b9150604084013590509250925092565b60006020828403121561294f57600080fd5b5035919050565b6000806040838503121561296957600080fd5b82359150612979602084016128bb565b90509250929050565b60006020828403121561299457600080fd5b610929826128bb565b600080604083850312156129b057600080fd5b50508035926020909101359150565b803560ff811681146128d257600080fd5b60008060008060008060c087890312156129e957600080fd5b6129f2876128bb565b95506020870135945060408701359350612a0e606088016129bf565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215612a4357600080fd5b612a4c886128bb565b9650612a5a602089016128bb565b95506040880135945060608801359350612a76608089016129bf565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215612aa557600080fd5b612aae836128bb565b9150612979602084016128bb565b60008060408385031215612acf57600080fd5b612ad8836128bb565b9150602083013563ffffffff81168114612af157600080fd5b809150509250929050565b600181811c90821680612b1057607f821691505b602082108103611b5c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115612b5957612b59612b30565b500190565b600082821015612b7057612b70612b30565b500390565b634e487b7160e01b600052603260045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612bc381601785016020880161285c565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612c0081602884016020880161285c565b01602801949350505050565b634e487b7160e01b600052601260045260246000fd5b600082612c3f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fd5b6000816000190483118215151615612c7457612c74612b30565b500290565b634e487b7160e01b600052604160045260246000fd5b600081612c9e57612c9e612b30565b506000190190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209dfe1a11165bab5de5b5c2c50c39075b0fd24c82d6b3a53a0293534536e3649664736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x292 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x782D6FE1 GT PUSH2 0x160 JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0xD8 JUMPI DUP1 PUSH4 0xD505ACCF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x5FA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x60D JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x646 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x5C0 JUMPI DUP1 PUSH4 0xD5391393 EQ PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB4B5EA57 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xB4B5EA57 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x561 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0x12F JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x9AB24EB0 EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x559 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C EQ PUSH2 0x4F2 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x505 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x782D6FE1 EQ PUSH2 0x489 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x4B9 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x4CC JUMPI DUP1 PUSH4 0x8E539E8C EQ PUSH2 0x4DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x1C2 JUMPI DUP1 PUSH4 0x5C19A95C GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x425 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x3CE JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 GT PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x3A46B1A8 EQ PUSH2 0x3A8 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x382 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x265 JUMPI DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x24A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x344 JUMPI DUP1 PUSH4 0x355274EA EQ PUSH2 0x353 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x2E7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA PUSH2 0x2A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x281A JUMP JUMPDEST PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C7 PUSH2 0x6DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B6 SWAP2 SWAP1 PUSH2 0x2888 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x771 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x307 CALLDATASIZE PUSH1 0x4 PUSH2 0x2901 JUMP JUMPDEST PUSH2 0x789 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH2 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2EB PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x7D7 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x390 CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH2 0x7E6 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x3A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x3B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x3C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x930 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x3DC CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH2 0x964 JUMP JUMPDEST PUSH2 0x40D PUSH2 0x3EF CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x433 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0x971 JUMP JUMPDEST PUSH2 0x44B PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0x97B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x49C PUSH2 0x497 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x4C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0x9B1 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x4DA CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0x9C6 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x4ED CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH2 0x9E4 JUMP JUMPDEST PUSH2 0x40D PUSH2 0x500 CALLDATASIZE PUSH1 0x4 PUSH2 0x299D JUMP JUMPDEST PUSH2 0xA40 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x513 CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x2C7 PUSH2 0xA58 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x554 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0xA67 JUMP JUMPDEST PUSH2 0x2EB PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x56F CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0xAEE JUMP JUMPDEST PUSH2 0x2AA PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x28D7 JUMP JUMPDEST PUSH2 0xB98 JUMP JUMPDEST PUSH2 0x49C PUSH2 0x595 CALLDATASIZE PUSH1 0x4 PUSH2 0x2982 JUMP JUMPDEST PUSH2 0xBA6 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x5A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xBB4 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x5BB CALLDATASIZE PUSH1 0x4 PUSH2 0x293D JUMP JUMPDEST PUSH2 0xCEA JUMP JUMPDEST PUSH2 0x342 PUSH2 0x5CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2A28 JUMP JUMPDEST PUSH2 0xD01 JUMP JUMPDEST PUSH2 0x2EB PUSH32 0x9F2DF0FED2C77648DE5860A4CC508CD0818C85B8B8A1AB4CEEEF8D981C8956A6 DUP2 JUMP JUMPDEST PUSH2 0x342 PUSH2 0x608 CALLDATASIZE PUSH1 0x4 PUSH2 0x2956 JUMP JUMPDEST PUSH2 0xE65 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x61B CALLDATASIZE PUSH1 0x4 PUSH2 0x2A92 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x659 PUSH2 0x654 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ABC JUMP JUMPDEST PUSH2 0xE8A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ADD PUSH2 0x2B6 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x6D9 JUMPI POP PUSH2 0x6D9 DUP3 PUSH2 0x129A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x6EE SWAP1 PUSH2 0x2AFC JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x71A SWAP1 PUSH2 0x2AFC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x767 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x73C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x767 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x74A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x77F DUP2 DUP6 DUP6 PUSH2 0x1331 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x797 DUP6 DUP3 DUP6 PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x7A2 DUP6 DUP6 DUP6 PUSH2 0x1515 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x7C8 DUP2 PUSH2 0x1708 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 PUSH2 0x1712 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7E1 PUSH2 0x1734 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x869 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0x185B JUMP JUMPDEST POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x77F SWAP1 DUP3 SWAP1 DUP7 SWAP1 PUSH2 0x8B1 SWAP1 DUP8 SWAP1 PUSH2 0x2B46 JUMP JUMPDEST PUSH2 0x1331 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x907 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20626C6F636B206E6F7420796574206D696E656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x929 SWAP1 DUP4 PUSH2 0x187D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x9F2DF0FED2C77648DE5860A4CC508CD0818C85B8B8A1AB4CEEEF8D981C8956A6 PUSH2 0x95A DUP2 PUSH2 0x1708 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 PUSH2 0x1974 JUMP JUMPDEST PUSH2 0x96E CALLER DUP3 PUSH2 0x197E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x96E CALLER DUP3 PUSH2 0x1988 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6D9 SWAP1 PUSH2 0x11E0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 PUSH2 0x9AC DUP5 DUP5 PUSH2 0x8B6 JUMP JUMPDEST PUSH2 0x1A19 JUMP JUMPDEST PUSH2 0x9BC DUP3 CALLER DUP4 PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0x197E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0xA35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20626C6F636B206E6F7420796574206D696E656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0x6D9 PUSH1 0x9 DUP4 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x929 SWAP1 DUP4 PUSH2 0x1A9D JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x6EE SWAP1 PUSH2 0x2AFC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAA9 PUSH1 0x1 DUP4 PUSH2 0x2B5E JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xAB9 JUMPI PUSH2 0xAB9 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0xADE JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP4 DUP2 LT ISZERO PUSH2 0xB8B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x207A65726F000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0x7A2 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x1331 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x77F DUP2 DUP6 DUP6 PUSH2 0x1515 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 PUSH2 0x9AC DUP4 PUSH2 0xA67 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0xC04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A207369676E61747572652065787069726564000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xE48329057BFD03D55E49B547132E39CFFD9C1820AD7B9D4C5307691425D15ADF PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xC7E SWAP1 PUSH2 0xC76 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1AA9 JUMP JUMPDEST DUP6 DUP6 DUP6 PUSH2 0x1B12 JUMP JUMPDEST SWAP1 POP PUSH2 0xC89 DUP2 PUSH2 0x1B3A JUMP JUMPDEST DUP7 EQ PUSH2 0xCD7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20696E76616C6964206E6F6E636500000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xCE1 DUP2 DUP9 PUSH2 0x1988 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x6D9 SWAP1 PUSH2 0x1B62 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0xD51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332305065726D69743A206578706972656420646561646C696E65000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP9 DUP9 DUP9 PUSH2 0xD80 DUP13 PUSH2 0x1B3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND SWAP1 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP2 AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH2 0xDDB DUP3 PUSH2 0x1AA9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDEB DUP3 DUP8 DUP8 DUP8 PUSH2 0x1B12 JUMP JUMPDEST SWAP1 POP DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332305065726D69743A20696E76616C6964207369676E61747572650000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xE59 DUP11 DUP11 DUP11 PUSH2 0x1331 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xE80 DUP2 PUSH2 0x1708 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 PUSH2 0x185B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP2 LT PUSH2 0xECE JUMPI PUSH2 0xECE PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP2 ADD SLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP3 MSTORE PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF18 DUP3 DUP3 PUSH2 0x108A JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0xF4B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST GT ISZERO PUSH2 0xFBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433230566F7465733A20746F74616C20737570706C79207269736B73206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x766572666C6F77696E6720766F74657300000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xFCD PUSH1 0x9 PUSH2 0x1151 DUP4 PUSH2 0x1B6C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x873 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1031 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1CC0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x10E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x10F2 SWAP2 SWAP1 PUSH2 0x2B46 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP7 ADD SWAP1 SSTORE MLOAD DUP5 DUP2 MSTORE PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x873 PUSH1 0x0 DUP4 DUP4 PUSH2 0x1D0F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP3 DUP5 PUSH2 0x2B46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3234206269747300000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3220626974730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP6 DUP5 AND DUP4 MSTORE SWAP2 KECCAK256 SLOAD PUSH2 0x7D2 SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH2 0x1D1A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP3 DUP5 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x6D9 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x13AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1428 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0xFCD JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1508 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH2 0xFCD DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x1331 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x1591 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x160D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x169C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616C616E63650000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP8 SUB SWAP1 SSTORE SWAP4 DUP8 AND DUP1 DUP4 MSTORE SWAP2 DUP5 SWAP1 KECCAK256 DUP1 SLOAD DUP8 ADD SWAP1 SSTORE SWAP3 MLOAD DUP6 DUP2 MSTORE SWAP1 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xFCD DUP5 DUP5 DUP5 PUSH2 0x1D0F JUMP JUMPDEST PUSH2 0x96E DUP2 CALLER PUSH2 0x1E57 JUMP JUMPDEST PUSH2 0x171C DUP3 DUP3 PUSH2 0xFD3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x7D2 SWAP1 DUP3 PUSH2 0x1075 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x178D JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x17B7 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x1865 DUP3 DUP3 PUSH2 0x1ECC JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x7D2 SWAP1 DUP3 PUSH2 0x1F4F JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 DUP2 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x18D7 JUMPI PUSH1 0x0 PUSH2 0x1898 DUP5 PUSH2 0x1F64 JUMP JUMPDEST PUSH2 0x18A2 SWAP1 DUP6 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 SWAP2 POP DUP7 SWAP1 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x18C7 JUMPI DUP1 SWAP2 POP PUSH2 0x18D5 JUMP JUMPDEST PUSH2 0x18D2 DUP2 PUSH1 0x1 PUSH2 0x2B46 JUMP JUMPDEST SWAP3 POP JUMPDEST POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x1924 JUMPI PUSH1 0x0 PUSH2 0x18EB DUP4 DUP4 PUSH2 0x204C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 SWAP2 POP DUP7 SWAP1 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x1910 JUMPI DUP1 SWAP2 POP PUSH2 0x191E JUMP JUMPDEST PUSH2 0x191B DUP2 PUSH1 0x1 PUSH2 0x2B46 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x18D7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x195E JUMPI PUSH2 0x1947 DUP7 PUSH2 0x1939 PUSH1 0x1 DUP5 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SWAP1 JUMP JUMPDEST SLOAD PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1961 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0xF0E JUMP JUMPDEST PUSH2 0x873 DUP3 DUP3 PUSH2 0x2067 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP1 SLOAD DUP6 DUP5 MSTORE DUP3 DUP7 KECCAK256 SLOAD SWAP5 SWAP1 SWAP4 MSTORE DUP8 DUP8 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP5 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP6 AND SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 DUP6 SWAP3 SWAP2 PUSH32 0x3134E8A2E6D97E929A7E54011EA5485D7D196DD5F0BA4D4EF95803E8E3FC257F SWAP2 SWAP1 LOG4 PUSH2 0xFCD DUP3 DUP5 DUP4 PUSH2 0x1D1A JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2039 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x3620626974730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP4 DUP4 PUSH2 0x207F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 PUSH2 0x1AB6 PUSH2 0x1734 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1B23 DUP8 DUP8 DUP8 DUP8 PUSH2 0x20A9 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1B30 DUP2 PUSH2 0x216D JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 DUP3 SLOAD SWAP1 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 DUP2 ISZERO PUSH2 0x1BB9 JUMPI PUSH2 0x1B89 DUP8 PUSH2 0x1939 PUSH1 0x1 DUP6 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP1 SLOAD PUSH4 0xFFFFFFFF DUP2 AND DUP3 MSTORE PUSH5 0x100000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1BCE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 POP PUSH2 0x1BEE DUP5 DUP7 DUP9 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH2 0x1C06 JUMPI POP DUP1 MLOAD PUSH4 0xFFFFFFFF AND NUMBER EQ JUMPDEST ISZERO PUSH2 0x1C4B JUMPI PUSH2 0x1C14 DUP4 PUSH2 0x115D JUMP JUMPDEST PUSH2 0x1C23 DUP9 PUSH2 0x1939 PUSH1 0x1 DUP7 PUSH2 0x2B5E JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1CB6 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x1C60 NUMBER PUSH2 0x11E0 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C74 DUP7 PUSH2 0x115D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 SWAP1 KECCAK256 DUP4 MLOAD SWAP5 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP2 AND PUSH5 0x100000000 MUL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 ADD SSTORE JUMPDEST POP POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1D07 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x6D9 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x7D2 DUP4 DUP4 DUP4 PUSH2 0x125C JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO DUP1 ISZERO PUSH2 0x1D3C JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0x7D2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x1DCA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1D77 SWAP1 PUSH2 0x128E DUP6 PUSH2 0x1B6C JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1DBF SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO PUSH2 0x7D2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x1E00 SWAP1 PUSH2 0x1151 DUP6 PUSH2 0x1B6C JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1E48 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x873 JUMPI PUSH2 0x1E8A DUP2 PUSH2 0x22D2 JUMP JUMPDEST PUSH2 0x1E95 DUP4 PUSH1 0x20 PUSH2 0x22E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1EA6 SWAP3 SWAP2 SWAP1 PUSH2 0x2B8B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x860 SWAP2 PUSH1 0x4 ADD PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x250D JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SUB PUSH2 0x1F76 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1F83 DUP5 PUSH2 0x2600 JUMP JUMPDEST SWAP1 SHR PUSH1 0x1 SWAP1 SHL SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1F9C JUMPI PUSH2 0x1F9C PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FB4 JUMPI PUSH2 0x1FB4 PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FCC JUMPI PUSH2 0x1FCC PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FE4 JUMPI PUSH2 0x1FE4 PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1FFC JUMPI PUSH2 0x1FFC PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x2014 JUMPI PUSH2 0x2014 PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x202C JUMPI PUSH2 0x202C PUSH2 0x2C0C JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH2 0x929 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2046 JUMPI PUSH2 0x2046 PUSH2 0x2C0C JUMP JUMPDEST DIV PUSH2 0x2694 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x205B PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x2C22 JUMP JUMPDEST PUSH2 0x929 SWAP1 DUP5 DUP5 AND PUSH2 0x2B46 JUMP JUMPDEST PUSH2 0x2071 DUP3 DUP3 PUSH2 0x26AA JUMP JUMPDEST PUSH2 0xFCD PUSH1 0x9 PUSH2 0x128E DUP4 PUSH2 0x1B6C JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2096 JUMPI PUSH2 0x2096 PUSH2 0x2B75 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x20E0 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x2164 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2134 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x215D JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x2164 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2181 JUMPI PUSH2 0x2181 PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x2189 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x219D JUMPI PUSH2 0x219D PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x21EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x21FE JUMPI PUSH2 0x21FE PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x224B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x225F JUMPI PUSH2 0x225F PUSH2 0x2C44 JUMP JUMPDEST SUB PUSH2 0x96E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6D9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x22F3 DUP4 PUSH1 0x2 PUSH2 0x2C5A JUMP JUMPDEST PUSH2 0x22FE SWAP1 PUSH1 0x2 PUSH2 0x2B46 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2316 JUMPI PUSH2 0x2316 PUSH2 0x2C79 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2340 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2377 JUMPI PUSH2 0x2377 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x23DA JUMPI PUSH2 0x23DA PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x2416 DUP5 PUSH1 0x2 PUSH2 0x2C5A JUMP JUMPDEST PUSH2 0x2421 SWAP1 PUSH1 0x1 PUSH2 0x2B46 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x24BE JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x2462 JUMPI PUSH2 0x2462 PUSH2 0x2B75 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2478 JUMPI PUSH2 0x2478 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x24B7 DUP2 PUSH2 0x2C8F JUMP JUMPDEST SWAP1 POP PUSH2 0x2424 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x25F6 JUMPI PUSH1 0x0 PUSH2 0x2531 PUSH1 0x1 DUP4 PUSH2 0x2B5E JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2545 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x25AA JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2565 JUMPI PUSH2 0x2565 PUSH2 0x2B75 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2588 JUMPI PUSH2 0x2588 PUSH2 0x2B75 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x25BB JUMPI PUSH2 0x25BB PUSH2 0x2CA6 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x80 DUP4 SWAP1 SHR ISZERO PUSH2 0x2615 JUMPI PUSH1 0x80 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x40 DUP4 SWAP1 SHR ISZERO PUSH2 0x2627 JUMPI PUSH1 0x40 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x20 DUP4 SWAP1 SHR ISZERO PUSH2 0x2639 JUMPI PUSH1 0x20 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x10 DUP4 SWAP1 SHR ISZERO PUSH2 0x264B JUMPI PUSH1 0x10 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x8 DUP4 SWAP1 SHR ISZERO PUSH2 0x265D JUMPI PUSH1 0x8 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x4 DUP4 SWAP1 SHR ISZERO PUSH2 0x266F JUMPI PUSH1 0x4 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x2 DUP4 SWAP1 SHR ISZERO PUSH2 0x2681 JUMPI PUSH1 0x2 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x1 DUP4 SWAP1 SHR ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x26A3 JUMPI DUP2 PUSH2 0x929 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2726 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E2066726F6D20746865207A65726F20616464726573 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x27B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206275726E20616D6F756E7420657863656564732062616C616E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x860 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP7 SUB SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD DUP8 SWAP1 SUB SWAP1 SSTORE MLOAD DUP6 DUP2 MSTORE SWAP2 SWAP3 SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x7D2 DUP4 PUSH1 0x0 DUP5 PUSH2 0x1D0F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x929 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2877 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x285F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xFCD JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x28A7 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x285C JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x28D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28F3 DUP4 PUSH2 0x28BB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x291F DUP5 PUSH2 0x28BB JUMP JUMPDEST SWAP3 POP PUSH2 0x292D PUSH1 0x20 DUP6 ADD PUSH2 0x28BB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x294F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2969 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x2979 PUSH1 0x20 DUP5 ADD PUSH2 0x28BB JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x929 DUP3 PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x28D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x29E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29F2 DUP8 PUSH2 0x28BB JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x2A0E PUSH1 0x60 DUP9 ADD PUSH2 0x29BF JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD SWAP2 POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2A43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A4C DUP9 PUSH2 0x28BB JUMP JUMPDEST SWAP7 POP PUSH2 0x2A5A PUSH1 0x20 DUP10 ADD PUSH2 0x28BB JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH2 0x2A76 PUSH1 0x80 DUP10 ADD PUSH2 0x29BF JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AAE DUP4 PUSH2 0x28BB JUMP JUMPDEST SWAP2 POP PUSH2 0x2979 PUSH1 0x20 DUP5 ADD PUSH2 0x28BB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2ACF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AD8 DUP4 PUSH2 0x28BB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2AF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2B10 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1B5C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2B59 JUMPI PUSH2 0x2B59 PUSH2 0x2B30 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2B70 JUMPI PUSH2 0x2B70 PUSH2 0x2B30 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x2BC3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x285C JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2C00 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x285C JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2C3F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2C74 JUMPI PUSH2 0x2C74 PUSH2 0x2B30 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2C9E JUMPI PUSH2 0x2C9E PUSH2 0x2B30 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 INVALID BYTE GT AND JUMPDEST 0xAB 0x5D 0xE5 0xB5 0xC2 0xC5 0xC CODECOPY SMOD JUMPDEST 0xF 0xD2 0x4C DUP3 0xD6 0xB3 0xA5 GASPRICE MUL SWAP4 MSTORE8 GASLIMIT CALLDATASIZE 0xE3 PUSH5 0x9664736F6C PUSH4 0x4300080F STOP CALLER ","sourceMap":"422:1172:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;:::i;:::-;;:::i;:::-;;;516:14:60;;509:22;491:41;;479:2;464:18;634:212:1;;;;;;;;2154:98:7;;;:::i;:::-;;;;;;;:::i;4431:197::-;;;;;;:::i;:::-;;:::i;3242:106::-;3329:12;;3242:106;;;1859:25:60;;;1847:2;1832:18;3242:106:7;1713:177:60;5190:286:7;;;;;;:::i;:::-;;:::i;4378:129:0:-;;;;;;:::i;:::-;4452:7;4478:12;;;:6;:12;;;;;:22;;;;4378:129;4803:145;;;;;;:::i;:::-;;:::i;:::-;;3091:91:7;;;3173:2;2996:36:60;;2984:2;2969:18;3091:91:7;2854:184:60;589:28:43;;;;;2879:113:13;;;:::i;5912:214:0:-;;;;;;:::i;:::-;;:::i;5871:234:7:-;;;;;;:::i;:::-;;:::i;2825:265:10:-;;;;;;:::i;:::-;;:::i;902:109:43:-;;;;;;:::i;:::-;;:::i;578:89:9:-;;;;;;:::i;:::-;;:::i;2218:126:10:-;;;;;;:::i;:::-;-1:-1:-1;;;;;2318:19:10;;;2292:7;2318:19;;;:10;:19;;;;;;;;2218:126;;;;-1:-1:-1;;;;;3583:55:60;;;3565:74;;3553:2;3538:18;2218:126:10;3419:226:60;5648:112:10;;;;;;:::i;:::-;;:::i;1981:149::-;;;;;;:::i;:::-;;:::i;:::-;;;3824:10:60;3812:23;;;3794:42;;3782:2;3767:18;1981:149:10;3650:192:60;3406:125:7;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:7;3480:7;3506:18;;;;;;;;;;;;3406:125;1638:177:11;;;;;;:::i;:::-;;:::i;:::-;;;4021:26:60;4009:39;;;3991:58;;3979:2;3964:18;1638:177:11;3847:208:60;973:161:9;;;;;;:::i;:::-;;:::i;2629:126:13:-;;;;;;:::i;:::-;;:::i;3369:256:10:-;;;;;;:::i;:::-;;:::i;1431:151:1:-;;;;;;:::i;:::-;;:::i;2895:145:0:-;;;;;;:::i;:::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145;2365:102:7;;;:::i;2423:209:10:-;;;;;;:::i;:::-;;:::i;2027:49:0:-;;2072:4;2027:49;;6592:427:7;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;1391:141:11:-;;;;;;:::i;:::-;;:::i;5837:574:10:-;;;;;;:::i;:::-;;:::i;1750:140:1:-;;;;;;:::i;:::-;;:::i;1942:626:13:-;;;;;;:::i;:::-;;:::i;520:62:43:-;;558:24;520:62;;5228:147:0;;;;;;:::i;:::-;;:::i;3974:149:7:-;;;;;;:::i;:::-;-1:-1:-1;;;;;4089:18:7;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149;1758:148:10;;;;;;:::i;:::-;;:::i;:::-;;;;6465:13:60;;6480:10;6461:30;6443:49;;6552:4;6540:17;;;6534:24;-1:-1:-1;;;;;6530:89:60;6508:20;;;6501:119;;;;6416:18;1758:148:10;6241:385:60;634:212:1;719:4;742:57;;;757:42;742:57;;:97;;;803:36;827:11;803:23;:36::i;:::-;735:104;634:212;-1:-1:-1;;634:212:1:o;2154:98:7:-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:24;4568:32:7;719:10:24;4584:7:7;4593:6;4568:8;:32::i;:::-;-1:-1:-1;4617:4:7;;4431:197;-1:-1:-1;;;4431:197:7:o;5190:286::-;5317:4;719:10:24;5373:38:7;5389:4;719:10:24;5404:6:7;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:7;;5190:286;-1:-1:-1;;;;5190:286:7:o;4803:145:0:-;4452:7;4478:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;:::-;4803:145:::0;;;:::o;2879:113:13:-;2939:7;2965:20;:18;:20::i;:::-;2958:27;;2879:113;:::o;5912:214:0:-;-1:-1:-1;;;;;6007:23:0;;719:10:24;6007:23:0;5999:83;;;;-1:-1:-1;;;5999:83:0;;7275:2:60;5999:83:0;;;7257:21:60;7314:2;7294:18;;;7287:30;7353:34;7333:18;;;7326:62;7424:17;7404:18;;;7397:45;7459:19;;5999:83:0;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;5871:234:7:-;719:10:24;5959:4:7;4089:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4089:27:7;;;;;;;;;;5959:4;;719:10:24;6013:64:7;;719:10:24;;4089:27:7;;6038:38;;6066:10;;6038:38;:::i;:::-;6013:8;:64::i;2825:265:10:-;2923:7;2964:12;2950:11;:26;2942:70;;;;-1:-1:-1;;;2942:70:10;;8013:2:60;2942:70:10;;;7995:21:60;8052:2;8032:18;;;8025:30;8091:33;8071:18;;;8064:61;8142:18;;2942:70:10;7811:355:60;2942:70:10;-1:-1:-1;;;;;3048:21:10;;;;;;:12;:21;;;;;3029:54;;3071:11;3029:18;:54::i;:::-;3022:61;2825:265;-1:-1:-1;;;2825:265:10:o;902:109:43:-;558:24;2505:16:0;2516:4;2505:10;:16::i;:::-;986:17:43::1;992:2;996:6;986:5;:17::i;578:89:9:-:0;633:27;719:10:24;653:6:9;633:5;:27::i;:::-;578:89;:::o;5648:112:10:-;5719:34;719:10:24;5743:9:10;5719;:34::i;1981:149::-;-1:-1:-1;;;;;2094:21:10;;2051:6;2094:21;;;:12;:21;;;;;:28;2076:47;;:17;:47::i;1638:177:11:-;1730:6;1755:53;1773:34;1786:7;1795:11;1773:12;:34::i;:::-;1755:17;:53::i;973:161:9:-;1049:46;1065:7;719:10:24;1088:6:9;1049:15;:46::i;:::-;1105:22;1111:7;1120:6;1105:5;:22::i;2629:126:13:-;-1:-1:-1;;;;;2724:14:13;;2698:7;2724:14;;;:7;:14;;;;;918::25;2724:24:13;827:112:25;3369:256:10;3456:7;3497:12;3483:11;:26;3475:70;;;;-1:-1:-1;;;3475:70:10;;8013:2:60;3475:70:10;;;7995:21:60;8052:2;8032:18;;;8025:30;8091:33;8071:18;;;8064:61;8142:18;;3475:70:10;7811:355:60;3475:70:10;3562:56;3581:23;3606:11;3562:18;:56::i;1431:151:1:-;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;2365:102:7:-;2421:13;2453:7;2446:14;;;;;:::i;2423:209:10:-;-1:-1:-1;;;;;2529:21:10;;2496:7;2529:21;;;:12;:21;;;;;:28;2574:8;;:51;;-1:-1:-1;;;;;2589:21:10;;;;;;:12;:21;;;;;2611:7;2617:1;2611:3;:7;:::i;:::-;2589:30;;;;;;;;:::i;:::-;;;;;;;;;;:36;;;;-1:-1:-1;;;;;2589:36:10;2574:51;;;2585:1;2574:51;-1:-1:-1;;;;;2567:58:10;;2423:209;-1:-1:-1;;;2423:209:10:o;6592:427:7:-;719:10:24;6685:4:7;4089:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4089:27:7;;;;;;;;;;6685:4;;719:10:24;6829:15:7;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:7;;8692:2:60;6801:85:7;;;8674:21:60;8731:2;8711:18;;;8704:30;8770:34;8750:18;;;8743:62;8841:7;8821:18;;;8814:35;8866:19;;6801:85:7;8490:401:60;6801:85:7;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:24;3860:28:7;719:10:24;3877:2:7;3881:6;3860:9;:28::i;1391:141:11:-;1464:6;1489:36;1507:17;1516:7;1507:8;:17::i;5837:574:10:-;6056:6;6037:15;:25;;6029:67;;;;-1:-1:-1;;;6029:67:10;;9098:2:60;6029:67:10;;;9080:21:60;9137:2;9117:18;;;9110:30;9176:31;9156:18;;;9149:59;9225:18;;6029:67:10;8896:353:60;6029:67:10;6177:58;;;1447:71;6177:58;;;9485:25:60;-1:-1:-1;;;;;9546:55:60;;9526:18;;;9519:83;;;;9618:18;;;9611:34;;;9661:18;;;9654:34;;;6106:14:10;;6123:169;;6150:87;;9457:19:60;;6177:58:10;;;;;;;;;;;;6167:69;;;;;;6150:16;:87::i;:::-;6251:1;6266;6281;6123:13;:169::i;:::-;6106:186;;6319:17;6329:6;6319:9;:17::i;:::-;6310:5;:26;6302:64;;;;-1:-1:-1;;;6302:64:10;;9901:2:60;6302:64:10;;;9883:21:60;9940:2;9920:18;;;9913:30;9979:27;9959:18;;;9952:55;10024:18;;6302:64:10;9699:349:60;6302:64:10;6376:28;6386:6;6394:9;6376;:28::i;:::-;6019:392;5837:574;;;;;;:::o;1750:140:1:-;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;1942:626:13:-;2177:8;2158:15;:27;;2150:69;;;;-1:-1:-1;;;2150:69:13;;10255:2:60;2150:69:13;;;10237:21:60;10294:2;10274:18;;;10267:30;10333:31;10313:18;;;10306:59;10382:18;;2150:69:13;10053:353:60;2150:69:13;2230:18;1137:95;2290:5;2297:7;2306:5;2313:16;2323:5;2313:9;:16::i;:::-;2261:79;;;;;;10698:25:60;;;;-1:-1:-1;;;;;10820:15:60;;;10800:18;;;10793:43;10872:15;;;;10852:18;;;10845:43;10904:18;;;10897:34;10947:19;;;10940:35;10991:19;;;10984:35;;;10670:19;;2261:79:13;;;;;;;;;;;;2251:90;;;;;;2230:111;;2352:12;2367:28;2384:10;2367:16;:28::i;:::-;2352:43;;2406:14;2423:28;2437:4;2443:1;2446;2449;2423:13;:28::i;:::-;2406:45;;2479:5;-1:-1:-1;;;;;2469:15:13;:6;-1:-1:-1;;;;;2469:15:13;;2461:58;;;;-1:-1:-1;;;2461:58:13;;11232:2:60;2461:58:13;;;11214:21:60;11271:2;11251:18;;;11244:30;11310:32;11290:18;;;11283:60;11360:18;;2461:58:13;11030:354:60;2461:58:13;2530:31;2539:5;2546:7;2555:5;2530:8;:31::i;:::-;2140:428;;;1942:626;;;;;;;:::o;5228:147:0:-;4452:7;4478:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;1758:148:10:-:0;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;1873:21:10;;;;;;:12;:21;;;;;:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1866:33;;;;;;;;;1873:26;;1866:33;;;;;;;;;-1:-1:-1;;;;;1866:33:10;;;;;;;;;1758:148;-1:-1:-1;;;1758:148:10:o;6705:285::-;6789:28;6801:7;6810:6;6789:11;:28::i;:::-;1108:3:43;-1:-1:-1;;;;;6835:29:10;:13;3329:12:7;;;3242:106;6835:13:10;:29;;6827:90;;;;-1:-1:-1;;;6827:90:10;;11591:2:60;6827:90:10;;;11573:21:60;11630:2;11610:18;;;11603:30;11669:34;11649:18;;;11642:62;11740:18;11720;;;11713:46;11776:19;;6827:90:10;11389:412:60;6827:90:10;6928:55;6945:23;6970:4;6976:6;6928:16;:55::i;:::-;;;6705:285;;:::o;7461:233:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;8567:535:7:-;-1:-1:-1;;;;;8650:21:7;;8642:65;;;;-1:-1:-1;;;8642:65:7;;12008:2:60;8642:65:7;;;11990:21:60;12047:2;12027:18;;;12020:30;12086:33;12066:18;;;12059:61;12137:18;;8642:65:7;11806:355:60;8642:65:7;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:7;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1859:25:60;;;8999:37:7;;1832:18:60;8999:37:7;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;:48::i;9575:96:10:-;9633:7;9659:5;9663:1;9659;:5;:::i;2836:192:33:-;2893:7;-1:-1:-1;;;;;2920:26:33;;;2912:78;;;;-1:-1:-1;;;2912:78:33;;12368:2:60;2912:78:33;;;12350:21:60;12407:2;12387:18;;;12380:30;12446:34;12426:18;;;12419:62;12517:9;12497:18;;;12490:37;12544:19;;2912:78:33;12166:403:60;2912:78:33;-1:-1:-1;3015:5:33;2836:192::o;15264:187::-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:33;;12776:2:60;15338:76:33;;;12758:21:60;12815:2;12795:18;;;12788:30;12854:34;12834:18;;;12827:62;12925:8;12905:18;;;12898:36;12951:19;;15338:76:33;12574:402:60;7409:254:10;-1:-1:-1;;;;;2318:19:10;;;2292:7;2318:19;;;:10;:19;;;;;;;;;;;;;;;7600:56;;2318:19;;;;;7649:6;7600:16;:56::i;9677:101::-;9740:7;9766:5;9770:1;9766;:5;:::i;2606:202:0:-;2691:4;2714:47;;;2729:32;2714:47;;:87;;-1:-1:-1;952:25:30;937:40;;;;2765:36:0;829:155:30;10504:370:7;-1:-1:-1;;;;;10635:19:7;;10627:68;;;;-1:-1:-1;;;10627:68:7;;13183:2:60;10627:68:7;;;13165:21:60;13222:2;13202:18;;;13195:30;13261:34;13241:18;;;13234:62;13332:6;13312:18;;;13305:34;13356:19;;10627:68:7;12981:400:60;10627:68:7;-1:-1:-1;;;;;10713:21:7;;10705:68;;;;-1:-1:-1;;;10705:68:7;;13588:2:60;10705:68:7;;;13570:21:60;13627:2;13607:18;;;13600:30;13666:34;13646:18;;;13639:62;13737:4;13717:18;;;13710:32;13759:19;;10705:68:7;13386:398:60;10705:68:7;-1:-1:-1;;;;;10784:18:7;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1859:25:60;;;10835:32:7;;1832:18:60;10835:32:7;;;;;;;10504:370;;;:::o;11155:441::-;-1:-1:-1;;;;;4089:18:7;;;11285:24;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11351:37:7;;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:7;;13991:2:60;11404:68:7;;;13973:21:60;14030:2;14010:18;;;14003:30;14069:31;14049:18;;;14042:59;14118:18;;11404:68:7;13789:353:60;11404:68:7;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;7473:818::-;-1:-1:-1;;;;;7599:18:7;;7591:68;;;;-1:-1:-1;;;7591:68:7;;14349:2:60;7591:68:7;;;14331:21:60;14388:2;14368:18;;;14361:30;14427:34;14407:18;;;14400:62;14498:7;14478:18;;;14471:35;14523:19;;7591:68:7;14147:401:60;7591:68:7;-1:-1:-1;;;;;7677:16:7;;7669:64;;;;-1:-1:-1;;;7669:64:7;;14755:2:60;7669:64:7;;;14737:21:60;14794:2;14774:18;;;14767:30;14833:34;14813:18;;;14806:62;14904:5;14884:18;;;14877:33;14927:19;;7669:64:7;14553:399:60;7669:64:7;-1:-1:-1;;;;;7815:15:7;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:7;;15159:2:60;7840:72:7;;;15141:21:60;15198:2;15178:18;;;15171:30;15237:34;15217:18;;;15210:62;15308:8;15288:18;;;15281:36;15334:19;;7840:72:7;14957:402:60;7840:72:7;-1:-1:-1;;;;;7946:15:7;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1859:25:60;;;8161:13:7;;8210:26;;1832:18:60;8210:26:7;;;;;;;8247:37;8267:4;8273:2;8277:6;8247:19;:37::i;3334:103:0:-;3400:30;3411:4;719:10:24;3400::0;:30::i;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;3152:308:28:-;3205:7;3236:4;-1:-1:-1;;;;;3245:12:28;3228:29;;:66;;;;;3278:16;3261:13;:33;3228:66;3224:230;;;-1:-1:-1;3317:24:28;;3152:308::o;3224:230::-;-1:-1:-1;3642:73:28;;;3401:10;3642:73;;;;17074:25:60;;;;3413:12:28;17115:18:60;;;17108:34;3427:15:28;17158:18:60;;;17151:34;3686:13:28;17201:18:60;;;17194:34;3709:4:28;17244:19:60;;;;17237:84;;;;3642:73:28;;;;;;;;;;17046:19:60;;;;3642:73:28;;;3632:84;;;;;;2879:113:13:o;2233:171:1:-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;3709:1858:10:-;4913:12;;3808:7;;;4913:12;5006:1;4997:10;;4993:244;;;5023:11;5046:17;5056:6;5046:9;:17::i;:::-;5037:26;;:6;:26;:::i;:::-;10007:25;10067:21;;;10133:4;10120:18;;5023:40;;-1:-1:-1;5119:11:10;;10116:28;;5081:35;;;:49;5077:150;;;5157:3;5150:10;;5077:150;;;5205:7;:3;5211:1;5205:7;:::i;:::-;5199:13;;5077:150;5009:228;4993:244;5260:4;5254:3;:10;5247:244;;;5280:11;5294:23;5307:3;5312:4;5294:12;:23::i;:::-;10007:25;10067:21;;;10133:4;10120:18;;5280:37;;-1:-1:-1;5373:11:10;;10116:28;;5335:35;;;:49;5331:150;;;5411:3;5404:10;;5331:150;;;5459:7;:3;5465:1;5459:7;:::i;:::-;5453:13;;5331:150;5266:225;5247:244;;;5508:9;;:52;;5524:30;5538:5;5545:8;5552:1;5545:4;:8;:::i;:::-;10007:25;10067:21;;;10133:4;10120:18;;;10116:28;;9921:239;5524:30;:36;;;;-1:-1:-1;;;;;5524:36:10;5508:52;;;5520:1;5508:52;-1:-1:-1;;;;;5501:59:10;;3709:1858;-1:-1:-1;;;;;;3709:1858:10:o;1329:122:43:-;1420:23;1432:2;1436:6;1420:11;:23::i;1459:132::-;1555:28;1567:7;1576:6;1555:11;:28::i;7834:380:10:-;-1:-1:-1;;;;;2318:19:10;;;7918:23;2318:19;;;:10;:19;;;;;;;;;;3506:18:7;;;;;;;8031:21:10;;;;:33;;;;;;;;;;;8080:54;;2318:19;;;;;3506:18:7;;8031:33:10;;2318:19;;;8080:54;;7918:23;8080:54;8145:62;8162:15;8179:9;8190:16;8145;:62::i;11168:187:33:-;11224:6;11259:16;11250:25;;;11242:76;;;;-1:-1:-1;;;11242:76:33;;15566:2:60;11242:76:33;;;15548:21:60;15605:2;15585:18;;;15578:30;15644:34;15624:18;;;15617:62;15715:8;15695:18;;;15688:36;15741:19;;11242:76:33;15364:402:60;9555:156:34;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;4348:165:28:-;4425:7;4451:55;4473:20;:18;:20::i;:::-;4495:10;8470:57:27;;18070:66:60;8470:57:27;;;18058:79:60;18153:11;;;18146:27;;;18189:12;;;18182:28;;;8434:7:27;;18226:12:60;;8470:57:27;;;;;;;;;;;;8460:68;;;;;;8453:75;;8341:194;;;;;6696:270;6819:7;6839:17;6858:18;6880:25;6891:4;6897:1;6900;6903;6880:10;:25::i;:::-;6838:67;;;;6915:18;6927:5;6915:11;:18::i;:::-;-1:-1:-1;6950:9:27;6696:270;-1:-1:-1;;;;;6696:270:27:o;3123:203:13:-;-1:-1:-1;;;;;3243:14:13;;3183:15;3243:14;;;:7;:14;;;;;918::25;;1050:1;1032:19;;;;918:14;3302:17:13;3200:126;3123:203;;;:::o;9098:115:34:-;9161:7;9187:19;9195:3;4537:18;;4455:107;8853:716:10;9085:12;;9023:17;;;;;9136:8;;:59;;9166:29;9180:5;9187:7;9193:1;9187:3;:7;:::i;9166:29::-;9136:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9136:59:10;;;;;;;;9147:16;;;;;;;;;-1:-1:-1;9147:16:10;;;;;;;9136:59;9108:87;;9218:7;:13;;;-1:-1:-1;;;;;9206:25:10;;;9253:20;9256:9;9267:5;9253:2;:20;;:::i;:::-;9241:32;;9294:1;9288:3;:7;:44;;;;-1:-1:-1;9299:17:10;;:33;;9320:12;9299:33;9288:44;9284:279;;;9386:29;9405:9;9386:18;:29::i;:::-;9348;9362:5;9369:7;9375:1;9369:3;:7;:::i;9348:29::-;:67;;-1:-1:-1;;;;;9348:67:10;;;;;;;;;;;;;;;;9284:279;;;9446:5;9457:94;;;;;;;;9480:31;9498:12;9480:17;:31::i;:::-;9457:94;;;;;;9520:29;9539:9;9520:18;:29::i;:::-;-1:-1:-1;;;;;9457:94:10;;;;;;9446:106;;;;;;;-1:-1:-1;9446:106:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9284:279;9061:508;;8853:716;;;;;;:::o;2206:404:34:-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;1128:193:43;1270:43;1296:4;1302:2;1306:6;1270:25;:43::i;8220:627:10:-;8347:3;-1:-1:-1;;;;;8340:10:10;:3;-1:-1:-1;;;;;8340:10:10;;;:24;;;;;8363:1;8354:6;:10;8340:24;8336:505;;;-1:-1:-1;;;;;8384:17:10;;;8380:221;;-1:-1:-1;;;;;8479:17:10;;8422;8479;;;:12;:17;;;;;8422;;8462:54;;8498:9;8509:6;8462:16;:54::i;:::-;8421:95;;;;8560:3;-1:-1:-1;;;;;8539:47:10;;8565:9;8576;8539:47;;;;;;15945:25:60;;;16001:2;15986:18;;15979:34;15933:2;15918:18;;15771:248;8539:47:10;;;;;;;;8403:198;;8380:221;-1:-1:-1;;;;;8619:17:10;;;8615:216;;-1:-1:-1;;;;;8714:17:10;;8657;8714;;;:12;:17;;;;;8657;;8697:49;;8733:4;8739:6;8697:16;:49::i;:::-;8656:90;;;;8790:3;-1:-1:-1;;;;;8769:47:10;;8795:9;8806;8769:47;;;;;;15945:25:60;;;16001:2;15986:18;;15979:34;15933:2;15918:18;;15771:248;8769:47:10;;;;;;;;8638:193;;8220:627;;;:::o;3718:479:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:0;;;;;;;;;;-1:-1:-1;;;3844:336:0;;;;;;;:::i;7865:234::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7944:149;;;8018:5;7986:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7986:29:0;;;;;;;;;;:37;;-1:-1:-1;;7986:37:0;;;8042:40;719:10:24;;7986:12:0;;8042:40;;8018:5;8042:40;7865:234;;:::o;8615:156:34:-;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:34;;8711:7;:53::i;6280:1642:32:-;6328:7;6351:1;6356;6351:6;6347:45;;-1:-1:-1;6380:1:32;;6280:1642;-1:-1:-1;6280:1642:32:o;6347:45::-;7071:14;7105:1;7094:7;7099:1;7094:4;:7::i;:::-;:12;;7088:1;:19;;7071:36;;7566:1;7555:6;7551:1;:10;;;;;:::i;:::-;;7542:6;:19;7541:26;;7532:35;;7615:1;7604:6;7600:1;:10;;;;;:::i;:::-;;7591:6;:19;7590:26;;7581:35;;7664:1;7653:6;7649:1;:10;;;;;:::i;:::-;;7640:6;:19;7639:26;;7630:35;;7713:1;7702:6;7698:1;:10;;;;;:::i;:::-;;7689:6;:19;7688:26;;7679:35;;7762:1;7751:6;7747:1;:10;;;;;:::i;:::-;;7738:6;:19;7737:26;;7728:35;;7811:1;7800:6;7796:1;:10;;;;;:::i;:::-;;7787:6;:19;7786:26;;7777:35;;7860:1;7849:6;7845:1;:10;;;;;:::i;:::-;;7836:6;:19;7835:26;;7826:35;;7882:23;7886:6;7898;7894:1;:10;;;;;:::i;:::-;;7882:3;:23::i;805:153::-;867:7;940:11;950:1;941:5;;;940:11;:::i;:::-;930:21;;931:5;;;930:21;:::i;7079:190:10:-;7163:28;7175:7;7184:6;7163:11;:28::i;:::-;7202:60;7219:23;7244:9;7255:6;7202:16;:60::i;4904:118:34:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;5069:1494:27:-;5195:7;;6119:66;6106:79;;6102:161;;;-1:-1:-1;6217:1:27;;-1:-1:-1;6221:30:27;6201:51;;6102:161;6374:24;;;6357:14;6374:24;;;;;;;;;18476:25:60;;;18549:4;18537:17;;18517:18;;;18510:45;;;;18571:18;;;18564:34;;;18614:18;;;18607:34;;;6374:24:27;;18448:19:60;;6374:24:27;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6374:24:27;;-1:-1:-1;;6374:24:27;;;-1:-1:-1;;;;;;;6412:20:27;;6408:101;;6464:1;6468:29;6448:50;;;;;;;6408:101;6527:6;-1:-1:-1;6535:20:27;;-1:-1:-1;5069:1494:27;;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:27;;19043:2:60;788:34:27;;;19025:21:60;19082:2;19062:18;;;19055:30;19121:26;19101:18;;;19094:54;19165:18;;788:34:27;18841:348:60;730:345:27;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:27;;19396:2:60;903:41:27;;;19378:21:60;19435:2;19415:18;;;19408:30;19474:33;19454:18;;;19447:61;19525:18;;903:41:27;19194:355:60;839:236:27;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:27;;19756:2:60;1020:44:27;;;19738:21:60;19795:2;19775:18;;;19768:30;19834:34;19814:18;;;19807:62;19905:4;19885:18;;;19878:32;19927:19;;1020:44:27;19554:398:60;2102:149:26;2160:13;2192:52;-1:-1:-1;;;;;2204:22:26;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:26;;1613:47;;1670:15;:6;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1695;:6;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1725:9:26;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;1791:8;1800:5;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;;;;;;;;;;-1:-1:-1;1836:1:26;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:26;;1857:55;;;;-1:-1:-1;;;1857:55:26;;20782:2:60;1857:55:26;;;20764:21:60;;;20801:18;;;20794:30;20860:34;20840:18;;;20833:62;20912:18;;1857:55:26;20580:356:60;2778:1388:34;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:34;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;8383:983:32;8435:7;;8519:3;8510:12;;;:16;8506:99;;8556:3;8546:13;;;;8577;8506:99;8631:2;8622:11;;;:15;8618:96;;8667:2;8657:12;;;;8687;8618:96;8740:2;8731:11;;;:15;8727:96;;8776:2;8766:12;;;;8796;8727:96;8849:2;8840:11;;;:15;8836:96;;8885:2;8875:12;;;;8905;8836:96;8958:1;8949:10;;;:14;8945:93;;8993:1;8983:11;;;;9012;8945:93;9064:1;9055:10;;;:14;9051:93;;9099:1;9089:11;;;;9118;9051:93;9170:1;9161:10;;;:14;9157:93;;9205:1;9195:11;;;;9224;9157:93;9276:1;9267:10;;;:14;9263:64;;9311:1;9301:11;9353:6;8383:983;-1:-1:-1;;8383:983:32:o;588:104::-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:32;;588:104;-1:-1:-1;588:104:32:o;9422:659:7:-;-1:-1:-1;;;;;9505:21:7;;9497:67;;;;-1:-1:-1;;;9497:67:7;;21332:2:60;9497:67:7;;;21314:21:60;21371:2;21351:18;;;21344:30;21410:34;21390:18;;;21383:62;21481:3;21461:18;;;21454:31;21502:19;;9497:67:7;21130:397:60;9497:67:7;-1:-1:-1;;;;;9660:18:7;;9635:22;9660:18;;;;;;;;;;;9696:24;;;;9688:71;;;;-1:-1:-1;;;9688:71:7;;21734:2:60;9688:71:7;;;21716:21:60;21773:2;21753:18;;;21746:30;21812:34;21792:18;;;21785:62;21883:4;21863:18;;;21856:32;21905:19;;9688:71:7;21532:398:60;9688:71:7;-1:-1:-1;;;;;9793:18:7;;:9;:18;;;;;;;;;;;9814:23;;;9793:44;;9930:12;:22;;;;;;;9978:37;1859:25:60;;;9793:9:7;;:18;9978:37;;1832:18:60;9978:37:7;;;;;;;10026:48;10046:7;10063:1;10067:6;10026:19;:48::i;14:332:60:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:258;615:1;625:113;639:6;636:1;633:13;625:113;;;715:11;;;709:18;696:11;;;689:39;661:2;654:10;625:113;;;756:6;753:1;750:13;747:48;;;-1:-1:-1;;791:1:60;773:16;;766:27;543:258::o;806:442::-;955:2;944:9;937:21;918:4;987:6;981:13;1030:6;1025:2;1014:9;1010:18;1003:34;1046:66;1105:6;1100:2;1089:9;1085:18;1080:2;1072:6;1068:15;1046:66;:::i;:::-;1164:2;1152:15;-1:-1:-1;;1148:88:60;1133:104;;;;1239:2;1129:113;;806:442;-1:-1:-1;;806:442:60:o;1253:196::-;1321:20;;-1:-1:-1;;;;;1370:54:60;;1360:65;;1350:93;;1439:1;1436;1429:12;1350:93;1253:196;;;:::o;1454:254::-;1522:6;1530;1583:2;1571:9;1562:7;1558:23;1554:32;1551:52;;;1599:1;1596;1589:12;1551:52;1622:29;1641:9;1622:29;:::i;:::-;1612:39;1698:2;1683:18;;;;1670:32;;-1:-1:-1;;;1454:254:60:o;1895:328::-;1972:6;1980;1988;2041:2;2029:9;2020:7;2016:23;2012:32;2009:52;;;2057:1;2054;2047:12;2009:52;2080:29;2099:9;2080:29;:::i;:::-;2070:39;;2128:38;2162:2;2151:9;2147:18;2128:38;:::i;:::-;2118:48;;2213:2;2202:9;2198:18;2185:32;2175:42;;1895:328;;;;;:::o;2228:180::-;2287:6;2340:2;2328:9;2319:7;2315:23;2311:32;2308:52;;;2356:1;2353;2346:12;2308:52;-1:-1:-1;2379:23:60;;2228:180;-1:-1:-1;2228:180:60:o;2595:254::-;2663:6;2671;2724:2;2712:9;2703:7;2699:23;2695:32;2692:52;;;2740:1;2737;2730:12;2692:52;2776:9;2763:23;2753:33;;2805:38;2839:2;2828:9;2824:18;2805:38;:::i;:::-;2795:48;;2595:254;;;;;:::o;3228:186::-;3287:6;3340:2;3328:9;3319:7;3315:23;3311:32;3308:52;;;3356:1;3353;3346:12;3308:52;3379:29;3398:9;3379:29;:::i;4060:248::-;4128:6;4136;4189:2;4177:9;4168:7;4164:23;4160:32;4157:52;;;4205:1;4202;4195:12;4157:52;-1:-1:-1;;4228:23:60;;;4298:2;4283:18;;;4270:32;;-1:-1:-1;4060:248:60:o;4313:156::-;4379:20;;4439:4;4428:16;;4418:27;;4408:55;;4459:1;4456;4449:12;4474:531;4576:6;4584;4592;4600;4608;4616;4669:3;4657:9;4648:7;4644:23;4640:33;4637:53;;;4686:1;4683;4676:12;4637:53;4709:29;4728:9;4709:29;:::i;:::-;4699:39;;4785:2;4774:9;4770:18;4757:32;4747:42;;4836:2;4825:9;4821:18;4808:32;4798:42;;4859:36;4891:2;4880:9;4876:18;4859:36;:::i;:::-;4849:46;;4942:3;4931:9;4927:19;4914:33;4904:43;;4994:3;4983:9;4979:19;4966:33;4956:43;;4474:531;;;;;;;;:::o;5010:606::-;5121:6;5129;5137;5145;5153;5161;5169;5222:3;5210:9;5201:7;5197:23;5193:33;5190:53;;;5239:1;5236;5229:12;5190:53;5262:29;5281:9;5262:29;:::i;:::-;5252:39;;5310:38;5344:2;5333:9;5329:18;5310:38;:::i;:::-;5300:48;;5395:2;5384:9;5380:18;5367:32;5357:42;;5446:2;5435:9;5431:18;5418:32;5408:42;;5469:37;5501:3;5490:9;5486:19;5469:37;:::i;:::-;5459:47;;5553:3;5542:9;5538:19;5525:33;5515:43;;5605:3;5594:9;5590:19;5577:33;5567:43;;5010:606;;;;;;;;;;:::o;5621:260::-;5689:6;5697;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;5789:29;5808:9;5789:29;:::i;:::-;5779:39;;5837:38;5871:2;5860:9;5856:18;5837:38;:::i;5886:350::-;5953:6;5961;6014:2;6002:9;5993:7;5989:23;5985:32;5982:52;;;6030:1;6027;6020:12;5982:52;6053:29;6072:9;6053:29;:::i;:::-;6043:39;;6132:2;6121:9;6117:18;6104:32;6176:10;6169:5;6165:22;6158:5;6155:33;6145:61;;6202:1;6199;6192:12;6145:61;6225:5;6215:15;;;5886:350;;;;;:::o;6631:437::-;6710:1;6706:12;;;;6753;;;6774:61;;6828:4;6820:6;6816:17;6806:27;;6774:61;6881:2;6873:6;6870:14;6850:18;6847:38;6844:218;;-1:-1:-1;;;6915:1:60;6908:88;7019:4;7016:1;7009:15;7047:4;7044:1;7037:15;7489:184;-1:-1:-1;;;7538:1:60;7531:88;7638:4;7635:1;7628:15;7662:4;7659:1;7652:15;7678:128;7718:3;7749:1;7745:6;7742:1;7739:13;7736:39;;;7755:18;;:::i;:::-;-1:-1:-1;7791:9:60;;7678:128::o;8171:125::-;8211:4;8239:1;8236;8233:8;8230:34;;;8244:18;;:::i;:::-;-1:-1:-1;8281:9:60;;8171:125::o;8301:184::-;-1:-1:-1;;;8350:1:60;8343:88;8450:4;8447:1;8440:15;8474:4;8471:1;8464:15;16024:786;16435:25;16430:3;16423:38;16405:3;16490:6;16484:13;16506:62;16561:6;16556:2;16551:3;16547:12;16540:4;16532:6;16528:17;16506:62;:::i;:::-;16632:19;16627:2;16587:16;;;16619:11;;;16612:40;16677:13;;16699:63;16677:13;16748:2;16740:11;;16733:4;16721:17;;16699:63;:::i;:::-;16782:17;16801:2;16778:26;;16024:786;-1:-1:-1;;;;16024:786:60:o;17332:184::-;-1:-1:-1;;;17381:1:60;17374:88;17481:4;17478:1;17471:15;17505:4;17502:1;17495:15;17521:274;17561:1;17587;17577:189;;-1:-1:-1;;;17619:1:60;17612:88;17723:4;17720:1;17713:15;17751:4;17748:1;17741:15;17577:189;-1:-1:-1;17780:9:60;;17521:274::o;18652:184::-;-1:-1:-1;;;18701:1:60;18694:88;18801:4;18798:1;18791:15;18825:4;18822:1;18815:15;19957:228;19997:7;20123:1;-1:-1:-1;;20051:74:60;20048:1;20045:81;20040:1;20033:9;20026:17;20022:105;20019:131;;;20130:18;;:::i;:::-;-1:-1:-1;20170:9:60;;19957:228::o;20190:184::-;-1:-1:-1;;;20239:1:60;20232:88;20339:4;20336:1;20329:15;20363:4;20360:1;20353:15;20379:196;20418:3;20446:5;20436:39;;20455:18;;:::i;:::-;-1:-1:-1;;;20491:78:60;;20379:196::o;20941:184::-;-1:-1:-1;;;20990:1:60;20983:88;21090:4;21087:1;21080:15;21114:4;21111:1;21104:15"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DOMAIN_SEPARATOR()":"3644e515","MINTER_ROLE()":"d5391393","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","cap()":"355274ea","checkpoints(address,uint32)":"f1127ed8","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","getCurrentVotes(address)":"b4b5ea57","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getPriorVotes(address,uint256)":"782d6fe1","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getVotes(address)":"9ab24eb0","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","numCheckpoints(address)":"6fcfff45","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint96\",\"name\":\"cap_\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"preMint\",\"type\":\"uint96\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"pos\",\"type\":\"uint32\"}],\"name\":\"checkpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fromBlock\",\"type\":\"uint32\"},{\"internalType\":\"uint224\",\"name\":\"votes\",\"type\":\"uint224\"}],\"internalType\":\"struct ERC20Votes.Checkpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getCurrentVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"See {IERC20Permit-DOMAIN_SEPARATOR}.\"},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"checkpoints(address,uint32)\":{\"details\":\"Get the `pos`-th checkpoint for `account`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"delegate(address)\":{\"details\":\"Delegate votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`\"},\"delegates(address)\":{\"details\":\"Get the address `account` is currently delegating to.\"},\"getCurrentVotes(address)\":{\"details\":\"Comp version of the {getVotes} accessor, with `uint96` return type.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances. It is but NOT the sum of all the delegated votes! Requirements: - `blockNumber` must have been already mined\"},\"getPastVotes(address,uint256)\":{\"details\":\"Retrieve the number of votes for `account` at the end of `blockNumber`. Requirements: - `blockNumber` must have been already mined\"},\"getPriorVotes(address,uint256)\":{\"details\":\"Comp version of the {getPastVotes} accessor, with `uint96` return type.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getVotes(address)\":{\"details\":\"Gets the current votes balance for `account`\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"See {IERC20Permit-nonces}.\"},\"numCheckpoints(address)\":{\"details\":\"Get number of checkpoints for `account`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"See {IERC20Permit-permit}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-token/Png.sol\":\"Png\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x0d19410453cda55960a818e02bd7c18952a5c8fe7a3036e81f0d599f34487a7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c0f62d3d5bef22b5ca00cc3903e7de6152cb68d2d22401a463f373cda54c00f\",\"dweb:/ipfs/QmSfzjZux7LC7NW2f7rjCXTHeFMUCWERqDkhpCTBy7kxTe\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol\":{\"keccak256\":\"0x2f67d32babbb1619ed0cdd9c3833d76151316d6e1e7f2f30e67e15a1ed1fafc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5788b9ba7ea2967b5d5d9e3ffad5a5ffa66f1f186f615f9ae098b01452b1e80\",\"dweb:/ipfs/QmZXM98X2gXtHN9W9EW5tU9EBrCmi82zmSSuUCK6YsGMpc\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol\":{\"keccak256\":\"0x3e2cf78abe35170695b26fb9f820fe7bfeed607604f4d6c1261f811704c79f16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d677e79ed97d35fa1fa3df7b45df9de5947e0939bb7229bfb05bc00fef9ed45\",\"dweb:/ipfs/QmRiFfC3KJH6KX7hP5cdasrxvEVbB2Fy8UJDDbf2xNSax9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\":{\"keccak256\":\"0xd2dd6003a2dc02ab905fd405938322e510429d19ae6c07c2c683d70f13ab2f36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124567a127176d5c1dfc6776c0964b5e8c0ccfa87468b644f1175775f3c140c7\",\"dweb:/ipfs/QmYg33x4W2xC1frf1Btw2bAvs1zox4Eq7Eq9qMkj1FQKNV\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x948d8b2d18f38141ec78c5229d770d950ebc781ed3f44cc9e3ccbb9fded5846a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7311ac950ed2d81f3ccf1784a926efbfc82a86dcb5c98d41eb3792c0cac63a2f\",\"dweb:/ipfs/QmRRwCUHewkPmehx8QRYENFoWyLNx8UEZGULxWYUeSZdTS\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/pangolin-token/Png.sol\":{\"keccak256\":\"0x758d8b5c62d630b9231041c71a1e90731c789bda43b23f8b73e3ad3a2e64a1a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daedfe685beb5e9932dea741e84b61791bd022e8e754a818fce2ce0efe0b5b99\",\"dweb:/ipfs/QmUGodSkWVNmUws8uphw2gaj8Vo1U3b6ncDdtpwUxBxoMk\"]}},\"version\":1}"}},"contracts/pangolin-token/RegistrationCompliant.sol":{"RegistrationCompliant":{"abi":[{"inputs":[{"internalType":"address","name":"firstOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Registered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"COMPLIANCE_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMPLIANCE_MESSAGE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"destinationAddress","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"registrations","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11767":{"entryPoint":null,"id":11767,"parameterSlots":1,"returnSlots":0},"@_562":{"entryPoint":null,"id":562,"parameterSlots":0,"returnSlots":0},"@_756":{"entryPoint":null,"id":756,"parameterSlots":0,"returnSlots":0},"@_checkOwner_593":{"entryPoint":595,"id":593,"parameterSlots":0,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_650":{"entryPoint":146,"id":650,"parameterSlots":1,"returnSlots":0},"@log10_6690":{"entryPoint":689,"id":6690,"parameterSlots":1,"returnSlots":1},"@owner_579":{"entryPoint":null,"id":579,"parameterSlots":0,"returnSlots":1},"@toEthSignedMessageHash_5275":{"entryPoint":226,"id":5275,"parameterSlots":1,"returnSlots":1},"@toString_4818":{"entryPoint":431,"id":4818,"parameterSlots":1,"returnSlots":1},"@transferOwnership_630":{"entryPoint":300,"id":630,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":923,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1024,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":973,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1119,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2281:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:60","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:60"},"nodeType":"YulFunctionCall","src":"143:12:60"},"nodeType":"YulExpressionStatement","src":"143:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:60"},"nodeType":"YulFunctionCall","src":"112:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:60"},"nodeType":"YulFunctionCall","src":"108:32:60"},"nodeType":"YulIf","src":"105:52:60"},{"nodeType":"YulVariableDeclaration","src":"166:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:60"},"nodeType":"YulFunctionCall","src":"179:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:60"},"nodeType":"YulFunctionCall","src":"260:12:60"},"nodeType":"YulExpressionStatement","src":"260:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:60"},"nodeType":"YulFunctionCall","src":"239:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:60"},"nodeType":"YulFunctionCall","src":"235:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:60"},"nodeType":"YulFunctionCall","src":"224:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:60"},"nodeType":"YulFunctionCall","src":"214:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:60"},"nodeType":"YulFunctionCall","src":"207:50:60"},"nodeType":"YulIf","src":"204:70:60"},{"nodeType":"YulAssignment","src":"283:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:60"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:60","type":""}],"src":"14:290:60"},{"body":{"nodeType":"YulBlock","src":"362:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"372:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"381:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"376:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"441:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"466:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"471:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"462:3:60"},"nodeType":"YulFunctionCall","src":"462:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"485:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"490:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:60"},"nodeType":"YulFunctionCall","src":"481:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"475:5:60"},"nodeType":"YulFunctionCall","src":"475:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"455:6:60"},"nodeType":"YulFunctionCall","src":"455:39:60"},"nodeType":"YulExpressionStatement","src":"455:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"402:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"405:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"399:2:60"},"nodeType":"YulFunctionCall","src":"399:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"413:19:60","statements":[{"nodeType":"YulAssignment","src":"415:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"424:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"427:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"420:3:60"},"nodeType":"YulFunctionCall","src":"420:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"415:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"395:3:60","statements":[]},"src":"391:113:60"},{"body":{"nodeType":"YulBlock","src":"530:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"543:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"548:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"539:3:60"},"nodeType":"YulFunctionCall","src":"539:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"557:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"532:6:60"},"nodeType":"YulFunctionCall","src":"532:27:60"},"nodeType":"YulExpressionStatement","src":"532:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"519:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"522:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"516:2:60"},"nodeType":"YulFunctionCall","src":"516:13:60"},"nodeType":"YulIf","src":"513:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"340:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"345:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"350:6:60","type":""}],"src":"309:258:60"},{"body":{"nodeType":"YulBlock","src":"858:389:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"875:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"880:66:60","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"868:6:60"},"nodeType":"YulFunctionCall","src":"868:79:60"},"nodeType":"YulExpressionStatement","src":"868:79:60"},{"nodeType":"YulVariableDeclaration","src":"956:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"976:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"970:5:60"},"nodeType":"YulFunctionCall","src":"970:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"960:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1018:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1026:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1014:3:60"},"nodeType":"YulFunctionCall","src":"1014:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1037:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1042:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1033:3:60"},"nodeType":"YulFunctionCall","src":"1033:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"1047:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"992:21:60"},"nodeType":"YulFunctionCall","src":"992:62:60"},"nodeType":"YulExpressionStatement","src":"992:62:60"},{"nodeType":"YulVariableDeclaration","src":"1063:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1077:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"1082:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1073:3:60"},"nodeType":"YulFunctionCall","src":"1073:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1067:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1098:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1120:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1114:5:60"},"nodeType":"YulFunctionCall","src":"1114:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"1102:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1162:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1170:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1158:3:60"},"nodeType":"YulFunctionCall","src":"1158:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"1185:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1177:3:60"},"nodeType":"YulFunctionCall","src":"1177:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"1190:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1136:21:60"},"nodeType":"YulFunctionCall","src":"1136:63:60"},"nodeType":"YulExpressionStatement","src":"1136:63:60"},{"nodeType":"YulAssignment","src":"1208:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1223:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"1227:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1219:3:60"},"nodeType":"YulFunctionCall","src":"1219:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"1238:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1215:3:60"},"nodeType":"YulFunctionCall","src":"1215:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1208:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"826:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"831:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"839:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"850:3:60","type":""}],"src":"572:675:60"},{"body":{"nodeType":"YulBlock","src":"1426:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1443:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1454:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1436:6:60"},"nodeType":"YulFunctionCall","src":"1436:21:60"},"nodeType":"YulExpressionStatement","src":"1436:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1477:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1488:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1473:3:60"},"nodeType":"YulFunctionCall","src":"1473:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1493:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1466:6:60"},"nodeType":"YulFunctionCall","src":"1466:30:60"},"nodeType":"YulExpressionStatement","src":"1466:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1516:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1527:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1512:3:60"},"nodeType":"YulFunctionCall","src":"1512:18:60"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"1532:34:60","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1505:6:60"},"nodeType":"YulFunctionCall","src":"1505:62:60"},"nodeType":"YulExpressionStatement","src":"1505:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1587:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1598:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1583:3:60"},"nodeType":"YulFunctionCall","src":"1583:18:60"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"1603:8:60","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1576:6:60"},"nodeType":"YulFunctionCall","src":"1576:36:60"},"nodeType":"YulExpressionStatement","src":"1576:36:60"},{"nodeType":"YulAssignment","src":"1621:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1633:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1644:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1629:3:60"},"nodeType":"YulFunctionCall","src":"1629:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1621:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1403:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1417:4:60","type":""}],"src":"1252:402:60"},{"body":{"nodeType":"YulBlock","src":"1691:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1708:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1715:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1720:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1711:3:60"},"nodeType":"YulFunctionCall","src":"1711:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1701:6:60"},"nodeType":"YulFunctionCall","src":"1701:31:60"},"nodeType":"YulExpressionStatement","src":"1701:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1748:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1751:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1741:6:60"},"nodeType":"YulFunctionCall","src":"1741:15:60"},"nodeType":"YulExpressionStatement","src":"1741:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1772:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1775:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1765:6:60"},"nodeType":"YulFunctionCall","src":"1765:15:60"},"nodeType":"YulExpressionStatement","src":"1765:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1659:127:60"},{"body":{"nodeType":"YulBlock","src":"1823:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1840:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1847:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1852:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1843:3:60"},"nodeType":"YulFunctionCall","src":"1843:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1833:6:60"},"nodeType":"YulFunctionCall","src":"1833:31:60"},"nodeType":"YulExpressionStatement","src":"1833:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1880:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1873:6:60"},"nodeType":"YulFunctionCall","src":"1873:15:60"},"nodeType":"YulExpressionStatement","src":"1873:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1904:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1907:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1897:6:60"},"nodeType":"YulFunctionCall","src":"1897:15:60"},"nodeType":"YulExpressionStatement","src":"1897:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"1791:127:60"},{"body":{"nodeType":"YulBlock","src":"2097:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2114:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2125:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2107:6:60"},"nodeType":"YulFunctionCall","src":"2107:21:60"},"nodeType":"YulExpressionStatement","src":"2107:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2148:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2159:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2144:3:60"},"nodeType":"YulFunctionCall","src":"2144:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"2164:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2137:6:60"},"nodeType":"YulFunctionCall","src":"2137:30:60"},"nodeType":"YulExpressionStatement","src":"2137:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2187:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2198:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2183:3:60"},"nodeType":"YulFunctionCall","src":"2183:18:60"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"2203:34:60","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2176:6:60"},"nodeType":"YulFunctionCall","src":"2176:62:60"},"nodeType":"YulExpressionStatement","src":"2176:62:60"},{"nodeType":"YulAssignment","src":"2247:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2259:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2270:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2255:3:60"},"nodeType":"YulFunctionCall","src":"2255:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2247:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2074:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2088:4:60","type":""}],"src":"1923:356:60"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 26), length)\n        let _1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 26), length_1)\n        end := add(add(_1, length_1), 26)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b506040516200137a3803806200137a83398101604081905262000034916200039b565b6200003f3362000092565b6000805460ff60a01b1916905560408051610100810190915260cd8082526200007d9190620012ad6020830139620000e260201b620004851760201c565b6080526200008b816200012c565b5062000475565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620000fb8251620001af60201b620004c01760201c565b826040516020016200010f92919062000400565b604051602081830303815290604052805190602001209050919050565b6200013662000253565b6001600160a01b038116620001a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b620001ac8162000092565b50565b60606000620001c983620002b160201b6200057e1760201c565b60010190506000816001600160401b03811115620001eb57620001eb6200045f565b6040519080825280601f01601f19166020018201604052801562000216576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846200022057509392505050565b6000546001600160a01b03163314620002af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000198565b565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310620002fb577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831062000328576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106200034757662386f26fc10000830492506010015b6305f5e100831062000360576305f5e100830492506008015b61271083106200037557612710830492506004015b6064831062000388576064830492506002015b600a831062000395576001015b92915050565b600060208284031215620003ae57600080fd5b81516001600160a01b0381168114620003c657600080fd5b9392505050565b60005b83811015620003ea578181015183820152602001620003d0565b83811115620003fa576000848401525b50505050565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152600083516200043a81601a850160208801620003cd565b8351908301906200045381601a840160208801620003cd565b01601a01949350505050565b634e487b7160e01b600052604160045260246000fd5b608051610e16620004976000396000818160c801526102b30152610e166000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638456cb5911610076578063942e6bcf1161005b578063942e6bcf14610163578063cbaf349614610186578063f2fde38b1461019b57600080fd5b80638456cb59146101405780638da5cb5b1461014857600080fd5b80633f4ba83a116100a75780633f4ba83a146101125780635c975abb1461011a578063715018a61461013857600080fd5b806304b846c9146100c357806324b8fbf6146100fd575b600080fd5b6100ea7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61011061010b366004610b52565b6101ae565b005b6101106103a4565b600054600160a01b900460ff165b60405190151581526020016100f4565b6101106103b6565b6101106103c8565b6000546040516001600160a01b0390911681526020016100f4565b610128610171366004610bd5565b60016020526000908152604090205460ff1681565b61018e6103d8565b6040516100f49190610c27565b6101106101a9366004610bd5565b6103f5565b6101b6610661565b6001600160a01b0383166102115760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642064657374696e6174696f6e0000000000000000000000000060448201526064015b60405180910390fd5b3360009081526001602052604090205460ff16156102715760405162461bcd60e51b815260206004820152601260248201527f416c7265616479207265676973746572656400000000000000000000000000006044820152606401610208565b336001600160a01b03166102dd83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000939250506106bb9050565b6001600160a01b0316146103335760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610208565b33600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155516001600160a01b03861692917f0a31ee9d46a828884b81003c8498156ea6aa15b9b54bdd0ef0b533d9eba57e5591a3505050565b6103ac6106df565b6103b4610739565b565b6103be6106df565b6103b460006107a9565b6103d06106df565b6103b4610811565b60405180610100016040528060cd8152602001610d1460cd913981565b6103fd6106df565b6001600160a01b0381166104795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610208565b610482816107a9565b50565b600061049182516104c0565b826040516020016104a3929190610c5a565b604051602081830303815290604052805190602001209050919050565b606060006104cd8361057e565b600101905060008167ffffffffffffffff8111156104ed576104ed610cb5565b6040519080825280601f01601f191660200182016040528015610517576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461052157509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106105c7577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106105f3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061061157662386f26fc10000830492506010015b6305f5e1008310610629576305f5e100830492506008015b612710831061063d57612710830492506004015b6064831061064f576064830492506002015b600a831061065b576001015b92915050565b600054600160a01b900460ff16156103b45760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610208565b60008060006106ca858561086f565b915091506106d7816108b4565b509392505050565b6000546001600160a01b031633146103b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610208565b610741610a19565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610819610661565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861078c3390565b60008082516041036108a55760208301516040840151606085015160001a61089987828585610a72565b945094505050506108ad565b506000905060025b9250929050565b60008160048111156108c8576108c8610ce4565b036108d05750565b60018160048111156108e4576108e4610ce4565b036109315760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610208565b600281600481111561094557610945610ce4565b036109925760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610208565b60038160048111156109a6576109a6610ce4565b036104825760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610208565b600054600160a01b900460ff166103b45760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610208565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610aa95750600090506003610b2d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610afd573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610b2657600060019250925050610b2d565b9150600090505b94509492505050565b80356001600160a01b0381168114610b4d57600080fd5b919050565b600080600060408486031215610b6757600080fd5b610b7084610b36565b9250602084013567ffffffffffffffff80821115610b8d57600080fd5b818601915086601f830112610ba157600080fd5b813581811115610bb057600080fd5b876020828501011115610bc257600080fd5b6020830194508093505050509250925092565b600060208284031215610be757600080fd5b610bf082610b36565b9392505050565b60005b83811015610c12578181015183820152602001610bfa565b83811115610c21576000848401525b50505050565b6020815260008251806020840152610c46816040850160208701610bf7565b601f01601f19169190910160400192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a000000000000815260008351610c9281601a850160208801610bf7565b835190830190610ca981601a840160208801610bf7565b01601a01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfe4279207369676e696e672074686973207472616e73616374696f6e2c2049206865726562792061636b6e6f776c656467652074686174204920616d206e6f742061205553207265736964656e74206f7220636974697a656e2e2028436974697a656e73206f72207265736964656e7473206f662074686520556e6974656420537461746573206f6620416d657269636120617265206e6f7420616c6c6f77656420746f2074686520746f6b656e2061697264726f702064756520746f206170706c696361626c65206c61772e29a2646970667358221220a8e812de72d4b0b6e18426e6c5b53c43171572f4a43c969aa50961c2f913161264736f6c634300080f00334279207369676e696e672074686973207472616e73616374696f6e2c2049206865726562792061636b6e6f776c656467652074686174204920616d206e6f742061205553207265736964656e74206f7220636974697a656e2e2028436974697a656e73206f72207265736964656e7473206f662074686520556e6974656420537461746573206f6620416d657269636120617265206e6f7420616c6c6f77656420746f2074686520746f6b656e2061697264726f702064756520746f206170706c696361626c65206c61772e29","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x137A CODESIZE SUB DUP1 PUSH3 0x137A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x39B JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x92 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0xCD DUP1 DUP3 MSTORE PUSH3 0x7D SWAP2 SWAP1 PUSH3 0x12AD PUSH1 0x20 DUP4 ADD CODECOPY PUSH3 0xE2 PUSH1 0x20 SHL PUSH3 0x485 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x80 MSTORE PUSH3 0x8B DUP2 PUSH3 0x12C JUMP JUMPDEST POP PUSH3 0x475 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xFB DUP3 MLOAD PUSH3 0x1AF PUSH1 0x20 SHL PUSH3 0x4C0 OR PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x10F SWAP3 SWAP2 SWAP1 PUSH3 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x136 PUSH3 0x253 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x1A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x1AC DUP2 PUSH3 0x92 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH3 0x1C9 DUP4 PUSH3 0x2B1 PUSH1 0x20 SHL PUSH3 0x57E OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x1EB JUMPI PUSH3 0x1EB PUSH3 0x45F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH3 0x216 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH3 0x220 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x2AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x198 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH3 0x2FB JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH3 0x328 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH3 0x347 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH3 0x360 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH3 0x375 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH3 0x388 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH3 0x395 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3EA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x3D0 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x3FA JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH3 0x43A DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x3CD JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH3 0x453 DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x3CD JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xE16 PUSH3 0x497 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0xC8 ADD MSTORE PUSH2 0x2B3 ADD MSTORE PUSH2 0xE16 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xBE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8456CB59 GT PUSH2 0x76 JUMPI DUP1 PUSH4 0x942E6BCF GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x942E6BCF EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0xCBAF3496 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x148 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x112 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4B846C9 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x24B8FBF6 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEA PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0xB52 JUMP JUMPDEST PUSH2 0x1AE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x110 PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF4 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x3B6 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF4 JUMP JUMPDEST PUSH2 0x128 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x18E PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x1A9 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD5 JUMP JUMPDEST PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x211 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C69642064657374696E6174696F6E00000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x271 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416C726561647920726567697374657265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2DD DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH32 0x0 SWAP4 SWAP3 POP POP PUSH2 0x6BB SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x333 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964207369676E6174757265000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP3 SWAP2 PUSH32 0xA31EE9D46A828884B81003C8498156EA6AA15B9B54BDD0EF0B533D9EBA57E55 SWAP2 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3AC PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x3B4 PUSH2 0x739 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3BE PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x3B4 PUSH1 0x0 PUSH2 0x7A9 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x3B4 PUSH2 0x811 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xCD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD14 PUSH1 0xCD SWAP2 CODECOPY DUP2 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0x6DF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x479 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x208 JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x7A9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x491 DUP3 MLOAD PUSH2 0x4C0 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4A3 SWAP3 SWAP2 SWAP1 PUSH2 0xC5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x4CD DUP4 PUSH2 0x57E JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4ED JUMPI PUSH2 0x4ED PUSH2 0xCB5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x517 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x521 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x5C7 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x5F3 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x611 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x629 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x63D JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x64F JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x65B JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x6CA DUP6 DUP6 PUSH2 0x86F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x6D7 DUP2 PUSH2 0x8B4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH2 0x741 PUSH2 0xA19 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x819 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x78C CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0x8A5 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x899 DUP8 DUP3 DUP6 DUP6 PUSH2 0xA72 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x8AD JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH2 0x8C8 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x8D0 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x8E4 JUMPI PUSH2 0x8E4 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x931 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x945 JUMPI PUSH2 0x945 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x992 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x9A6 JUMPI PUSH2 0x9A6 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x482 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0xAA9 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0xB2D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAFD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB26 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0xB2D JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB70 DUP5 PUSH2 0xB36 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xBC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF0 DUP3 PUSH2 0xB36 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC12 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xBFA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xC21 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xC46 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xC92 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xBF7 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xCA9 DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xBF7 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID TIMESTAMP PUSH26 0x207369676E696E672074686973207472616E73616374696F6E2C KECCAK256 0x49 KECCAK256 PUSH9 0x65726562792061636B PUSH15 0x6F776C656467652074686174204920 PUSH2 0x6D20 PUSH15 0x6F742061205553207265736964656E PUSH21 0x206F7220636974697A656E2E2028436974697A656E PUSH20 0x206F72207265736964656E7473206F6620746865 KECCAK256 SSTORE PUSH15 0x6974656420537461746573206F6620 COINBASE PUSH14 0x657269636120617265206E6F7420 PUSH2 0x6C6C PUSH16 0x77656420746F2074686520746F6B656E KECCAK256 PUSH2 0x6972 PUSH5 0x726F702064 PUSH22 0x6520746F206170706C696361626C65206C61772E29A2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0xE8 SLT 0xDE PUSH19 0xD4B0B6E18426E6C5B53C43171572F4A43C969A 0xA5 MULMOD PUSH2 0xC2F9 SGT AND SLT PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER TIMESTAMP PUSH26 0x207369676E696E672074686973207472616E73616374696F6E2C KECCAK256 0x49 KECCAK256 PUSH9 0x65726562792061636B PUSH15 0x6F776C656467652074686174204920 PUSH2 0x6D20 PUSH15 0x6F742061205553207265736964656E PUSH21 0x206F7220636974697A656E2E2028436974697A656E PUSH20 0x206F72207265736964656E7473206F6620746865 KECCAK256 SSTORE PUSH15 0x6974656420537461746573206F6620 COINBASE PUSH14 0x657269636120617265206E6F7420 PUSH2 0x6C6C PUSH16 0x77656420746F2074686520746F6B656E KECCAK256 PUSH2 0x6972 PUSH5 0x726F702064 PUSH22 0x6520746F206170706C696361626C65206C61772E2900 ","sourceMap":"237:1324:44:-:0;;;784:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:24;936:18:4;:32::i;:::-;1006:5:6;996:15;;-1:-1:-1;;;;996:15:6;;;851:18:44;;;996:15:6;851:18:44;;;;;;;;;845:50;;851:18;;;;;;845:48;;;;;:50;;:::i;:::-;827:68;;906:29;924:10;906:17;:29::i;:::-;784:159;237:1324;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;7806:196:27:-;7877:7;7964:26;7981:1;:8;7964:16;;;;;:26;;:::i;:::-;7992:1;7913:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7903:92;;;;;;7896:99;;7806:196;;;:::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;1454:2:60;2161:73:4::1;::::0;::::1;1436:21:60::0;1493:2;1473:18;;;1466:30;1532:34;1512:18;;;1505:62;-1:-1:-1;;;1583:18:60;;;1576:36;1629:19;;2161:73:4::1;;;;;;;;;2244:28;2263:8:::0;2244:18:::1;:28::i;:::-;2081:198:::0;:::o;415:696:26:-;471:13;520:14;537:17;548:5;537:10;;;;;:17;;:::i;:::-;557:1;537:21;520:38;;572:20;606:6;-1:-1:-1;;;;;595:18:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:26;-1:-1:-1;572:41:26;-1:-1:-1;733:28:26;;;749:2;733:28;788:280;-1:-1:-1;;819:5:26;-1:-1:-1;;;953:2:26;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:26;788:280;1032:21;-1:-1:-1;1088:6:26;415:696;-1:-1:-1;;;415:696:26:o;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:24;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;2125:2:60;1414:68:4;;;2107:21:60;;;2144:18;;;2137:30;2203:34;2183:18;;;2176:62;2255:18;;1414:68:4;1923:356:60;1414:68:4;1359:130::o;9889:890:32:-;9942:7;;10026:6;10017:15;;10013:99;;10061:6;10052:15;;;-1:-1:-1;10095:2:32;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:32;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:32;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:32;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:32;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:32;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10676:64;10766:6;9889:890;-1:-1:-1;;9889:890:32:o;14:290:60:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:60;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:60:o;309:258::-;381:1;391:113;405:6;402:1;399:13;391:113;;;481:11;;;475:18;462:11;;;455:39;427:2;420:10;391:113;;;522:6;519:1;516:13;513:48;;;557:1;548:6;543:3;539:16;532:27;513:48;;309:258;;;:::o;572:675::-;880:66;875:3;868:79;850:3;976:6;970:13;992:62;1047:6;1042:2;1037:3;1033:12;1026:4;1018:6;1014:17;992:62;:::i;:::-;1114:13;;1073:16;;;;1136:63;1114:13;1185:2;1177:11;;1170:4;1158:17;;1136:63;:::i;:::-;1219:17;1238:2;1215:26;;572:675;-1:-1:-1;;;;572:675:60:o;1659:127::-;1720:10;1715:3;1711:20;1708:1;1701:31;1751:4;1748:1;1741:15;1775:4;1772:1;1765:15;1923:356;237:1324:44;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@COMPLIANCE_HASH_11742":{"entryPoint":null,"id":11742,"parameterSlots":0,"returnSlots":0},"@COMPLIANCE_MESSAGE_11740":{"entryPoint":984,"id":11740,"parameterSlots":0,"returnSlots":0},"@_checkOwner_593":{"entryPoint":1759,"id":593,"parameterSlots":0,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_pause_820":{"entryPoint":2065,"id":820,"parameterSlots":0,"returnSlots":0},"@_requireNotPaused_793":{"entryPoint":1633,"id":793,"parameterSlots":0,"returnSlots":0},"@_requirePaused_804":{"entryPoint":2585,"id":804,"parameterSlots":0,"returnSlots":0},"@_throwError_4989":{"entryPoint":2228,"id":4989,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_650":{"entryPoint":1961,"id":650,"parameterSlots":1,"returnSlots":0},"@_unpause_836":{"entryPoint":1849,"id":836,"parameterSlots":0,"returnSlots":0},"@log10_6690":{"entryPoint":1406,"id":6690,"parameterSlots":1,"returnSlots":1},"@owner_579":{"entryPoint":null,"id":579,"parameterSlots":0,"returnSlots":1},"@pause_11829":{"entryPoint":968,"id":11829,"parameterSlots":0,"returnSlots":0},"@paused_781":{"entryPoint":null,"id":781,"parameterSlots":0,"returnSlots":1},"@recover_5062":{"entryPoint":1723,"id":5062,"parameterSlots":2,"returnSlots":1},"@register_11820":{"entryPoint":430,"id":11820,"parameterSlots":3,"returnSlots":0},"@registrations_11737":{"entryPoint":null,"id":11737,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_607":{"entryPoint":950,"id":607,"parameterSlots":0,"returnSlots":0},"@toEthSignedMessageHash_5275":{"entryPoint":1157,"id":5275,"parameterSlots":1,"returnSlots":1},"@toString_4818":{"entryPoint":1216,"id":4818,"parameterSlots":1,"returnSlots":1},"@transferOwnership_630":{"entryPoint":1013,"id":630,"parameterSlots":1,"returnSlots":0},"@tryRecover_5035":{"entryPoint":2159,"id":5035,"parameterSlots":2,"returnSlots":2},"@tryRecover_5203":{"entryPoint":2674,"id":5203,"parameterSlots":4,"returnSlots":2},"@unpause_11838":{"entryPoint":932,"id":11838,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":2870,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":2898,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3162,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3111,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":3063,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":3300,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3253,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7657:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:60","statements":[{"nodeType":"YulAssignment","src":"125:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:60"},"nodeType":"YulFunctionCall","src":"133:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:60"},"nodeType":"YulFunctionCall","src":"160:25:60"},"nodeType":"YulExpressionStatement","src":"160:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"245:147:60","statements":[{"nodeType":"YulAssignment","src":"255:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"277:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"264:12:60"},"nodeType":"YulFunctionCall","src":"264:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"255:5:60"}]},{"body":{"nodeType":"YulBlock","src":"370:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"379:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"382:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"372:6:60"},"nodeType":"YulFunctionCall","src":"372:12:60"},"nodeType":"YulExpressionStatement","src":"372:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"306:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"317:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"324:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"313:3:60"},"nodeType":"YulFunctionCall","src":"313:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"303:2:60"},"nodeType":"YulFunctionCall","src":"303:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"296:6:60"},"nodeType":"YulFunctionCall","src":"296:73:60"},"nodeType":"YulIf","src":"293:93:60"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"224:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"235:5:60","type":""}],"src":"196:196:60"},{"body":{"nodeType":"YulBlock","src":"503:559:60","statements":[{"body":{"nodeType":"YulBlock","src":"549:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"558:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"561:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"551:6:60"},"nodeType":"YulFunctionCall","src":"551:12:60"},"nodeType":"YulExpressionStatement","src":"551:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"524:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"533:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"520:3:60"},"nodeType":"YulFunctionCall","src":"520:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"516:3:60"},"nodeType":"YulFunctionCall","src":"516:32:60"},"nodeType":"YulIf","src":"513:52:60"},{"nodeType":"YulAssignment","src":"574:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"603:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"584:18:60"},"nodeType":"YulFunctionCall","src":"584:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"574:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"622:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"653:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"664:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"649:3:60"},"nodeType":"YulFunctionCall","src":"649:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"636:12:60"},"nodeType":"YulFunctionCall","src":"636:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"626:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"677:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"687:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"681:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"732:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"741:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"744:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"734:6:60"},"nodeType":"YulFunctionCall","src":"734:12:60"},"nodeType":"YulExpressionStatement","src":"734:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"720:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"728:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"717:2:60"},"nodeType":"YulFunctionCall","src":"717:14:60"},"nodeType":"YulIf","src":"714:34:60"},{"nodeType":"YulVariableDeclaration","src":"757:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"771:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"782:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"767:3:60"},"nodeType":"YulFunctionCall","src":"767:22:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"761:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"837:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"846:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"849:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"839:6:60"},"nodeType":"YulFunctionCall","src":"839:12:60"},"nodeType":"YulExpressionStatement","src":"839:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"816:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"820:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"812:3:60"},"nodeType":"YulFunctionCall","src":"812:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"827:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"808:3:60"},"nodeType":"YulFunctionCall","src":"808:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"801:6:60"},"nodeType":"YulFunctionCall","src":"801:35:60"},"nodeType":"YulIf","src":"798:55:60"},{"nodeType":"YulVariableDeclaration","src":"862:30:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"889:2:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"876:12:60"},"nodeType":"YulFunctionCall","src":"876:16:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"866:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"919:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"928:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"931:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"921:6:60"},"nodeType":"YulFunctionCall","src":"921:12:60"},"nodeType":"YulExpressionStatement","src":"921:12:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"907:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"915:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"904:2:60"},"nodeType":"YulFunctionCall","src":"904:14:60"},"nodeType":"YulIf","src":"901:34:60"},{"body":{"nodeType":"YulBlock","src":"985:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"994:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"997:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"987:6:60"},"nodeType":"YulFunctionCall","src":"987:12:60"},"nodeType":"YulExpressionStatement","src":"987:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"958:2:60"},{"name":"length","nodeType":"YulIdentifier","src":"962:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"954:3:60"},"nodeType":"YulFunctionCall","src":"954:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"971:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"950:3:60"},"nodeType":"YulFunctionCall","src":"950:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"976:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"947:2:60"},"nodeType":"YulFunctionCall","src":"947:37:60"},"nodeType":"YulIf","src":"944:57:60"},{"nodeType":"YulAssignment","src":"1010:21:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1024:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"1028:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1020:3:60"},"nodeType":"YulFunctionCall","src":"1020:11:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1010:6:60"}]},{"nodeType":"YulAssignment","src":"1040:16:60","value":{"name":"length","nodeType":"YulIdentifier","src":"1050:6:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1040:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"453:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"464:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"476:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"484:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"492:6:60","type":""}],"src":"397:665:60"},{"body":{"nodeType":"YulBlock","src":"1162:92:60","statements":[{"nodeType":"YulAssignment","src":"1172:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1184:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1195:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1180:3:60"},"nodeType":"YulFunctionCall","src":"1180:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1172:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1214:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1239:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1232:6:60"},"nodeType":"YulFunctionCall","src":"1232:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1225:6:60"},"nodeType":"YulFunctionCall","src":"1225:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1207:6:60"},"nodeType":"YulFunctionCall","src":"1207:41:60"},"nodeType":"YulExpressionStatement","src":"1207:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1131:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1142:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1153:4:60","type":""}],"src":"1067:187:60"},{"body":{"nodeType":"YulBlock","src":"1360:125:60","statements":[{"nodeType":"YulAssignment","src":"1370:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1382:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1393:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1378:3:60"},"nodeType":"YulFunctionCall","src":"1378:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1370:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1412:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1427:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1435:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1423:3:60"},"nodeType":"YulFunctionCall","src":"1423:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1405:6:60"},"nodeType":"YulFunctionCall","src":"1405:74:60"},"nodeType":"YulExpressionStatement","src":"1405:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1329:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1340:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1351:4:60","type":""}],"src":"1259:226:60"},{"body":{"nodeType":"YulBlock","src":"1560:116:60","statements":[{"body":{"nodeType":"YulBlock","src":"1606:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1615:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1618:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1608:6:60"},"nodeType":"YulFunctionCall","src":"1608:12:60"},"nodeType":"YulExpressionStatement","src":"1608:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1581:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1590:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1577:3:60"},"nodeType":"YulFunctionCall","src":"1577:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1602:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1573:3:60"},"nodeType":"YulFunctionCall","src":"1573:32:60"},"nodeType":"YulIf","src":"1570:52:60"},{"nodeType":"YulAssignment","src":"1631:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1660:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1641:18:60"},"nodeType":"YulFunctionCall","src":"1641:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1631:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1526:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1537:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1549:6:60","type":""}],"src":"1490:186:60"},{"body":{"nodeType":"YulBlock","src":"1734:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1744:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1753:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1748:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1813:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1838:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"1843:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1834:3:60"},"nodeType":"YulFunctionCall","src":"1834:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1857:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"1862:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1853:3:60"},"nodeType":"YulFunctionCall","src":"1853:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1847:5:60"},"nodeType":"YulFunctionCall","src":"1847:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1827:6:60"},"nodeType":"YulFunctionCall","src":"1827:39:60"},"nodeType":"YulExpressionStatement","src":"1827:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1774:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"1777:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1771:2:60"},"nodeType":"YulFunctionCall","src":"1771:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1785:19:60","statements":[{"nodeType":"YulAssignment","src":"1787:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1796:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"1799:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1792:3:60"},"nodeType":"YulFunctionCall","src":"1792:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1787:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1767:3:60","statements":[]},"src":"1763:113:60"},{"body":{"nodeType":"YulBlock","src":"1902:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1915:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"1920:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1911:3:60"},"nodeType":"YulFunctionCall","src":"1911:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"1929:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1904:6:60"},"nodeType":"YulFunctionCall","src":"1904:27:60"},"nodeType":"YulExpressionStatement","src":"1904:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1891:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"1894:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1888:2:60"},"nodeType":"YulFunctionCall","src":"1888:13:60"},"nodeType":"YulIf","src":"1885:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1712:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1717:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"1722:6:60","type":""}],"src":"1681:258:60"},{"body":{"nodeType":"YulBlock","src":"2065:321:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2082:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2075:6:60"},"nodeType":"YulFunctionCall","src":"2075:21:60"},"nodeType":"YulExpressionStatement","src":"2075:21:60"},{"nodeType":"YulVariableDeclaration","src":"2105:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2125:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2119:5:60"},"nodeType":"YulFunctionCall","src":"2119:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2109:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2152:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2148:3:60"},"nodeType":"YulFunctionCall","src":"2148:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"2168:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2141:6:60"},"nodeType":"YulFunctionCall","src":"2141:34:60"},"nodeType":"YulExpressionStatement","src":"2141:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2210:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2218:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2206:3:60"},"nodeType":"YulFunctionCall","src":"2206:15:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2227:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2238:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2223:3:60"},"nodeType":"YulFunctionCall","src":"2223:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"2243:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2184:21:60"},"nodeType":"YulFunctionCall","src":"2184:66:60"},"nodeType":"YulExpressionStatement","src":"2184:66:60"},{"nodeType":"YulAssignment","src":"2259:121:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2275:9:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2294:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2302:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2290:3:60"},"nodeType":"YulFunctionCall","src":"2290:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"2307:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2286:3:60"},"nodeType":"YulFunctionCall","src":"2286:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2271:3:60"},"nodeType":"YulFunctionCall","src":"2271:104:60"},{"kind":"number","nodeType":"YulLiteral","src":"2377:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2267:3:60"},"nodeType":"YulFunctionCall","src":"2267:113:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2259:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2034:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2045:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2056:4:60","type":""}],"src":"1944:442:60"},{"body":{"nodeType":"YulBlock","src":"2565:169:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2582:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2593:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2575:6:60"},"nodeType":"YulFunctionCall","src":"2575:21:60"},"nodeType":"YulExpressionStatement","src":"2575:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2616:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2627:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2612:3:60"},"nodeType":"YulFunctionCall","src":"2612:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"2632:2:60","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2605:6:60"},"nodeType":"YulFunctionCall","src":"2605:30:60"},"nodeType":"YulExpressionStatement","src":"2605:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2655:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2666:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2651:3:60"},"nodeType":"YulFunctionCall","src":"2651:18:60"},{"hexValue":"496e76616c69642064657374696e6174696f6e","kind":"string","nodeType":"YulLiteral","src":"2671:21:60","type":"","value":"Invalid destination"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2644:6:60"},"nodeType":"YulFunctionCall","src":"2644:49:60"},"nodeType":"YulExpressionStatement","src":"2644:49:60"},{"nodeType":"YulAssignment","src":"2702:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2714:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2710:3:60"},"nodeType":"YulFunctionCall","src":"2710:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2702:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2542:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2556:4:60","type":""}],"src":"2391:343:60"},{"body":{"nodeType":"YulBlock","src":"2913:168:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2930:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2941:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2923:6:60"},"nodeType":"YulFunctionCall","src":"2923:21:60"},"nodeType":"YulExpressionStatement","src":"2923:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2964:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2975:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2960:3:60"},"nodeType":"YulFunctionCall","src":"2960:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"2980:2:60","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2953:6:60"},"nodeType":"YulFunctionCall","src":"2953:30:60"},"nodeType":"YulExpressionStatement","src":"2953:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3003:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3014:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2999:3:60"},"nodeType":"YulFunctionCall","src":"2999:18:60"},{"hexValue":"416c72656164792072656769737465726564","kind":"string","nodeType":"YulLiteral","src":"3019:20:60","type":"","value":"Already registered"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2992:6:60"},"nodeType":"YulFunctionCall","src":"2992:48:60"},"nodeType":"YulExpressionStatement","src":"2992:48:60"},{"nodeType":"YulAssignment","src":"3049:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3061:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3072:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3057:3:60"},"nodeType":"YulFunctionCall","src":"3057:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3049:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2890:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2904:4:60","type":""}],"src":"2739:342:60"},{"body":{"nodeType":"YulBlock","src":"3260:167:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3277:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3288:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3270:6:60"},"nodeType":"YulFunctionCall","src":"3270:21:60"},"nodeType":"YulExpressionStatement","src":"3270:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3311:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3322:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3307:3:60"},"nodeType":"YulFunctionCall","src":"3307:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3327:2:60","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3300:6:60"},"nodeType":"YulFunctionCall","src":"3300:30:60"},"nodeType":"YulExpressionStatement","src":"3300:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3350:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3361:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3346:3:60"},"nodeType":"YulFunctionCall","src":"3346:18:60"},{"hexValue":"496e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"3366:19:60","type":"","value":"Invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3339:6:60"},"nodeType":"YulFunctionCall","src":"3339:47:60"},"nodeType":"YulExpressionStatement","src":"3339:47:60"},{"nodeType":"YulAssignment","src":"3395:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3407:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3418:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3403:3:60"},"nodeType":"YulFunctionCall","src":"3403:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3395:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3237:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3251:4:60","type":""}],"src":"3086:341:60"},{"body":{"nodeType":"YulBlock","src":"3606:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3623:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3634:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3616:6:60"},"nodeType":"YulFunctionCall","src":"3616:21:60"},"nodeType":"YulExpressionStatement","src":"3616:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3657:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3668:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3653:3:60"},"nodeType":"YulFunctionCall","src":"3653:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3673:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3646:6:60"},"nodeType":"YulFunctionCall","src":"3646:30:60"},"nodeType":"YulExpressionStatement","src":"3646:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3696:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3707:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3692:3:60"},"nodeType":"YulFunctionCall","src":"3692:18:60"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"3712:34:60","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3685:6:60"},"nodeType":"YulFunctionCall","src":"3685:62:60"},"nodeType":"YulExpressionStatement","src":"3685:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3767:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3778:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3763:3:60"},"nodeType":"YulFunctionCall","src":"3763:18:60"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"3783:8:60","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3756:6:60"},"nodeType":"YulFunctionCall","src":"3756:36:60"},"nodeType":"YulExpressionStatement","src":"3756:36:60"},{"nodeType":"YulAssignment","src":"3801:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3813:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3824:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3809:3:60"},"nodeType":"YulFunctionCall","src":"3809:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3801:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3583:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3597:4:60","type":""}],"src":"3432:402:60"},{"body":{"nodeType":"YulBlock","src":"4125:389:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4142:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"4147:66:60","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4135:6:60"},"nodeType":"YulFunctionCall","src":"4135:79:60"},"nodeType":"YulExpressionStatement","src":"4135:79:60"},{"nodeType":"YulVariableDeclaration","src":"4223:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4243:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4237:5:60"},"nodeType":"YulFunctionCall","src":"4237:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4227:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4285:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4293:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4281:3:60"},"nodeType":"YulFunctionCall","src":"4281:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4304:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"4309:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4300:3:60"},"nodeType":"YulFunctionCall","src":"4300:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"4314:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4259:21:60"},"nodeType":"YulFunctionCall","src":"4259:62:60"},"nodeType":"YulExpressionStatement","src":"4259:62:60"},{"nodeType":"YulVariableDeclaration","src":"4330:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4344:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"4349:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4340:3:60"},"nodeType":"YulFunctionCall","src":"4340:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4334:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4365:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4387:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4381:5:60"},"nodeType":"YulFunctionCall","src":"4381:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4369:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4429:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4437:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4425:3:60"},"nodeType":"YulFunctionCall","src":"4425:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4448:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"4452:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4444:3:60"},"nodeType":"YulFunctionCall","src":"4444:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"4457:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4403:21:60"},"nodeType":"YulFunctionCall","src":"4403:63:60"},"nodeType":"YulExpressionStatement","src":"4403:63:60"},{"nodeType":"YulAssignment","src":"4475:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4490:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"4494:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4486:3:60"},"nodeType":"YulFunctionCall","src":"4486:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"4505:2:60","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4482:3:60"},"nodeType":"YulFunctionCall","src":"4482:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4475:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4093:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4098:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4106:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4117:3:60","type":""}],"src":"3839:675:60"},{"body":{"nodeType":"YulBlock","src":"4551:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4568:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4571:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4561:6:60"},"nodeType":"YulFunctionCall","src":"4561:88:60"},"nodeType":"YulExpressionStatement","src":"4561:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4665:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4668:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4658:6:60"},"nodeType":"YulFunctionCall","src":"4658:15:60"},"nodeType":"YulExpressionStatement","src":"4658:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4689:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4692:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4682:6:60"},"nodeType":"YulFunctionCall","src":"4682:15:60"},"nodeType":"YulExpressionStatement","src":"4682:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"4519:184:60"},{"body":{"nodeType":"YulBlock","src":"4740:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4757:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4760:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4750:6:60"},"nodeType":"YulFunctionCall","src":"4750:88:60"},"nodeType":"YulExpressionStatement","src":"4750:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4854:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4857:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4847:6:60"},"nodeType":"YulFunctionCall","src":"4847:15:60"},"nodeType":"YulExpressionStatement","src":"4847:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4878:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4881:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4871:6:60"},"nodeType":"YulFunctionCall","src":"4871:15:60"},"nodeType":"YulExpressionStatement","src":"4871:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"4708:184:60"},{"body":{"nodeType":"YulBlock","src":"5071:166:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5088:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5099:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5081:6:60"},"nodeType":"YulFunctionCall","src":"5081:21:60"},"nodeType":"YulExpressionStatement","src":"5081:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5122:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5133:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5118:3:60"},"nodeType":"YulFunctionCall","src":"5118:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5138:2:60","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5111:6:60"},"nodeType":"YulFunctionCall","src":"5111:30:60"},"nodeType":"YulExpressionStatement","src":"5111:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5161:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5172:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5157:3:60"},"nodeType":"YulFunctionCall","src":"5157:18:60"},{"hexValue":"5061757361626c653a20706175736564","kind":"string","nodeType":"YulLiteral","src":"5177:18:60","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5150:6:60"},"nodeType":"YulFunctionCall","src":"5150:46:60"},"nodeType":"YulExpressionStatement","src":"5150:46:60"},{"nodeType":"YulAssignment","src":"5205:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5217:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5228:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5213:3:60"},"nodeType":"YulFunctionCall","src":"5213:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5205:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5048:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5062:4:60","type":""}],"src":"4897:340:60"},{"body":{"nodeType":"YulBlock","src":"5416:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5433:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5444:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5426:6:60"},"nodeType":"YulFunctionCall","src":"5426:21:60"},"nodeType":"YulExpressionStatement","src":"5426:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5467:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5478:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5463:3:60"},"nodeType":"YulFunctionCall","src":"5463:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5483:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5456:6:60"},"nodeType":"YulFunctionCall","src":"5456:30:60"},"nodeType":"YulExpressionStatement","src":"5456:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5506:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5517:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5502:3:60"},"nodeType":"YulFunctionCall","src":"5502:18:60"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"5522:34:60","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5495:6:60"},"nodeType":"YulFunctionCall","src":"5495:62:60"},"nodeType":"YulExpressionStatement","src":"5495:62:60"},{"nodeType":"YulAssignment","src":"5566:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5578:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5589:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5574:3:60"},"nodeType":"YulFunctionCall","src":"5574:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5566:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5393:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5407:4:60","type":""}],"src":"5242:356:60"},{"body":{"nodeType":"YulBlock","src":"5635:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5652:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5655:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5645:6:60"},"nodeType":"YulFunctionCall","src":"5645:88:60"},"nodeType":"YulExpressionStatement","src":"5645:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5749:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5752:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5742:6:60"},"nodeType":"YulFunctionCall","src":"5742:15:60"},"nodeType":"YulExpressionStatement","src":"5742:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5773:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5776:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5766:6:60"},"nodeType":"YulFunctionCall","src":"5766:15:60"},"nodeType":"YulExpressionStatement","src":"5766:15:60"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"5603:184:60"},{"body":{"nodeType":"YulBlock","src":"5966:174:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5983:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5994:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5976:6:60"},"nodeType":"YulFunctionCall","src":"5976:21:60"},"nodeType":"YulExpressionStatement","src":"5976:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6017:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6028:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6013:3:60"},"nodeType":"YulFunctionCall","src":"6013:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6033:2:60","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6006:6:60"},"nodeType":"YulFunctionCall","src":"6006:30:60"},"nodeType":"YulExpressionStatement","src":"6006:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6056:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6067:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6052:3:60"},"nodeType":"YulFunctionCall","src":"6052:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"6072:26:60","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6045:6:60"},"nodeType":"YulFunctionCall","src":"6045:54:60"},"nodeType":"YulExpressionStatement","src":"6045:54:60"},{"nodeType":"YulAssignment","src":"6108:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6120:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6131:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6116:3:60"},"nodeType":"YulFunctionCall","src":"6116:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6108:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5943:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5957:4:60","type":""}],"src":"5792:348:60"},{"body":{"nodeType":"YulBlock","src":"6319:181:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6336:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6347:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6329:6:60"},"nodeType":"YulFunctionCall","src":"6329:21:60"},"nodeType":"YulExpressionStatement","src":"6329:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6370:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6381:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6366:3:60"},"nodeType":"YulFunctionCall","src":"6366:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6386:2:60","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6359:6:60"},"nodeType":"YulFunctionCall","src":"6359:30:60"},"nodeType":"YulExpressionStatement","src":"6359:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6409:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6420:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6405:3:60"},"nodeType":"YulFunctionCall","src":"6405:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nodeType":"YulLiteral","src":"6425:33:60","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6398:6:60"},"nodeType":"YulFunctionCall","src":"6398:61:60"},"nodeType":"YulExpressionStatement","src":"6398:61:60"},{"nodeType":"YulAssignment","src":"6468:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6480:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6491:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6476:3:60"},"nodeType":"YulFunctionCall","src":"6476:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6468:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6296:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6310:4:60","type":""}],"src":"6145:355:60"},{"body":{"nodeType":"YulBlock","src":"6679:224:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6696:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6707:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6689:6:60"},"nodeType":"YulFunctionCall","src":"6689:21:60"},"nodeType":"YulExpressionStatement","src":"6689:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6730:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6741:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6726:3:60"},"nodeType":"YulFunctionCall","src":"6726:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6746:2:60","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6719:6:60"},"nodeType":"YulFunctionCall","src":"6719:30:60"},"nodeType":"YulExpressionStatement","src":"6719:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6769:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6780:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6765:3:60"},"nodeType":"YulFunctionCall","src":"6765:18:60"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nodeType":"YulLiteral","src":"6785:34:60","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6758:6:60"},"nodeType":"YulFunctionCall","src":"6758:62:60"},"nodeType":"YulExpressionStatement","src":"6758:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6840:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6851:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6836:3:60"},"nodeType":"YulFunctionCall","src":"6836:18:60"},{"hexValue":"7565","kind":"string","nodeType":"YulLiteral","src":"6856:4:60","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6829:6:60"},"nodeType":"YulFunctionCall","src":"6829:32:60"},"nodeType":"YulExpressionStatement","src":"6829:32:60"},{"nodeType":"YulAssignment","src":"6870:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6882:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6893:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6878:3:60"},"nodeType":"YulFunctionCall","src":"6878:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6870:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6656:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6670:4:60","type":""}],"src":"6505:398:60"},{"body":{"nodeType":"YulBlock","src":"7082:170:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7099:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7110:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7092:6:60"},"nodeType":"YulFunctionCall","src":"7092:21:60"},"nodeType":"YulExpressionStatement","src":"7092:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7133:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7144:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7129:3:60"},"nodeType":"YulFunctionCall","src":"7129:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7149:2:60","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7122:6:60"},"nodeType":"YulFunctionCall","src":"7122:30:60"},"nodeType":"YulExpressionStatement","src":"7122:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7172:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7183:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7168:3:60"},"nodeType":"YulFunctionCall","src":"7168:18:60"},{"hexValue":"5061757361626c653a206e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"7188:22:60","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7161:6:60"},"nodeType":"YulFunctionCall","src":"7161:50:60"},"nodeType":"YulExpressionStatement","src":"7161:50:60"},{"nodeType":"YulAssignment","src":"7220:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7232:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7243:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7228:3:60"},"nodeType":"YulFunctionCall","src":"7228:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7220:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7059:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7073:4:60","type":""}],"src":"6908:344:60"},{"body":{"nodeType":"YulBlock","src":"7438:217:60","statements":[{"nodeType":"YulAssignment","src":"7448:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7460:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7471:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7456:3:60"},"nodeType":"YulFunctionCall","src":"7456:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7448:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7491:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"7502:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7484:6:60"},"nodeType":"YulFunctionCall","src":"7484:25:60"},"nodeType":"YulExpressionStatement","src":"7484:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7529:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7540:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7525:3:60"},"nodeType":"YulFunctionCall","src":"7525:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7549:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7557:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7545:3:60"},"nodeType":"YulFunctionCall","src":"7545:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7518:6:60"},"nodeType":"YulFunctionCall","src":"7518:45:60"},"nodeType":"YulExpressionStatement","src":"7518:45:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7583:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7594:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7579:3:60"},"nodeType":"YulFunctionCall","src":"7579:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"7599:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7572:6:60"},"nodeType":"YulFunctionCall","src":"7572:34:60"},"nodeType":"YulExpressionStatement","src":"7572:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7626:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7637:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7622:3:60"},"nodeType":"YulFunctionCall","src":"7622:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"7642:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7615:6:60"},"nodeType":"YulFunctionCall","src":"7615:34:60"},"nodeType":"YulExpressionStatement","src":"7615:34:60"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7383:9:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7394:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7402:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7410:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7418:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7429:4:60","type":""}],"src":"7257:398:60"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_480a3d2cf1e4838d740f40eac57f23eb6facc0baaf1a65a7b61df6a5a00ed368__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"Invalid destination\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4935f8dc8deae1355305b992e890d0242809a3705c9c83131ed47acca0dd4fe2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 18)\n        mstore(add(headStart, 64), \"Already registered\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_string_memory_ptr_t_bytes_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 26), length)\n        let _1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 26), length_1)\n        end := add(add(_1, length_1), 26)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 16)\n        mstore(add(headStart, 64), \"Pausable: paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature length\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"ECDSA: invalid signature 's' val\")\n        mstore(add(headStart, 96), \"ue\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"Pausable: not paused\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"11742":[{"length":32,"start":200},{"length":32,"start":691}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100be5760003560e01c80638456cb5911610076578063942e6bcf1161005b578063942e6bcf14610163578063cbaf349614610186578063f2fde38b1461019b57600080fd5b80638456cb59146101405780638da5cb5b1461014857600080fd5b80633f4ba83a116100a75780633f4ba83a146101125780635c975abb1461011a578063715018a61461013857600080fd5b806304b846c9146100c357806324b8fbf6146100fd575b600080fd5b6100ea7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61011061010b366004610b52565b6101ae565b005b6101106103a4565b600054600160a01b900460ff165b60405190151581526020016100f4565b6101106103b6565b6101106103c8565b6000546040516001600160a01b0390911681526020016100f4565b610128610171366004610bd5565b60016020526000908152604090205460ff1681565b61018e6103d8565b6040516100f49190610c27565b6101106101a9366004610bd5565b6103f5565b6101b6610661565b6001600160a01b0383166102115760405162461bcd60e51b815260206004820152601360248201527f496e76616c69642064657374696e6174696f6e0000000000000000000000000060448201526064015b60405180910390fd5b3360009081526001602052604090205460ff16156102715760405162461bcd60e51b815260206004820152601260248201527f416c7265616479207265676973746572656400000000000000000000000000006044820152606401610208565b336001600160a01b03166102dd83838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000939250506106bb9050565b6001600160a01b0316146103335760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610208565b33600081815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155516001600160a01b03861692917f0a31ee9d46a828884b81003c8498156ea6aa15b9b54bdd0ef0b533d9eba57e5591a3505050565b6103ac6106df565b6103b4610739565b565b6103be6106df565b6103b460006107a9565b6103d06106df565b6103b4610811565b60405180610100016040528060cd8152602001610d1460cd913981565b6103fd6106df565b6001600160a01b0381166104795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610208565b610482816107a9565b50565b600061049182516104c0565b826040516020016104a3929190610c5a565b604051602081830303815290604052805190602001209050919050565b606060006104cd8361057e565b600101905060008167ffffffffffffffff8111156104ed576104ed610cb5565b6040519080825280601f01601f191660200182016040528015610517576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461052157509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106105c7577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106105f3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061061157662386f26fc10000830492506010015b6305f5e1008310610629576305f5e100830492506008015b612710831061063d57612710830492506004015b6064831061064f576064830492506002015b600a831061065b576001015b92915050565b600054600160a01b900460ff16156103b45760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610208565b60008060006106ca858561086f565b915091506106d7816108b4565b509392505050565b6000546001600160a01b031633146103b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610208565b610741610a19565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610819610661565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861078c3390565b60008082516041036108a55760208301516040840151606085015160001a61089987828585610a72565b945094505050506108ad565b506000905060025b9250929050565b60008160048111156108c8576108c8610ce4565b036108d05750565b60018160048111156108e4576108e4610ce4565b036109315760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610208565b600281600481111561094557610945610ce4565b036109925760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610208565b60038160048111156109a6576109a6610ce4565b036104825760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610208565b600054600160a01b900460ff166103b45760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610208565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610aa95750600090506003610b2d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610afd573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610b2657600060019250925050610b2d565b9150600090505b94509492505050565b80356001600160a01b0381168114610b4d57600080fd5b919050565b600080600060408486031215610b6757600080fd5b610b7084610b36565b9250602084013567ffffffffffffffff80821115610b8d57600080fd5b818601915086601f830112610ba157600080fd5b813581811115610bb057600080fd5b876020828501011115610bc257600080fd5b6020830194508093505050509250925092565b600060208284031215610be757600080fd5b610bf082610b36565b9392505050565b60005b83811015610c12578181015183820152602001610bfa565b83811115610c21576000848401525b50505050565b6020815260008251806020840152610c46816040850160208701610bf7565b601f01601f19169190910160400192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a000000000000815260008351610c9281601a850160208801610bf7565b835190830190610ca981601a840160208801610bf7565b01601a01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfe4279207369676e696e672074686973207472616e73616374696f6e2c2049206865726562792061636b6e6f776c656467652074686174204920616d206e6f742061205553207265736964656e74206f7220636974697a656e2e2028436974697a656e73206f72207265736964656e7473206f662074686520556e6974656420537461746573206f6620416d657269636120617265206e6f7420616c6c6f77656420746f2074686520746f6b656e2061697264726f702064756520746f206170706c696361626c65206c61772e29a2646970667358221220a8e812de72d4b0b6e18426e6c5b53c43171572f4a43c969aa50961c2f913161264736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xBE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8456CB59 GT PUSH2 0x76 JUMPI DUP1 PUSH4 0x942E6BCF GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x942E6BCF EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0xCBAF3496 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x140 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x148 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0xA7 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x112 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x11A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4B846C9 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x24B8FBF6 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEA PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0xB52 JUMP JUMPDEST PUSH2 0x1AE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x110 PUSH2 0x3A4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF4 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x3B6 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF4 JUMP JUMPDEST PUSH2 0x128 PUSH2 0x171 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x18E PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x110 PUSH2 0x1A9 CALLDATASIZE PUSH1 0x4 PUSH2 0xBD5 JUMP JUMPDEST PUSH2 0x3F5 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x211 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C69642064657374696E6174696F6E00000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x271 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416C726561647920726567697374657265640000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2DD DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH32 0x0 SWAP4 SWAP3 POP POP PUSH2 0x6BB SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x333 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E76616C6964207369676E6174757265000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP3 SWAP2 PUSH32 0xA31EE9D46A828884B81003C8498156EA6AA15B9B54BDD0EF0B533D9EBA57E55 SWAP2 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x3AC PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x3B4 PUSH2 0x739 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3BE PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x3B4 PUSH1 0x0 PUSH2 0x7A9 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0x6DF JUMP JUMPDEST PUSH2 0x3B4 PUSH2 0x811 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xCD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD14 PUSH1 0xCD SWAP2 CODECOPY DUP2 JUMP JUMPDEST PUSH2 0x3FD PUSH2 0x6DF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x479 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x208 JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x7A9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x491 DUP3 MLOAD PUSH2 0x4C0 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4A3 SWAP3 SWAP2 SWAP1 PUSH2 0xC5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x4CD DUP4 PUSH2 0x57E JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4ED JUMPI PUSH2 0x4ED PUSH2 0xCB5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x517 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x521 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x5C7 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x5F3 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x611 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x629 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x63D JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x64F JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x65B JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A2070617573656400000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x6CA DUP6 DUP6 PUSH2 0x86F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x6D7 DUP2 PUSH2 0x8B4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH2 0x741 PUSH2 0xA19 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x819 PUSH2 0x661 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x78C CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0x8A5 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x899 DUP8 DUP3 DUP6 DUP6 PUSH2 0xA72 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x8AD JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x8C8 JUMPI PUSH2 0x8C8 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x8D0 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x8E4 JUMPI PUSH2 0x8E4 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x931 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x945 JUMPI PUSH2 0x945 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x992 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x9A6 JUMPI PUSH2 0x9A6 PUSH2 0xCE4 JUMP JUMPDEST SUB PUSH2 0x482 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7565000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5061757361626C653A206E6F7420706175736564000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x208 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0xAA9 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0xB2D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAFD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB26 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0xB2D JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB70 DUP5 PUSH2 0xB36 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xB8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xBB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xBC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xBF0 DUP3 PUSH2 0xB36 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xC12 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xBFA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xC21 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xC46 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0xBF7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0xC92 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xBF7 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xCA9 DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xBF7 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID TIMESTAMP PUSH26 0x207369676E696E672074686973207472616E73616374696F6E2C KECCAK256 0x49 KECCAK256 PUSH9 0x65726562792061636B PUSH15 0x6F776C656467652074686174204920 PUSH2 0x6D20 PUSH15 0x6F742061205553207265736964656E PUSH21 0x206F7220636974697A656E2E2028436974697A656E PUSH20 0x206F72207265736964656E7473206F6620746865 KECCAK256 SSTORE PUSH15 0x6974656420537461746573206F6620 COINBASE PUSH14 0x657269636120617265206E6F7420 PUSH2 0x6C6C PUSH16 0x77656420746F2074686520746F6B656E KECCAK256 PUSH2 0x6972 PUSH5 0x726F702064 PUSH22 0x6520746F206170706C696361626C65206C61772E29A2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0xE8 SLT 0xDE PUSH19 0xD4B0B6E18426E6C5B53C43171572F4A43C969A 0xA5 MULMOD PUSH2 0xC2F9 SGT AND SLT PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"237:1324:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:40;;;;;;;;160:25:60;;;148:2;133:18;668:40:44;;;;;;;;951:461;;;;;;:::i;:::-;;:::i;:::-;;1491:67;;;:::i;1615:84:6:-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1615:84;;;1232:14:60;;1225:22;1207:41;;1195:2;1180:18;1615:84:6;1067:187:60;1831:101:4;;;:::i;1420:63:44:-;;;:::i;1201:85:4:-;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:4;;;1405:74:60;;1393:2;1378:18;1201:85:4;1259:226:60;356:45:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;410:251;;;:::i;:::-;;;;;;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;951:461:44:-;1239:19:6;:17;:19::i;:::-;-1:-1:-1;;;;;1090:32:44;::::1;1082:64;;;::::0;-1:-1:-1;;;1082:64:44;;2593:2:60;1082:64:44::1;::::0;::::1;2575:21:60::0;2632:2;2612:18;;;2605:30;2671:21;2651:18;;;2644:49;2710:18;;1082:64:44::1;;;;;;;;;1180:10;1166:25;::::0;;;:13:::1;:25;::::0;;;;;::::1;;1165:26;1157:57;;;::::0;-1:-1:-1;;;1157:57:44;;2941:2:60;1157:57:44::1;::::0;::::1;2923:21:60::0;2980:2;2960:18;;;2953:30;3019:20;2999:18;;;2992:48;3057:18;;1157:57:44::1;2739:342:60::0;1157:57:44::1;1271:10;-1:-1:-1::0;;;;;1233:48:44::1;:34;1257:9;;1233:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;1233:15:44::1;::::0;:34;-1:-1:-1;;1233:23:44::1;:34:::0;-1:-1:-1;1233:34:44:i:1;:::-;-1:-1:-1::0;;;;;1233:48:44::1;;1225:78;;;::::0;-1:-1:-1;;;1225:78:44;;3288:2:60;1225:78:44::1;::::0;::::1;3270:21:60::0;3327:2;3307:18;;;3300:30;3366:19;3346:18;;;3339:47;3403:18;;1225:78:44::1;3086:341:60::0;1225:78:44::1;1328:10;1314:25;::::0;;;1342:4:::1;1314:25;::::0;;;;;;;:32;;;::::1;::::0;;::::1;::::0;;;1362:42;-1:-1:-1;;;;;1362:42:44;::::1;::::0;1328:10;1362:42:::1;::::0;::::1;951:461:::0;;;:::o;1491:67::-;1094:13:4;:11;:13::i;:::-;1540:10:44::1;:8;:10::i;:::-;1491:67::o:0;1831:101:4:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;1420:63:44:-:0;1094:13:4;:11;:13::i;:::-;1467:8:44::1;:6;:8::i;410:251::-:0;;;;;;;;;;;;;;;;;;;:::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;3634:2:60;2161:73:4::1;::::0;::::1;3616:21:60::0;3673:2;3653:18;;;3646:30;3712:34;3692:18;;;3685:62;3783:8;3763:18;;;3756:36;3809:19;;2161:73:4::1;3432:402:60::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;7806:196:27:-;7877:7;7964:26;7981:1;:8;7964:16;:26::i;:::-;7992:1;7913:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7903:92;;;;;;7896:99;;7806:196;;;:::o;415:696:26:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:26;-1:-1:-1;572:41:26;-1:-1:-1;733:28:26;;;749:2;733:28;788:280;819:5;;958:8;953:2;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:26;788:280;1032:21;-1:-1:-1;1088:6:26;415:696;-1:-1:-1;;;415:696:26:o;9889:890:32:-;9942:7;;10026:6;10017:15;;10013:99;;10061:6;10052:15;;;-1:-1:-1;10095:2:32;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:32;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:32;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:32;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:32;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:32;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10676:64;10766:6;9889:890;-1:-1:-1;;9889:890:32:o;1767:106:6:-;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:6;;5099:2:60;1828:38:6;;;5081:21:60;5138:2;5118:18;;;5111:30;5177:18;5157;;;5150:46;5213:18;;1828:38:6;4897:340:60;3661:227:27;3739:7;3759:17;3778:18;3800:27;3811:4;3817:9;3800:10;:27::i;:::-;3758:69;;;;3837:18;3849:5;3837:11;:18::i;:::-;-1:-1:-1;3872:9:27;3661:227;-1:-1:-1;;;3661:227:27:o;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:24;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;5444:2:60;1414:68:4;;;5426:21:60;;;5463:18;;;5456:30;5522:34;5502:18;;;5495:62;5574:18;;1414:68:4;5242:356:60;2433:117:6;1486:16;:14;:16::i;:::-;2501:5:::1;2491:15:::0;;;::::1;::::0;;2521:22:::1;719:10:24::0;2530:12:6::1;2521:22;::::0;-1:-1:-1;;;;;1423:55:60;;;1405:74;;1393:2;1378:18;2521:22:6::1;;;;;;;2433:117::o:0;:187:4:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2186:115:6:-;1239:19;:17;:19::i;:::-;2245:7:::1;:14:::0;;;::::1;-1:-1:-1::0;;;2245:14:6::1;::::0;;2274:20:::1;2281:12;719:10:24::0;;640:96;2145:730:27;2226:7;2235:12;2263:9;:16;2283:2;2263:22;2259:610;;2599:4;2584:20;;2578:27;2648:4;2633:20;;2627:27;2705:4;2690:20;;2684:27;2301:9;2676:36;2746:25;2757:4;2676:36;2578:27;2627;2746:10;:25::i;:::-;2739:32;;;;;;;;;2259:610;-1:-1:-1;2818:1:27;;-1:-1:-1;2822:35:27;2259:610;2145:730;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:27;;5994:2:60;788:34:27;;;5976:21:60;6033:2;6013:18;;;6006:30;6072:26;6052:18;;;6045:54;6116:18;;788:34:27;5792:348:60;730:345:27;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:27;;6347:2:60;903:41:27;;;6329:21:60;6386:2;6366:18;;;6359:30;6425:33;6405:18;;;6398:61;6476:18;;903:41:27;6145:355:60;839:236:27;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:27;;6707:2:60;1020:44:27;;;6689:21:60;6746:2;6726:18;;;6719:30;6785:34;6765:18;;;6758:62;6856:4;6836:18;;;6829:32;6878:19;;1020:44:27;6505:398:60;1945:106:6;1662:4;1685:7;-1:-1:-1;;;1685:7:6;;;;2003:41;;;;-1:-1:-1;;;2003:41:6;;7110:2:60;2003:41:6;;;7092:21:60;7149:2;7129:18;;;7122:30;7188:22;7168:18;;;7161:50;7228:18;;2003:41:6;6908:344:60;5069:1494:27;5195:7;;6119:66;6106:79;;6102:161;;;-1:-1:-1;6217:1:27;;-1:-1:-1;6221:30:27;6201:51;;6102:161;6374:24;;;6357:14;6374:24;;;;;;;;;7484:25:60;;;7557:4;7545:17;;7525:18;;;7518:45;;;;7579:18;;;7572:34;;;7622:18;;;7615:34;;;6374:24:27;;7456:19:60;;6374:24:27;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6374:24:27;;-1:-1:-1;;6374:24:27;;;-1:-1:-1;;;;;;;6412:20:27;;6408:101;;6464:1;6468:29;6448:50;;;;;;;6408:101;6527:6;-1:-1:-1;6535:20:27;;-1:-1:-1;5069:1494:27;;;;;;;;:::o;196:196:60:-;264:20;;-1:-1:-1;;;;;313:54:60;;303:65;;293:93;;382:1;379;372:12;293:93;196:196;;;:::o;397:665::-;476:6;484;492;545:2;533:9;524:7;520:23;516:32;513:52;;;561:1;558;551:12;513:52;584:29;603:9;584:29;:::i;:::-;574:39;;664:2;653:9;649:18;636:32;687:18;728:2;720:6;717:14;714:34;;;744:1;741;734:12;714:34;782:6;771:9;767:22;757:32;;827:7;820:4;816:2;812:13;808:27;798:55;;849:1;846;839:12;798:55;889:2;876:16;915:2;907:6;904:14;901:34;;;931:1;928;921:12;901:34;976:7;971:2;962:6;958:2;954:15;950:24;947:37;944:57;;;997:1;994;987:12;944:57;1028:2;1024;1020:11;1010:21;;1050:6;1040:16;;;;;397:665;;;;;:::o;1490:186::-;1549:6;1602:2;1590:9;1581:7;1577:23;1573:32;1570:52;;;1618:1;1615;1608:12;1570:52;1641:29;1660:9;1641:29;:::i;:::-;1631:39;1490:186;-1:-1:-1;;;1490:186:60:o;1681:258::-;1753:1;1763:113;1777:6;1774:1;1771:13;1763:113;;;1853:11;;;1847:18;1834:11;;;1827:39;1799:2;1792:10;1763:113;;;1894:6;1891:1;1888:13;1885:48;;;1929:1;1920:6;1915:3;1911:16;1904:27;1885:48;;1681:258;;;:::o;1944:442::-;2093:2;2082:9;2075:21;2056:4;2125:6;2119:13;2168:6;2163:2;2152:9;2148:18;2141:34;2184:66;2243:6;2238:2;2227:9;2223:18;2218:2;2210:6;2206:15;2184:66;:::i;:::-;2302:2;2290:15;-1:-1:-1;;2286:88:60;2271:104;;;;2377:2;2267:113;;1944:442;-1:-1:-1;;1944:442:60:o;3839:675::-;4147:66;4142:3;4135:79;4117:3;4243:6;4237:13;4259:62;4314:6;4309:2;4304:3;4300:12;4293:4;4285:6;4281:17;4259:62;:::i;:::-;4381:13;;4340:16;;;;4403:63;4381:13;4452:2;4444:11;;4437:4;4425:17;;4403:63;:::i;:::-;4486:17;4505:2;4482:26;;3839:675;-1:-1:-1;;;;3839:675:60:o;4519:184::-;4571:77;4568:1;4561:88;4668:4;4665:1;4658:15;4692:4;4689:1;4682:15;5603:184;5655:77;5652:1;5645:88;5752:4;5749:1;5742:15;5776:4;5773:1;5766:15"},"methodIdentifiers":{"COMPLIANCE_HASH()":"04b846c9","COMPLIANCE_MESSAGE()":"cbaf3496","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","register(address,bytes)":"24b8fbf6","registrations(address)":"942e6bcf","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"firstOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COMPLIANCE_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPLIANCE_MESSAGE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registrations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pangolin-token/RegistrationCompliant.sol\":\"RegistrationCompliant\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xda898fa084aa1ddfdb346e6a40459e00a59d87071cce7c315a46d648dd71d0ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce501a941f4aa1555c04dabb5e07992503bb6a9b32ff8f7cdcefdb4a742210cb\",\"dweb:/ipfs/QmeScPrUpdrGYs9BytV3Z5ZWJcBXtuAgCW4BLHua4xFUxx\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/pangolin-token/RegistrationCompliant.sol\":{\"keccak256\":\"0x43968760e7eafc8488c50704478b3287c31637a51461b3568cb3542349efd893\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94d47171fe97c9887a04f3571503bc384d10614093deb8954120f249d9ee0ca7\",\"dweb:/ipfs/QmXdFT9S4pyZT1t3mAs2u4BujqcsKhy1VzPLncWD6AB2ov\"]}},\"version\":1}"}},"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol":{"EmissionDiversionFromPangoChefToPangolinStakingPositions":{"abi":[{"inputs":[{"internalType":"address","name":"newPangoChef","type":"address"},{"internalType":"address","name":"newStakingPositions","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"claimAndAddReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pangoChef","outputs":[{"internalType":"contract IPangoChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pangolinStakingPositions","outputs":[{"internalType":"contract IPangoChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11961":{"entryPoint":null,"id":11961,"parameterSlots":2,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":557,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":636,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":585,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":670,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_52eb8021f26f0b4451490d9507ae7a04cea9a9475edfdedbe0524e25cea77edd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1954:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:60","statements":[{"nodeType":"YulAssignment","src":"84:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:60"},"nodeType":"YulFunctionCall","src":"93:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:60"}]},{"body":{"nodeType":"YulBlock","src":"169:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:60"},"nodeType":"YulFunctionCall","src":"171:12:60"},"nodeType":"YulExpressionStatement","src":"171:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:60"},"nodeType":"YulFunctionCall","src":"150:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:60"},"nodeType":"YulFunctionCall","src":"146:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:60"},"nodeType":"YulFunctionCall","src":"135:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:60"},"nodeType":"YulFunctionCall","src":"125:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:60"},"nodeType":"YulFunctionCall","src":"118:50:60"},"nodeType":"YulIf","src":"115:70:60"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"294:195:60","statements":[{"body":{"nodeType":"YulBlock","src":"340:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"349:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"352:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"342:6:60"},"nodeType":"YulFunctionCall","src":"342:12:60"},"nodeType":"YulExpressionStatement","src":"342:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"315:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"324:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"311:3:60"},"nodeType":"YulFunctionCall","src":"311:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"336:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"307:3:60"},"nodeType":"YulFunctionCall","src":"307:32:60"},"nodeType":"YulIf","src":"304:52:60"},{"nodeType":"YulAssignment","src":"365:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"405:9:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"375:29:60"},"nodeType":"YulFunctionCall","src":"375:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"365:6:60"}]},{"nodeType":"YulAssignment","src":"424:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:60"},"nodeType":"YulFunctionCall","src":"464:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"434:29:60"},"nodeType":"YulFunctionCall","src":"434:49:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"424:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"252:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"263:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"275:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"283:6:60","type":""}],"src":"196:293:60"},{"body":{"nodeType":"YulBlock","src":"668:164:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"685:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"696:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"678:6:60"},"nodeType":"YulFunctionCall","src":"678:21:60"},"nodeType":"YulExpressionStatement","src":"678:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"719:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"730:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"715:3:60"},"nodeType":"YulFunctionCall","src":"715:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"735:2:60","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"708:6:60"},"nodeType":"YulFunctionCall","src":"708:30:60"},"nodeType":"YulExpressionStatement","src":"708:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"758:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"769:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"754:3:60"},"nodeType":"YulFunctionCall","src":"754:18:60"},{"hexValue":"656d70747920636f6e7472616374","kind":"string","nodeType":"YulLiteral","src":"774:16:60","type":"","value":"empty contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"747:6:60"},"nodeType":"YulFunctionCall","src":"747:44:60"},"nodeType":"YulExpressionStatement","src":"747:44:60"},{"nodeType":"YulAssignment","src":"800:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"812:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"823:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"808:3:60"},"nodeType":"YulFunctionCall","src":"808:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"800:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"645:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"659:4:60","type":""}],"src":"494:338:60"},{"body":{"nodeType":"YulBlock","src":"918:127:60","statements":[{"body":{"nodeType":"YulBlock","src":"964:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"973:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"976:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"966:6:60"},"nodeType":"YulFunctionCall","src":"966:12:60"},"nodeType":"YulExpressionStatement","src":"966:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"939:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"948:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"935:3:60"},"nodeType":"YulFunctionCall","src":"935:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"960:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"931:3:60"},"nodeType":"YulFunctionCall","src":"931:32:60"},"nodeType":"YulIf","src":"928:52:60"},{"nodeType":"YulAssignment","src":"989:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1029:9:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"999:29:60"},"nodeType":"YulFunctionCall","src":"999:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"989:6:60"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"884:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"895:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"907:6:60","type":""}],"src":"837:208:60"},{"body":{"nodeType":"YulBlock","src":"1224:167:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1241:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1252:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1234:6:60"},"nodeType":"YulFunctionCall","src":"1234:21:60"},"nodeType":"YulExpressionStatement","src":"1234:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1275:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1286:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1271:3:60"},"nodeType":"YulFunctionCall","src":"1271:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1291:2:60","type":"","value":"17"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1264:6:60"},"nodeType":"YulFunctionCall","src":"1264:30:60"},"nodeType":"YulExpressionStatement","src":"1264:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1314:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1325:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1310:3:60"},"nodeType":"YulFunctionCall","src":"1310:18:60"},{"hexValue":"696e76616c696420616464726573736573","kind":"string","nodeType":"YulLiteral","src":"1330:19:60","type":"","value":"invalid addresses"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1303:6:60"},"nodeType":"YulFunctionCall","src":"1303:47:60"},"nodeType":"YulExpressionStatement","src":"1303:47:60"},{"nodeType":"YulAssignment","src":"1359:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1371:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1382:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1367:3:60"},"nodeType":"YulFunctionCall","src":"1367:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1359:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_52eb8021f26f0b4451490d9507ae7a04cea9a9475edfdedbe0524e25cea77edd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1201:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1215:4:60","type":""}],"src":"1050:341:60"},{"body":{"nodeType":"YulBlock","src":"1525:145:60","statements":[{"nodeType":"YulAssignment","src":"1535:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1547:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1558:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1543:3:60"},"nodeType":"YulFunctionCall","src":"1543:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1535:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1577:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1592:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1608:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1613:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1604:3:60"},"nodeType":"YulFunctionCall","src":"1604:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"1617:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1600:3:60"},"nodeType":"YulFunctionCall","src":"1600:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1588:3:60"},"nodeType":"YulFunctionCall","src":"1588:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1570:6:60"},"nodeType":"YulFunctionCall","src":"1570:51:60"},"nodeType":"YulExpressionStatement","src":"1570:51:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1641:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1652:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1637:3:60"},"nodeType":"YulFunctionCall","src":"1637:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"1657:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1630:6:60"},"nodeType":"YulFunctionCall","src":"1630:34:60"},"nodeType":"YulExpressionStatement","src":"1630:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1486:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1497:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1505:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1516:4:60","type":""}],"src":"1396:274:60"},{"body":{"nodeType":"YulBlock","src":"1753:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"1799:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1808:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1811:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1801:6:60"},"nodeType":"YulFunctionCall","src":"1801:12:60"},"nodeType":"YulExpressionStatement","src":"1801:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1774:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1783:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1770:3:60"},"nodeType":"YulFunctionCall","src":"1770:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1795:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1766:3:60"},"nodeType":"YulFunctionCall","src":"1766:32:60"},"nodeType":"YulIf","src":"1763:52:60"},{"nodeType":"YulVariableDeclaration","src":"1824:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1843:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1837:5:60"},"nodeType":"YulFunctionCall","src":"1837:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1828:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1906:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1915:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1918:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1908:6:60"},"nodeType":"YulFunctionCall","src":"1908:12:60"},"nodeType":"YulExpressionStatement","src":"1908:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1875:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1896:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1889:6:60"},"nodeType":"YulFunctionCall","src":"1889:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1882:6:60"},"nodeType":"YulFunctionCall","src":"1882:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1872:2:60"},"nodeType":"YulFunctionCall","src":"1872:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1865:6:60"},"nodeType":"YulFunctionCall","src":"1865:40:60"},"nodeType":"YulIf","src":"1862:60:60"},{"nodeType":"YulAssignment","src":"1931:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1941:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1931:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1719:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1730:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1742:6:60","type":""}],"src":"1675:277:60"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"empty contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_52eb8021f26f0b4451490d9507ae7a04cea9a9475edfdedbe0524e25cea77edd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"invalid addresses\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405234801561001057600080fd5b5060405161094938038061094983398101604081905261002f91610249565b816001600160a01b03163b60000361007f5760405162461bcd60e51b815260206004820152600e60248201526d195b5c1d1e4818dbdb9d1c9858dd60921b60448201526064015b60405180910390fd5b6000826001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e3919061027c565b9050816001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610123573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610147919061027c565b6001600160a01b0316816001600160a01b03161461019b5760405162461bcd60e51b8152602060048201526011602482015270696e76616c69642061646472657373657360781b6044820152606401610076565b60405163095ea7b360e01b81526001600160a01b038381166004830152600019602483015282169063095ea7b3906044016020604051808303816000875af11580156101eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020f919061029e565b506001600160a01b0392831660805290821660a0521660c0526102c0565b80516001600160a01b038116811461024457600080fd5b919050565b6000806040838503121561025c57600080fd5b6102658361022d565b91506102736020840161022d565b90509250929050565b60006020828403121561028e57600080fd5b6102978261022d565b9392505050565b6000602082840312156102b057600080fd5b8151801515811461029757600080fd5b60805160a05160c05161063a61030f600039600060fd01526000818160d601528181610186015281816102a001528181610368015261053401526000818160710152610480015261063a6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063af958ab311610050578063af958ab3146100d1578063d1af0c7d146100f8578063dab4ec951461011f57600080fd5b80631870510b1461006c5780633c6b16ab146100bc575b600080fd5b6100937f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100cf6100ca3660046105a9565b610132565b005b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6100cf61012d3660046105a9565b610314565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156101e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020691906105c2565b610271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec490602401600060405180830381600087803b1580156102f957600080fd5b505af115801561030d573d6000803e3d6000fd5b5050505050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156103c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e891906105c2565b61044e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610268565b6040517f379607f5000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063379607f5906024016020604051808303816000875af11580156104de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050291906105eb565b6040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec490602401600060405180830381600087803b15801561058d57600080fd5b505af11580156105a1573d6000803e3d6000fd5b505050505050565b6000602082840312156105bb57600080fd5b5035919050565b6000602082840312156105d457600080fd5b815180151581146105e457600080fd5b9392505050565b6000602082840312156105fd57600080fd5b505191905056fea2646970667358221220c6de08dd937ff59cb270aeaf042679dcd3174b9e82f9d08eeed46c4fe92ab8cb64736f6c634300080f0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x949 CODESIZE SUB DUP1 PUSH2 0x949 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x249 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x195B5C1D1E4818DBDB9D1C9858DD PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD1AF0C7D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0x27C JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD1AF0C7D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x123 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x147 SWAP2 SWAP1 PUSH2 0x27C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x696E76616C696420616464726573736573 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x76 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 NOT PUSH1 0x24 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0x29E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x80 MSTORE SWAP1 DUP3 AND PUSH1 0xA0 MSTORE AND PUSH1 0xC0 MSTORE PUSH2 0x2C0 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x265 DUP4 PUSH2 0x22D JUMP JUMPDEST SWAP2 POP PUSH2 0x273 PUSH1 0x20 DUP5 ADD PUSH2 0x22D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x297 DUP3 PUSH2 0x22D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x63A PUSH2 0x30F PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0xFD ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH1 0xD6 ADD MSTORE DUP2 DUP2 PUSH2 0x186 ADD MSTORE DUP2 DUP2 PUSH2 0x2A0 ADD MSTORE DUP2 DUP2 PUSH2 0x368 ADD MSTORE PUSH2 0x534 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH1 0x71 ADD MSTORE PUSH2 0x480 ADD MSTORE PUSH2 0x63A PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAF958AB3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0xAF958AB3 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xDAB4EC95 EQ PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1870510B EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0xBC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x132 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xCF PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x314 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x206 SWAP2 SWAP1 PUSH2 0x5C2 JUMP JUMPDEST PUSH2 0x271 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3E8 SWAP2 SWAP1 PUSH2 0x5C2 JUMP JUMPDEST PUSH2 0x44E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x379607F500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x379607F5 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x502 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x58D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x5E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC6 0xDE ADDMOD 0xDD SWAP4 PUSH32 0xF59CB270AEAF042679DCD3174B9E82F9D08EEED46C4FE92AB8CB64736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"458:1350:45:-:0;;;893:596;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;975:12;-1:-1:-1;;;;;975:24:45;;1003:1;975:29;967:56;;;;-1:-1:-1;;;967:56:45;;696:2:60;967:56:45;;;678:21:60;735:2;715:18;;;708:30;-1:-1:-1;;;754:18:60;;;747:44;808:18;;967:56:45;;;;;;;;;1034:23;1071:12;-1:-1:-1;;;;;1060:37:45;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1034:65;;1162:19;-1:-1:-1;;;;;1151:44:45;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1132:65:45;:15;-1:-1:-1;;;;;1132:65:45;;1110:132;;;;-1:-1:-1;;;1110:132:45;;1252:2:60;1110:132:45;;;1234:21:60;1291:2;1271:18;;;1264:30;-1:-1:-1;;;1310:18:60;;;1303:47;1367:18;;1110:132:45;1050:341:60;1110:132:45;1253:71;;-1:-1:-1;;;1253:71:45;;-1:-1:-1;;;;;1588:32:60;;;1253:71:45;;;1570:51:60;-1:-1:-1;;1637:18:60;;;1630:34;1253:31:45;;;;;1543:18:60;;1253:71:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1335:36:45;;;;;1382:58;;;;;1451:30;;;458:1350;;14:177:60;93:13;;-1:-1:-1;;;;;135:31:60;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;837:208::-;907:6;960:2;948:9;939:7;935:23;931:32;928:52;;;976:1;973;966:12;928:52;999:40;1029:9;999:40;:::i;:::-;989:50;837:208;-1:-1:-1;;;837:208:60:o;1675:277::-;1742:6;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1843:9;1837:16;1896:5;1889:13;1882:21;1875:5;1872:32;1862:60;;1918:1;1915;1908:12;1675:277;458:1350:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@claimAndAddReward_11982":{"entryPoint":788,"id":11982,"parameterSlots":1,"returnSlots":0},"@notifyRewardAmount_11996":{"entryPoint":306,"id":11996,"parameterSlots":1,"returnSlots":0},"@pangoChef_11873":{"entryPoint":null,"id":11873,"parameterSlots":0,"returnSlots":0},"@pangolinStakingPositions_11876":{"entryPoint":null,"id":11876,"parameterSlots":0,"returnSlots":0},"@rewardsToken_11878":{"entryPoint":null,"id":11878,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":1474,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":1449,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":1515,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IPangoChef_$11869__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1974:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:125:60","statements":[{"nodeType":"YulAssignment","src":"145:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"157:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"168:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"153:3:60"},"nodeType":"YulFunctionCall","src":"153:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"145:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"187:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"202:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"210:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"198:3:60"},"nodeType":"YulFunctionCall","src":"198:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"180:6:60"},"nodeType":"YulFunctionCall","src":"180:74:60"},"nodeType":"YulExpressionStatement","src":"180:74:60"}]},"name":"abi_encode_tuple_t_contract$_IPangoChef_$11869__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:60","type":""}],"src":"14:246:60"},{"body":{"nodeType":"YulBlock","src":"335:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"381:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"390:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"393:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"383:6:60"},"nodeType":"YulFunctionCall","src":"383:12:60"},"nodeType":"YulExpressionStatement","src":"383:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"356:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"365:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"352:3:60"},"nodeType":"YulFunctionCall","src":"352:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"377:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"348:3:60"},"nodeType":"YulFunctionCall","src":"348:32:60"},"nodeType":"YulIf","src":"345:52:60"},{"nodeType":"YulAssignment","src":"406:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"429:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"416:12:60"},"nodeType":"YulFunctionCall","src":"416:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"406:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"301:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"312:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"324:6:60","type":""}],"src":"265:180:60"},{"body":{"nodeType":"YulBlock","src":"551:125:60","statements":[{"nodeType":"YulAssignment","src":"561:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:60"},"nodeType":"YulFunctionCall","src":"569:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"561:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"603:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"618:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"626:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"614:3:60"},"nodeType":"YulFunctionCall","src":"614:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"596:6:60"},"nodeType":"YulFunctionCall","src":"596:74:60"},"nodeType":"YulExpressionStatement","src":"596:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"520:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"531:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"542:4:60","type":""}],"src":"450:226:60"},{"body":{"nodeType":"YulBlock","src":"810:168:60","statements":[{"nodeType":"YulAssignment","src":"820:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"832:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"843:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"828:3:60"},"nodeType":"YulFunctionCall","src":"828:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"820:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"873:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"855:6:60"},"nodeType":"YulFunctionCall","src":"855:25:60"},"nodeType":"YulExpressionStatement","src":"855:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"900:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"911:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"896:3:60"},"nodeType":"YulFunctionCall","src":"896:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"920:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"928:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"916:3:60"},"nodeType":"YulFunctionCall","src":"916:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"889:6:60"},"nodeType":"YulFunctionCall","src":"889:83:60"},"nodeType":"YulExpressionStatement","src":"889:83:60"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"771:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"782:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"790:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"801:4:60","type":""}],"src":"681:297:60"},{"body":{"nodeType":"YulBlock","src":"1061:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"1107:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1116:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1119:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1109:6:60"},"nodeType":"YulFunctionCall","src":"1109:12:60"},"nodeType":"YulExpressionStatement","src":"1109:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1082:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1091:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1078:3:60"},"nodeType":"YulFunctionCall","src":"1078:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1103:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1074:3:60"},"nodeType":"YulFunctionCall","src":"1074:32:60"},"nodeType":"YulIf","src":"1071:52:60"},{"nodeType":"YulVariableDeclaration","src":"1132:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1145:5:60"},"nodeType":"YulFunctionCall","src":"1145:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1136:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1214:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1223:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1226:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1216:6:60"},"nodeType":"YulFunctionCall","src":"1216:12:60"},"nodeType":"YulExpressionStatement","src":"1216:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1183:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1204:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1197:6:60"},"nodeType":"YulFunctionCall","src":"1197:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1190:6:60"},"nodeType":"YulFunctionCall","src":"1190:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1180:2:60"},"nodeType":"YulFunctionCall","src":"1180:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1173:6:60"},"nodeType":"YulFunctionCall","src":"1173:40:60"},"nodeType":"YulIf","src":"1170:60:60"},{"nodeType":"YulAssignment","src":"1239:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1249:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1239:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1027:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1038:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1050:6:60","type":""}],"src":"983:277:60"},{"body":{"nodeType":"YulBlock","src":"1439:162:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1456:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1467:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1449:6:60"},"nodeType":"YulFunctionCall","src":"1449:21:60"},"nodeType":"YulExpressionStatement","src":"1449:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1490:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1501:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1486:3:60"},"nodeType":"YulFunctionCall","src":"1486:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1506:2:60","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1479:6:60"},"nodeType":"YulFunctionCall","src":"1479:30:60"},"nodeType":"YulExpressionStatement","src":"1479:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1529:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1540:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1525:3:60"},"nodeType":"YulFunctionCall","src":"1525:18:60"},{"hexValue":"756e617574686f72697a6564","kind":"string","nodeType":"YulLiteral","src":"1545:14:60","type":"","value":"unauthorized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1518:6:60"},"nodeType":"YulFunctionCall","src":"1518:42:60"},"nodeType":"YulExpressionStatement","src":"1518:42:60"},{"nodeType":"YulAssignment","src":"1569:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1581:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1592:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1577:3:60"},"nodeType":"YulFunctionCall","src":"1577:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1569:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1416:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1430:4:60","type":""}],"src":"1265:336:60"},{"body":{"nodeType":"YulBlock","src":"1707:76:60","statements":[{"nodeType":"YulAssignment","src":"1717:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1729:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1740:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1725:3:60"},"nodeType":"YulFunctionCall","src":"1725:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1717:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1759:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"1770:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1752:6:60"},"nodeType":"YulFunctionCall","src":"1752:25:60"},"nodeType":"YulExpressionStatement","src":"1752:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1676:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1687:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1698:4:60","type":""}],"src":"1606:177:60"},{"body":{"nodeType":"YulBlock","src":"1869:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"1915:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1924:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1927:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1917:6:60"},"nodeType":"YulFunctionCall","src":"1917:12:60"},"nodeType":"YulExpressionStatement","src":"1917:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1890:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1899:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1886:3:60"},"nodeType":"YulFunctionCall","src":"1886:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1911:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1882:3:60"},"nodeType":"YulFunctionCall","src":"1882:32:60"},"nodeType":"YulIf","src":"1879:52:60"},{"nodeType":"YulAssignment","src":"1940:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1956:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1950:5:60"},"nodeType":"YulFunctionCall","src":"1950:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1940:6:60"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1835:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1846:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1858:6:60","type":""}],"src":"1788:184:60"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_contract$_IPangoChef_$11869__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"unauthorized\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"11873":[{"length":32,"start":113},{"length":32,"start":1152}],"11876":[{"length":32,"start":214},{"length":32,"start":390},{"length":32,"start":672},{"length":32,"start":872},{"length":32,"start":1332}],"11878":[{"length":32,"start":253}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c8063af958ab311610050578063af958ab3146100d1578063d1af0c7d146100f8578063dab4ec951461011f57600080fd5b80631870510b1461006c5780633c6b16ab146100bc575b600080fd5b6100937f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100cf6100ca3660046105a9565b610132565b005b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6100cf61012d3660046105a9565b610314565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156101e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020691906105c2565b610271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec490602401600060405180830381600087803b1580156102f957600080fd5b505af115801561030d573d6000803e3d6000fd5b5050505050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156103c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e891906105c2565b61044e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610268565b6040517f379607f5000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063379607f5906024016020604051808303816000875af11580156104de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050291906105eb565b6040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec490602401600060405180830381600087803b15801561058d57600080fd5b505af11580156105a1573d6000803e3d6000fd5b505050505050565b6000602082840312156105bb57600080fd5b5035919050565b6000602082840312156105d457600080fd5b815180151581146105e457600080fd5b9392505050565b6000602082840312156105fd57600080fd5b505191905056fea2646970667358221220c6de08dd937ff59cb270aeaf042679dcd3174b9e82f9d08eeed46c4fe92ab8cb64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAF958AB3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0xAF958AB3 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xDAB4EC95 EQ PUSH2 0x11F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1870510B EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0xBC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x132 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0xCF PUSH2 0x12D CALLDATASIZE PUSH1 0x4 PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x314 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x206 SWAP2 SWAP1 PUSH2 0x5C2 JUMP JUMPDEST PUSH2 0x271 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x30D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3E8 SWAP2 SWAP1 PUSH2 0x5C2 JUMP JUMPDEST PUSH2 0x44E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x268 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x379607F500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x379607F5 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4DE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x502 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x58D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x5E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC6 0xDE ADDMOD 0xDD SWAP4 PUSH32 0xF59CB270AEAF042679DCD3174B9E82F9D08EEED46C4FE92AB8CB64736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"458:1350:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;531:37;;;;;;;;210:42:60;198:55;;;180:74;;168:2;153:18;531:37:45;;;;;;;1680:125;;;;;;:::i;:::-;;:::i;:::-;;575:52;;;;;634:37;;;;;1497:175;;;;;;:::i;:::-;;:::i;1680:125::-;791:57;;;;;717:24;791:57;;;855:25:60;837:10:45;896:18:60;;;889:83;791:24:45;:32;;;;;828:18:60;;791:57:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;783:82;;;;;;;1467:2:60;783:82:45;;;1449:21:60;1506:2;1486:18;;;1479:30;1545:14;1525:18;;;1518:42;1577:18;;783:82:45;;;;;;;;;1755:42:::1;::::0;;;;::::1;::::0;::::1;1752:25:60::0;;;1755:24:45::1;:34;;::::0;::::1;::::0;1725:18:60;;1755:42:45::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1680:125:::0;:::o;1497:175::-;791:57;;;;;717:24;791:57;;;855:25:60;837:10:45;896:18:60;;;889:83;791:24:45;:32;;;;;828:18:60;;791:57:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;783:82;;;;;;;1467:2:60;783:82:45;;;1449:21:60;1506:2;1486:18;;;1479:30;1545:14;1525:18;;;1518:42;1577:18;;783:82:45;1265:336:60;783:82:45;1588:23:::1;::::0;;;;::::1;::::0;::::1;1752:25:60::0;;;1571:14:45::1;::::0;1588:9:::1;:15;;::::0;::::1;::::0;1725:18:60;;1588:23:45::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1622:42;::::0;;;;::::1;::::0;::::1;1752:25:60::0;;;1571:40:45;;-1:-1:-1;1622:24:45::1;:34;;::::0;::::1;::::0;1725:18:60;;1622:42:45::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1560:112;1497:175:::0;:::o;265:180:60:-;324:6;377:2;365:9;356:7;352:23;348:32;345:52;;;393:1;390;383:12;345:52;-1:-1:-1;416:23:60;;265:180;-1:-1:-1;265:180:60:o;983:277::-;1050:6;1103:2;1091:9;1082:7;1078:23;1074:32;1071:52;;;1119:1;1116;1109:12;1071:52;1151:9;1145:16;1204:5;1197:13;1190:21;1183:5;1180:32;1170:60;;1226:1;1223;1216:12;1170:60;1249:5;983:277;-1:-1:-1;;;983:277:60:o;1788:184::-;1858:6;1911:2;1899:9;1890:7;1886:23;1882:32;1879:52;;;1927:1;1924;1917:12;1879:52;-1:-1:-1;1950:16:60;;1788:184;-1:-1:-1;1788:184:60:o"},"methodIdentifiers":{"claimAndAddReward(uint256)":"dab4ec95","notifyRewardAmount(uint256)":"3c6b16ab","pangoChef()":"1870510b","pangolinStakingPositions()":"af958ab3","rewardsToken()":"d1af0c7d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPangoChef\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newStakingPositions\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"claimAndAddReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pangoChef\",\"outputs\":[{\"internalType\":\"contract IPangoChef\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pangolinStakingPositions\",\"outputs\":[{\"internalType\":\"contract IPangoChef\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"shung for Pangolin \",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol\":\"EmissionDiversionFromPangoChefToPangolinStakingPositions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol\":{\"keccak256\":\"0x9910a95733a7fd89acf577b17d148ed23e1f1d8b8938f64c93df8b44dbbac9cd\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://6ea337af50e4c40a5d667b3b31a9fdd64869553321b8914ec4ee209b15abc87b\",\"dweb:/ipfs/QmcfrwrYjuWD6j4zvzmSHEqJ6tRonb5W3vdGTTJ5GbGKdG\"]}},\"version\":1}"},"IPangoChef":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"claim","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addReward(uint256)":"74de4ec4","claim(uint256)":"379607f5","hasRole(bytes32,address)":"91d14854","rewardsToken()":"d1af0c7d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol\":\"IPangoChef\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/staking-positions/EmissionDiversionFromPangoChefToPangolinStakingPositions.sol\":{\"keccak256\":\"0x9910a95733a7fd89acf577b17d148ed23e1f1d8b8938f64c93df8b44dbbac9cd\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://6ea337af50e4c40a5d667b3b31a9fdd64869553321b8914ec4ee209b15abc87b\",\"dweb:/ipfs/QmcfrwrYjuWD6j4zvzmSHEqJ6tRonb5W3vdGTTJ5GbGKdG\"]}},\"version\":1}"}},"contracts/staking-positions/GenericErrors.sol":{"GenericErrors":{"abi":[{"inputs":[],"name":"FailedTransfer","type":"error"},{"inputs":[],"name":"HighSlippage","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"InvalidType","type":"error"},{"inputs":[],"name":"Locked","type":"error"},{"inputs":[],"name":"MismatchedArrayLengths","type":"error"},{"inputs":[],"name":"NoEffect","type":"error"},{"inputs":[],"name":"NonExistentToken","type":"error"},{"inputs":[],"name":"NullInput","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"},{"inputs":[],"name":"Overflow","type":"error"},{"inputs":[],"name":"TooEarly","type":"error"},{"inputs":[],"name":"TooLate","type":"error"},{"inputs":[],"name":"Underflow","type":"error"},{"inputs":[],"name":"UnprivilegedCaller","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HighSlippage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Locked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedArrayLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEffect\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooLate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Underflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnprivilegedCaller\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/GenericErrors.sol\":\"GenericErrors\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]}},\"version\":1}"}},"contracts/staking-positions/PangoChef.sol":{"PangoChef":{"abi":[{"inputs":[{"internalType":"address","name":"newRewardsToken","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"contract IPangolinFactory","name":"newFactory","type":"address"},{"internalType":"address","name":"newWrappedNativeToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"FailedTransfer","type":"error"},{"inputs":[],"name":"HighSlippage","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"InvalidType","type":"error"},{"inputs":[],"name":"Locked","type":"error"},{"inputs":[],"name":"MismatchedArrayLengths","type":"error"},{"inputs":[],"name":"NoEffect","type":"error"},{"inputs":[],"name":"NonExistentToken","type":"error"},{"inputs":[],"name":"NullInput","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"},{"inputs":[],"name":"Overflow","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"TooEarly","type":"error"},{"inputs":[],"name":"TooLate","type":"error"},{"inputs":[],"name":"Underflow","type":"error"},{"inputs":[],"name":"UnprivilegedCaller","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"PeriodDurationUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"PeriodEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":true,"internalType":"address","name":"tokenOrRecipient","type":"address"}],"name":"PoolInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":true,"internalType":"address","name":"rewarder","type":"address"}],"name":"RewarderSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"positionId","type":"uint256"},{"indexed":true,"internalType":"address","name":"userId","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newWeight","type":"uint256"}],"name":"WeightSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"positionId","type":"uint256"},{"indexed":true,"internalType":"address","name":"userId","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"claim","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"components":[{"internalType":"uint256","name":"minPairAmount","type":"uint256"},{"internalType":"uint256","name":"maxPairAmount","type":"uint256"}],"internalType":"struct PangoChef.Slippage","name":"slippage","type":"tuple"}],"name":"compound","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"harvestPoolId","type":"uint256"},{"internalType":"uint256","name":"compoundPoolId","type":"uint256"},{"components":[{"internalType":"uint256","name":"minPairAmount","type":"uint256"},{"internalType":"uint256","name":"maxPairAmount","type":"uint256"}],"internalType":"struct PangoChef.Slippage","name":"slippage","type":"tuple"}],"name":"compoundTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"emergencyExitLevel1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes32","name":"confirmation","type":"bytes32"}],"name":"emergencyExitLevel2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IPangolinFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"userId","type":"address"}],"name":"getLockedPools","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"userId","type":"address"}],"name":"getUser","outputs":[{"components":[{"components":[{"internalType":"uint104","name":"balance","type":"uint104"},{"internalType":"uint152","name":"sumOfEntryTimes","type":"uint152"}],"internalType":"struct PangoChef.ValueVariables","name":"valueVariables","type":"tuple"},{"components":[{"internalType":"uint256","name":"idealPosition","type":"uint256"},{"internalType":"uint256","name":"rewardPerValue","type":"uint256"}],"internalType":"struct PangoChef.RewardSummations","name":"rewardSummationsPaid","type":"tuple"},{"internalType":"uint152","name":"previousValues","type":"uint152"},{"internalType":"uint48","name":"lastUpdate","type":"uint48"},{"internalType":"uint56","name":"lockCount","type":"uint56"},{"internalType":"uint96","name":"stashedRewards","type":"uint96"}],"internalType":"struct PangoChef.User","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOrRecipient","type":"address"},{"internalType":"enum PangoChef.PoolType","name":"poolType","type":"uint8"}],"name":"initializePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolRewardInfos","outputs":[{"internalType":"uint32","name":"weight","type":"uint32"},{"internalType":"uint96","name":"stashedRewards","type":"uint96"},{"internalType":"uint128","name":"rewardPerWeightPaid","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"poolRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pools","outputs":[{"internalType":"address","name":"tokenOrRecipient","type":"address"},{"internalType":"enum PangoChef.PoolType","name":"poolType","type":"uint8"},{"internalType":"contract IRewarder","name":"rewarder","type":"address"},{"internalType":"address","name":"rewardPair","type":"address"},{"components":[{"internalType":"uint104","name":"balance","type":"uint104"},{"internalType":"uint152","name":"sumOfEntryTimes","type":"uint152"}],"internalType":"struct PangoChef.ValueVariables","name":"valueVariables","type":"tuple"},{"components":[{"internalType":"uint256","name":"idealPosition","type":"uint256"},{"internalType":"uint256","name":"rewardPerValue","type":"uint256"}],"internalType":"struct PangoChef.RewardSummations","name":"rewardSummationsStored","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerWeightStored","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"setPeriodDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"rewarder","type":"address"}],"name":"setRewarder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"poolIds","type":"uint256[]"},{"internalType":"uint32[]","name":"weights","type":"uint32[]"}],"name":"setWeights","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"userId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stakeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardAdded","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"userId","type":"address"}],"name":"userPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"userId","type":"address"}],"name":"userRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrappedNativeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_12280":{"entryPoint":null,"id":12280,"parameterSlots":4,"returnSlots":0},"@_14422":{"entryPoint":null,"id":14422,"parameterSlots":2,"returnSlots":0},"@_add_8447":{"entryPoint":1544,"id":8447,"parameterSlots":2,"returnSlots":1},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_grantRole_283":{"entryPoint":1351,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":590,"id":415,"parameterSlots":2,"returnSlots":0},"@_initializePool_13895":{"entryPoint":657,"id":13895,"parameterSlots":2,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@add_8747":{"entryPoint":1512,"id":8747,"parameterSlots":2,"returnSlots":1},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":1769,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":1870,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_contract$_IPangolinFactory_$18099t_address_fromMemory":{"entryPoint":1665,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"increment_t_uint256":{"entryPoint":1808,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x21":{"entryPoint":1848,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":1640,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2364:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:60","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:60"},"nodeType":"YulFunctionCall","src":"125:12:60"},"nodeType":"YulExpressionStatement","src":"125:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:60"},"nodeType":"YulFunctionCall","src":"104:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:60"},"nodeType":"YulFunctionCall","src":"100:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:60"},"nodeType":"YulFunctionCall","src":"89:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:60"},"nodeType":"YulFunctionCall","src":"79:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:60"},"nodeType":"YulFunctionCall","src":"72:50:60"},"nodeType":"YulIf","src":"69:70:60"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:60","type":""}],"src":"14:131:60"},{"body":{"nodeType":"YulBlock","src":"308:522:60","statements":[{"body":{"nodeType":"YulBlock","src":"355:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"364:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"367:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"357:6:60"},"nodeType":"YulFunctionCall","src":"357:12:60"},"nodeType":"YulExpressionStatement","src":"357:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"329:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"338:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"325:3:60"},"nodeType":"YulFunctionCall","src":"325:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"350:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"321:3:60"},"nodeType":"YulFunctionCall","src":"321:33:60"},"nodeType":"YulIf","src":"318:53:60"},{"nodeType":"YulVariableDeclaration","src":"380:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"399:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:60"},"nodeType":"YulFunctionCall","src":"393:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"384:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"443:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"418:24:60"},"nodeType":"YulFunctionCall","src":"418:31:60"},"nodeType":"YulExpressionStatement","src":"418:31:60"},{"nodeType":"YulAssignment","src":"458:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"468:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"458:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"482:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"507:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"503:3:60"},"nodeType":"YulFunctionCall","src":"503:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"497:5:60"},"nodeType":"YulFunctionCall","src":"497:25:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"486:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"556:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"531:24:60"},"nodeType":"YulFunctionCall","src":"531:33:60"},"nodeType":"YulExpressionStatement","src":"531:33:60"},{"nodeType":"YulAssignment","src":"573:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"583:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"573:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"599:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"624:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"635:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"620:3:60"},"nodeType":"YulFunctionCall","src":"620:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"614:5:60"},"nodeType":"YulFunctionCall","src":"614:25:60"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"603:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"673:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"648:24:60"},"nodeType":"YulFunctionCall","src":"648:33:60"},"nodeType":"YulExpressionStatement","src":"648:33:60"},{"nodeType":"YulAssignment","src":"690:17:60","value":{"name":"value_2","nodeType":"YulIdentifier","src":"700:7:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"690:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"716:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"741:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"752:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"737:3:60"},"nodeType":"YulFunctionCall","src":"737:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"731:5:60"},"nodeType":"YulFunctionCall","src":"731:25:60"},"variables":[{"name":"value_3","nodeType":"YulTypedName","src":"720:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_3","nodeType":"YulIdentifier","src":"790:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"765:24:60"},"nodeType":"YulFunctionCall","src":"765:33:60"},"nodeType":"YulExpressionStatement","src":"765:33:60"},{"nodeType":"YulAssignment","src":"807:17:60","value":{"name":"value_3","nodeType":"YulIdentifier","src":"817:7:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"807:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_contract$_IPangolinFactory_$18099t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"250:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"261:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"273:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"281:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"289:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"297:6:60","type":""}],"src":"150:680:60"},{"body":{"nodeType":"YulBlock","src":"964:175:60","statements":[{"nodeType":"YulAssignment","src":"974:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"986:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"997:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"982:3:60"},"nodeType":"YulFunctionCall","src":"982:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"974:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"1009:29:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1027:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1032:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1023:3:60"},"nodeType":"YulFunctionCall","src":"1023:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"1036:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1019:3:60"},"nodeType":"YulFunctionCall","src":"1019:19:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1013:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1054:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1069:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1077:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1065:3:60"},"nodeType":"YulFunctionCall","src":"1065:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1047:6:60"},"nodeType":"YulFunctionCall","src":"1047:34:60"},"nodeType":"YulExpressionStatement","src":"1047:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1101:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1112:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1097:3:60"},"nodeType":"YulFunctionCall","src":"1097:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1121:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1129:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1117:3:60"},"nodeType":"YulFunctionCall","src":"1117:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1090:6:60"},"nodeType":"YulFunctionCall","src":"1090:43:60"},"nodeType":"YulExpressionStatement","src":"1090:43:60"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"925:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"936:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"944:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"955:4:60","type":""}],"src":"835:304:60"},{"body":{"nodeType":"YulBlock","src":"1225:170:60","statements":[{"body":{"nodeType":"YulBlock","src":"1271:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1280:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1283:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1273:6:60"},"nodeType":"YulFunctionCall","src":"1273:12:60"},"nodeType":"YulExpressionStatement","src":"1273:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1246:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1255:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1242:3:60"},"nodeType":"YulFunctionCall","src":"1242:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1267:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1238:3:60"},"nodeType":"YulFunctionCall","src":"1238:32:60"},"nodeType":"YulIf","src":"1235:52:60"},{"nodeType":"YulVariableDeclaration","src":"1296:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1309:5:60"},"nodeType":"YulFunctionCall","src":"1309:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1300:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1359:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1334:24:60"},"nodeType":"YulFunctionCall","src":"1334:31:60"},"nodeType":"YulExpressionStatement","src":"1334:31:60"},{"nodeType":"YulAssignment","src":"1374:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1384:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1374:6:60"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1191:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1202:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1214:6:60","type":""}],"src":"1144:251:60"},{"body":{"nodeType":"YulBlock","src":"1447:185:60","statements":[{"body":{"nodeType":"YulBlock","src":"1486:111:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1507:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1514:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1519:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1510:3:60"},"nodeType":"YulFunctionCall","src":"1510:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1500:6:60"},"nodeType":"YulFunctionCall","src":"1500:31:60"},"nodeType":"YulExpressionStatement","src":"1500:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1551:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1554:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1544:6:60"},"nodeType":"YulFunctionCall","src":"1544:15:60"},"nodeType":"YulExpressionStatement","src":"1544:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1579:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1582:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1572:6:60"},"nodeType":"YulFunctionCall","src":"1572:15:60"},"nodeType":"YulExpressionStatement","src":"1572:15:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1463:5:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1474:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1470:3:60"},"nodeType":"YulFunctionCall","src":"1470:6:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1460:2:60"},"nodeType":"YulFunctionCall","src":"1460:17:60"},"nodeType":"YulIf","src":"1457:140:60"},{"nodeType":"YulAssignment","src":"1606:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1617:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1624:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1613:3:60"},"nodeType":"YulFunctionCall","src":"1613:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1606:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1429:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"1439:3:60","type":""}],"src":"1400:232:60"},{"body":{"nodeType":"YulBlock","src":"1669:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1686:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1693:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1698:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1689:3:60"},"nodeType":"YulFunctionCall","src":"1689:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1679:6:60"},"nodeType":"YulFunctionCall","src":"1679:31:60"},"nodeType":"YulExpressionStatement","src":"1679:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1726:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1729:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1719:6:60"},"nodeType":"YulFunctionCall","src":"1719:15:60"},"nodeType":"YulExpressionStatement","src":"1719:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1750:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1753:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1743:6:60"},"nodeType":"YulFunctionCall","src":"1743:15:60"},"nodeType":"YulExpressionStatement","src":"1743:15:60"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"1637:127:60"},{"body":{"nodeType":"YulBlock","src":"1870:102:60","statements":[{"nodeType":"YulAssignment","src":"1880:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1892:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1903:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1888:3:60"},"nodeType":"YulFunctionCall","src":"1888:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1880:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1922:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1937:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1953:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1958:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1949:3:60"},"nodeType":"YulFunctionCall","src":"1949:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"1962:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1945:3:60"},"nodeType":"YulFunctionCall","src":"1945:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1933:3:60"},"nodeType":"YulFunctionCall","src":"1933:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1915:6:60"},"nodeType":"YulFunctionCall","src":"1915:51:60"},"nodeType":"YulExpressionStatement","src":"1915:51:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1839:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1850:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1861:4:60","type":""}],"src":"1769:203:60"},{"body":{"nodeType":"YulBlock","src":"2075:287:60","statements":[{"body":{"nodeType":"YulBlock","src":"2121:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2130:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2133:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2123:6:60"},"nodeType":"YulFunctionCall","src":"2123:12:60"},"nodeType":"YulExpressionStatement","src":"2123:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2096:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2105:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2092:3:60"},"nodeType":"YulFunctionCall","src":"2092:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2117:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2088:3:60"},"nodeType":"YulFunctionCall","src":"2088:32:60"},"nodeType":"YulIf","src":"2085:52:60"},{"nodeType":"YulVariableDeclaration","src":"2146:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2165:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2159:5:60"},"nodeType":"YulFunctionCall","src":"2159:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2150:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2209:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2184:24:60"},"nodeType":"YulFunctionCall","src":"2184:31:60"},"nodeType":"YulExpressionStatement","src":"2184:31:60"},{"nodeType":"YulAssignment","src":"2224:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"2234:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2224:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"2248:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2273:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2269:3:60"},"nodeType":"YulFunctionCall","src":"2269:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2263:5:60"},"nodeType":"YulFunctionCall","src":"2263:25:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2252:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2322:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2297:24:60"},"nodeType":"YulFunctionCall","src":"2297:33:60"},"nodeType":"YulExpressionStatement","src":"2297:33:60"},{"nodeType":"YulAssignment","src":"2339:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2349:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2339:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2033:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2044:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2056:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2064:6:60","type":""}],"src":"1977:385:60"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_contract$_IPangolinFactory_$18099t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n        let value_3 := mload(add(headStart, 96))\n        validator_revert_address(value_3)\n        value3 := value_3\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n        ret := add(value, 1)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60e060405262015180600555600160065560006009553480156200002257600080fd5b5060405162004fa138038062004fa1833981016040819052620000459162000681565b83836001600160a01b0381166200006f57604051632505ecc360e11b815260040160405180910390fd5b6001600160a01b038216608052620000896000826200024e565b620000b57f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb826200024e565b620000e17f6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff826200024e565b5050600080805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b80546103e863ffffffff199091161790556004805463ffffffff60901b1916607d60931b17815560405163e6a4390560e01b81526001600160a01b038781169282019290925283821660248201529084169063e6a4390590604401602060405180830381865afa15801562000187573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ad9190620006e9565b90506001600160a01b038116620001d757604051632505ecc360e11b815260040160405180910390fd5b6001600160a01b0380841660a052821660c052604051620001f8906200065a565b604051809103906000f08015801562000215573d6000803e3d6000fd5b50600a80546001600160a01b0319166001600160a01b03929092169190911790556200024381600162000291565b50505050506200078d565b6200026582826200054760201b620019201760201c565b60008281526001602090815260409091206200028c918390620019be620005e8821b17901c565b505050565b6009805460009182620002a48362000710565b9091555060008181526007602052604090209091506001600160a01b0384161580620002e457506000836002811115620002e257620002e262000738565b145b156200030357604051632505ecc360e11b815260040160405180910390fd5b80546001600160a01b0385166001600160a01b0319821681178355849183916001600160a81b031990911617600160a01b83600281111562000349576200034962000738565b0217905550600183600281111562000365576200036562000738565b036200050b57836001600160a01b03163b600003620003975760405163c1ab6dc160e01b815260040160405180910390fd5b600a54604051630edcc0f960e41b81526001600160a01b0386811660048301529091169063edcc0f90906024016040805180830381865afa925050508015620003ff575060408051601f3d908101601f19168201909252620003fc918101906200074e565b60015b156200050b5760a05160405163e6a4390560e01b81526001600160a01b038481166004830152838116602483015288811692169063e6a4390590604401602060405180830381865afa1580156200045a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004809190620006e9565b6001600160a01b03160362000508576080516001600160a01b0316826001600160a01b031603620004ce576002830180546001600160a01b0319166001600160a01b03831617905562000508565b6080516001600160a01b0316816001600160a01b03160362000508576002830180546001600160a01b0319166001600160a01b0384161790555b50505b6040516001600160a01b0385169083907f3d82013e0d368d05bfb8b953d35bffd6eec15520773228de41146f306a241aec90600090a350505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620005e4576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620005a33390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620005ff836001600160a01b03841662000608565b90505b92915050565b6000818152600183016020526040812054620006515750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000602565b50600062000602565b61021a8062004d8783390190565b6001600160a01b03811681146200067e57600080fd5b50565b600080600080608085870312156200069857600080fd5b8451620006a58162000668565b6020860151909450620006b88162000668565b6040860151909350620006cb8162000668565b6060860151909250620006de8162000668565b939692955090935050565b600060208284031215620006fc57600080fd5b8151620007098162000668565b9392505050565b6000600182016200073157634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b600080604083850312156200076257600080fd5b82516200076f8162000668565b6020840151909250620007828162000668565b809150509250929050565b60805160a05160c051614584620008036000396000818161036901526133000152600081816109950152612dd40152600081816109e901528181610d5a015281816113850152818161157b015281816122a401528181612e5101528181612eb901528181613221015261343401526145846000f3fe6080604052600436106102d15760003560e01c80637b0a47ee11610179578063c0463711116100d6578063d61f06801161008a578063ebe2b12b11610064578063ebe2b12b14610a7e578063f2d1e1cd14610a9d578063f851844b14610abd57600080fd5b8063d61f068014610a2b578063d97f8ed614610a4b578063ddc6326214610a5e57600080fd5b8063ca15c873116100bb578063ca15c873146109b7578063d1af0c7d146109d7578063d547741f14610a0b57600080fd5b8063c046371114610946578063c45a01551461098357600080fd5b806391d148541161012d578063a217fddf11610112578063a217fddf1461084b578063ac4afa3814610860578063b470aade1461093057600080fd5b806391d14854146107ce57806396c82e571461081257600080fd5b806380754b281161015e57806380754b281461077b57806382f084d31461078e5780639010d07c146107ae57600080fd5b80637b0a47ee146107465780637c2d6e011461075b57600080fd5b806343d5599e11610232578063562d12d7116101e65780636bc9f703116101c05780636bc9f7031461066057806374de4ec4146107065780637b0472f01461072657600080fd5b8063562d12d71461060b57806359b02eb31461062b5780635faa65ff1461064b57600080fd5b8063441a3e7011610217578063441a3e701461059e57806347df36c0146105be57806354f8c475146105eb57600080fd5b806343d5599e1461055e57806343de32071461057e57600080fd5b80632716ae66116102895780633228dd591161026e5780633228dd59146104d457806336568abe1461051e578063379607f51461053e57600080fd5b80632716ae661461049d5780632f2ff15d146104b257600080fd5b806317fcb39b116102ba57806317fcb39b14610357578063248a9ca3146103a3578063257664a4146103e157600080fd5b806301ffc9a7146102d6578063098b88581461030b575b600080fd5b3480156102e257600080fd5b506102f66102f1366004613d1a565b610add565b60405190151581526020015b60405180910390f35b34801561031757600080fd5b5060045461033a90660100000000000090046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610302565b34801561036357600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610302565b3480156103af57600080fd5b506103d36103be366004613d5c565b60009081526020819052604090206001015490565b604051908152602001610302565b3480156103ed57600080fd5b506104016103fc366004613d8a565b610b39565b6040516103029190815180516001600160681b031682526020908101516001600160981b031690820152610100810160208381015180516040850152908101516060840152506001600160981b03604084015116608083015265ffffffffffff60608401511660a083015266ffffffffffffff60808401511660c08301526bffffffffffffffffffffffff60a08401511660e083015292915050565b3480156104a957600080fd5b506009546103d3565b3480156104be57600080fd5b506104d26104cd366004613d8a565b610c1d565b005b3480156104e057600080fd5b506003546104fd906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610302565b34801561052a57600080fd5b506104d2610539366004613d8a565b610c47565b34801561054a57600080fd5b506103d3610559366004613d5c565b610cd8565b34801561056a57600080fd5b506104d2610579366004613dba565b610dcd565b34801561058a57600080fd5b506104d2610599366004613d8a565b610df9565b3480156105aa57600080fd5b506104d26105b9366004613df2565b610e98565b3480156105ca57600080fd5b506105de6105d9366004613d8a565b610eaa565b6040516103029190613e14565b3480156105f757600080fd5b506104d2610606366004613ea4565b610edf565b34801561061757600080fd5b506104d2610626366004613df2565b611184565b34801561063757600080fd5b506103d3610646366004613d8a565b611260565b34801561065757600080fd5b506104d26112aa565b34801561066c57600080fd5b506106c561067b366004613d5c565b60026020526000908152604090205463ffffffff81169064010000000081046bffffffffffffffffffffffff1690600160801b90046fffffffffffffffffffffffffffffffff1683565b6040805163ffffffff90941684526bffffffffffffffffffffffff90921660208401526fffffffffffffffffffffffffffffffff1690820152606001610302565b34801561071257600080fd5b506104d2610721366004613d5c565b6113e1565b34801561073257600080fd5b506104d2610741366004613df2565b6115e4565b34801561075257600080fd5b506103d3611610565b34801561076757600080fd5b506104d2610776366004613d5c565b611655565b6104d2610789366004613f28565b61172b565b34801561079a57600080fd5b506103d36107a9366004613d8a565b61176d565b3480156107ba57600080fd5b5061038b6107c9366004613df2565b6117e7565b3480156107da57600080fd5b506102f66107e9366004613d8a565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561081e57600080fd5b5060045461083690600160901b900463ffffffff1681565b60405163ffffffff9091168152602001610302565b34801561085757600080fd5b506103d3600081565b34801561086c57600080fd5b5061091e61087b366004613d5c565b6007602090815260009182526040918290208054600182015460028301548551808701875260038501546001600160681b03811682526d010000000000000000000000000090046001600160981b031681870152865180880190975260048501548752600590940154948601949094526001600160a01b03808316957401000000000000000000000000000000000000000090930460ff16949181169391169186565b60405161030296959493929190613f74565b34801561093c57600080fd5b506103d360055481565b34801561095257600080fd5b5060035461096c90600160801b900465ffffffffffff1681565b60405165ffffffffffff9091168152602001610302565b34801561098f57600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109c357600080fd5b506103d36109d2366004613d5c565b6117ff565b3480156109e357600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610a1757600080fd5b506104d2610a26366004613d8a565b611816565b348015610a3757600080fd5b506104d2610a46366004613ff7565b61183b565b6104d2610a59366004614029565b61186f565b348015610a6a57600080fd5b506104d2610a79366004613d5c565b611894565b348015610a8a57600080fd5b5060045461096c9065ffffffffffff1681565b348015610aa957600080fd5b506103d3610ab8366004613d5c565b6118aa565b348015610ac957600080fd5b506104d2610ad8366004613d5c565b611900565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f000000000000000000000000000000000000000000000000000000001480610b335750610b33826119d3565b92915050565b610b41613cb7565b5060008281526007602090815260408083206001600160a01b038516845260060182529182902082516101008101845281546001600160681b03811660c083019081526d01000000000000000000000000009091046001600160981b0390811660e0840152908252845180860186526001840154815260028401548186015293820193909352600382015492831693810193909352600160981b820465ffffffffffff166060840152600160c81b90910466ffffffffffffff166080830152600401546bffffffffffffffffffffffff1660a082015292915050565b600082815260208190526040902060010154610c3881611a6a565b610c428383611a74565b505050565b6001600160a01b0381163314610cca5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610cd48282611a96565b5050565b6000610ce2611ab8565b6000828152600760205260409020610cf981611af6565b80546001600160a01b03163314610d3c576040517f38c5856200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d4583611b5e565b91508115610d8157610d816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611bac565b6000336001600160a01b0316847f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace85604051610dbf91815260200190565b60405180910390a450919050565b610dd5611ab8565b610c4283838360006040518060400160405280600081526020016000815250611c51565b7f6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff610e2381611a6a565b6000838152600760205260409020610e3a816120eb565b60018101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03851690811790915560405185907f865fdcfd963a9e21f0dbb101fecee79dda3ecc602d0fe55e29268c843f2a3b7c90600090a350505050565b610ea0611ab8565b610cd482826120f2565b60008281526008602090815260408083206001600160a01b03851684529091529020606090610ed8906123bc565b9392505050565b7f6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff610f0981611a6a565b610f116123c9565b83828114610f4b576040517f568efce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610f5660095490565b90506000805b838110156110d7576000898983818110610f7857610f78614056565b9050602002013590506000888884818110610f9557610f95614056565b9050602002016020810190610faa919061407e565b63ffffffff169050848210610fd257604051632d0483c560e21b815260040160405180910390fd5b6000828152600260205260409020805463ffffffff16808303611008576040516324d0659d60e11b815260040160405180910390fd5b61101281846140b1565b61101c9087614125565b955061102782612452565b82547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166401000000006bffffffffffffffffffffffff92909216919091027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161763ffffffff841617825560405183815284907f645b3dc30fbdcc9749f62868ae25c191ff0090b1c21905c2793ec7159856e4389060200160405180910390a284600101945050505050610f5c565b506004546000906110f6908390600160901b900463ffffffff16614125565b90506000811361111957604051632d0483c560e21b815260040160405180910390fd5b63ffffffff81111561113e57604051632d0483c560e21b815260040160405180910390fd5b6004805463ffffffff909216600160901b027fffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffff9092169190911790555050505050505050565b61118c611ab8565b6002600655604080517f4920616d20726561647920746f206c6f73652065766572797468696e6720696e60208201527f207468697320706f6f6c2e204c6574206d6520676f2e00000000000000000000918101919091526bffffffffffffffffffffffff193360601b166056820152606a0160405160208183030381529060405280519060200120811461124c576040517f38c5856200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61125782600061248c565b50506001600655565b60008281526007602090815260408083206001600160a01b038516845260068101909252822082611294868484600161269b565b90506112a081836127bb565b9695505050505050565b60006112b581611a6a565b60045465ffffffffffff1642106112f8576040517fecdd1c2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600480547fffffffffffffffffffffffffffff0000000000000000000000000000000000008116600160b01b90930469ffffffffffffffffffff164265ffffffffffff808416829003929092026601000000000000938490046bffffffffffffffffffffffff9081168290031690930265ffffffffffff19169490941793169290921790556113b47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163383611bac565b6040517fac02d07d013ae7c7e3ee940f8df0877c2ab1103bf87ab258ce31665f7111f09290600090a15050565b7f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb61140b81611a6a565b6114136123c9565b6005546bffffffffffffffffffffffff83111561145c576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600460068282829054906101000a90046bffffffffffffffffffffffff166114859190614199565b82546bffffffffffffffffffffffff9182166101009390930a92830291909202199091161790555060045460009065ffffffffffff1642106114ca57508083046114fb565b506003546004544265ffffffffffff9091160369ffffffffffffffffffff600160b01b909204919091160283018190045b8060000361151c576040516324d0659d60e11b815260040160405180910390fd5b6003805475ffffffffffffffffffffffffffffffffffffffffffff16600160b01b69ffffffffffffffffffff84160217905561155882426141c9565b6004805465ffffffffffff191665ffffffffffff929092169190911790556115ab7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316333087612871565b6040518481527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a150505050565b6115ec611ab8565b610cd482338360006040518060400160405280600081526020016000815250611c51565b6004546000904265ffffffffffff9091161061164157600354600160b01b900469ffffffffffffffffffff16611644565b60005b69ffffffffffffffffffff16905090565b600061166081611a6a565b6004544265ffffffffffff90911611156116a6576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620100018210156116ca57604051632d0483c560e21b815260040160405180910390fd5b63ffffffff8211156116ef57604051632d0483c560e21b815260040160405180910390fd5b60058290556040518281527fbd6eb9cf4d6e2902587c57e3163aaafdb46e3b3f2086bdfa75c790228930a9d79060200160405180910390a15050565b611733611ab8565b60026006556000611744848461291d565b9050611762833383600261175d368890038801886141f7565b611c51565b505060016006555050565b60008281526007602052604081208161178860038301612b74565b6001600160a01b03851660009081526006840160205260408120919250906117af90612b74565b905080156117db5781816117c2886118aa565b6117cc9190614254565b6117d69190614273565b6112a0565b50600095945050505050565b6000828152600160205260408120610ed89083612bb1565b6000818152600160205260408120610b3390612bbd565b60008281526020819052604090206001015461183181611a6a565b610c428383611a96565b7f6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff61186581611a6a565b610c428383612bc7565b611877611ab8565b600260065561125782336000600161175d368790038701876141f7565b61189c611ab8565b6118a78160006120f2565b50565b60008181526002602052604081205463ffffffff1680156118f757600454600160901b900463ffffffff16816118de611610565b6118e89190614254565b6118f29190614273565b610ed8565b60009392505050565b611908611ab8565b600260065561191881600161248c565b506001600655565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610cd4576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561197a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610ed8836001600160a01b038416612f5a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610b3357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610b33565b6118a78133612fa9565b611a7e8282611920565b6000828152600160205260409020610c4290826119be565b611aa0828261301c565b6000828152600160205260409020610c42908261309b565b600654600203611af4576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60025b815474010000000000000000000000000000000000000000900460ff166002811115611b2757611b27613f5e565b146118a7576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611b686123c9565b6000828152600260205260409020611b7f81612452565b81547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff1690915592915050565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080611c4b5760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610cc1565b50505050565b60008581526007602090815260408083206001600160a01b038816845260068101909252909120611c81826120eb565b6003820180546001600160681b03168015611ca257611ca089856130b0565b505b6000611caf8a8686613116565b9050600080886002811115611cc657611cc6613f5e565b03611d0057506004840180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff92909216919091179055600087611db0565b6002886002811115611d1457611d14613f5e565b03611d5c57611d24868a8961313b565b6004860180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff9490941693909317909255909750600090611db0565b6001886002811115611d7057611d70613f5e565b14611d7d57611d7d614295565b8815611d8b57611d8b614295565b611d9686838961313b565b6004860180546bffffffffffffffffffffffff1916905598505b88600003611dd1576040516324d0659d60e11b815260040160405180910390fd5b600080611dde8b866141c9565b90506001600160681b03811115611e21576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008b420290508087600001600d8282829054906101000a90046001600160981b03160192506101000a8154816001600160981b0302191690836001600160981b03160217905550818760000160006101000a8154816001600160681b0302191690836001600160681b03160217905550600088600001905060008160000160009054906101000a90046001600160681b03166001600160681b031690508d81019450848260000160006101000a8154816001600160681b0302191690836001600160681b031602179055508282600001600d8282829054906101000a90046001600160981b03160192506101000a8154816001600160981b0302191690836001600160981b031602179055508960030160139054906101000a900465ffffffffffff1665ffffffffffff16420381028a60030160008282829054906101000a90046001600160981b03160192506101000a8154816001600160981b0302191690836001600160981b0316021790555050505050611fee878760038101805465ffffffffffff4216600160981b027fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff90911617905560048201546001820155600590910154600290910155565b811561200b57865461200b906001600160a01b0316333085612871565b898b6001600160a01b03168d7f17700ceb1658b18206f427c1578048e87504106b14ec69e9b4586d9a95174a328660405161204891815260200190565b60405180910390a460018701546001600160a01b031680156120dc57604051635d3c15f760e11b8152600481018e90526001600160a01b038d8116602483015260006044830152606482018690526084820184905282169063ba782bee9060a401600060405180830381600087803b1580156120c357600080fd5b505af11580156120d7573d6000803e3d6000fd5b505050505b50505050505050505050505050565b6001611af9565b600082815260076020908152604080832033845260068101909252909120612119826120eb565b61212384836130b0565b5061212e81856134eb565b805481906001600160681b031680851115612175576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612182878686613116565b6004850180546bffffffffffffffffffffffff191690559050851580156121a7575080155b156121c5576040516324d0659d60e11b815260040160405180910390fd5b600385810180546001600160681b038082168a900381166cffffffffffffffffffffffffff19909216821780845587546001600160981b036d0100000000000000000000000000918290048116928290048116428e8b03818102928301959095038316840290961790965594909416909302908316178655918601805465ffffffffffff909316600160981b027fffffffffffffff0000000000000000000000000000000000000000000000000090931692909217909155600486015460018601556005860154600286015581156122cb576122cb6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611bac565b86156122e75785546122e7906001600160a01b03163389611bac565b86336001600160a01b0316897f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace8560405161232491815260200190565b60405180910390a460018601546001600160a01b031680156123b157604051635d3c15f760e11b8152600481018a90523360248201526001604482015260648101849052608481018390526001600160a01b0382169063ba782bee9060a401600060405180830381600087803b15801561239d57600080fd5b505af11580156120dc573d6000803e3d6000fd5b505050505050505050565b60606000610ed88361361f565b6123d161367b565b600380546000906123f59084906fffffffffffffffffffffffffffffffff166142ab565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600360106101000a81548165ffffffffffff021916908365ffffffffffff160217905550565b6000806124608360006136a7565b6003548454600160801b6fffffffffffffffffffffffffffffffff928316029116179093555090919050565b6000828152600760209081526040808320338452600681019092529091206124b3826120eb565b6124bd81856134eb565b8054600383019082906001600160681b031660008190036124f1576040516324d0659d60e11b815260040160405180910390fd5b82546001600160681b03808216839003166cffffffffffffffffffffffffff19909116811780855583546001600160981b036d01000000000000000000000000009182900481169282900481169290920390911602178355600087815260076020908152604080832033845260060190915281208181556001810182905560028101829055600381019190915560040180546bffffffffffffffffffffffff1916905585156126095784546125b9906001600160a01b0316336001600160681b038416611bac565b806001600160681b0316336001600160a01b0316887f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace600060405161260091815260200190565b60405180910390a45b60018581015460408051602481018b9052336044820152606481019390935260006084840181905260a48085018290528251808603909101815260c49094019091526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16635d3c15f760e11b17815283516001600160a01b039093169392829182865af150505050505050505050565b60408051808201909152600080825260208201526003830154600160981b900465ffffffffffff166000036126e4575060408051808201909152600080825260208201526127b3565b6001830160048501831561277a57600087815260026020526040812061270a90866136a7565b90506000806127198984613757565b915091506040518060400160405280866000015484876000015461273d91906141c9565b61274791906142d6565b8152602001866001015483876001015461276191906141c9565b61276b91906142d6565b815250955050505050506127b3565b60408051808201909152825482548291612793916142d6565b8152602001836001015483600101546127ac91906142d6565b9052925050505b949350505050565b6003810154600090600160981b900465ffffffffffff1680156128675760038301546020850151600160801b916127fd916001600160981b0390911690614254565b845460208701516001600160681b039091169061281b908590614254565b875161282791906142d6565b6128319190614254565b61283b91906141c9565b6128459190614273565b600484015461286291906bffffffffffffffffffffffff166141c9565b6127b3565b6000949350505050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806129165760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610cc1565b5050505050565b6000828152600760209081526040808320338452600681019092528220612943826120eb565b60028201546001600160a01b03161561296f5760405163c1ab6dc160e01b815260040160405180910390fd5b61297985836130b0565b5061298485856137ba565b61298f858383613116565b6004820180546bffffffffffffffffffffffff19169055925060008390036129ca576040516324d0659d60e11b815260040160405180910390fd5b805460038201546001600160681b03909116906129f690600160981b900465ffffffffffff16426142d6565b612a009082614254565b600383018054600090612a1d9084906001600160981b03166142ed565b92506101000a8154816001600160981b0302191690836001600160981b03160217905550612a9a838360038101805465ffffffffffff4216600160981b027fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff90911617905560048201546001820155600590910154600290910155565b6000336001600160a01b0316877f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace87604051612ad891815260200190565b60405180910390a460018301546001600160a01b03168015612b6a57604051635d3c15f760e11b8152600481018890523360248201526000604482015260648101869052608481018390526001600160a01b0382169063ba782bee9060a401600060405180830381600087803b158015612b5157600080fd5b505af1158015612b65573d6000803e3d6000fd5b505050505b5050505092915050565b80546000906001600160981b036d010000000000000000000000000082041690612ba7906001600160681b031642614254565b610b3391906142d6565b6000610ed88383613888565b6000610b33825490565b6009805460009182612bd88361430f565b9091555060008181526007602052604090209091506001600160a01b0384161580612c1457506000836002811115612c1257612c12613f5e565b145b15612c4b576040517f4a0bd98600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80546001600160a01b03851673ffffffffffffffffffffffffffffffffffffffff19821681178355849183917fffffffffffffffffffffff0000000000000000000000000000000000000000009091161774010000000000000000000000000000000000000000836002811115612cc457612cc4613f5e565b02179055506001836002811115612cdd57612cdd613f5e565b03612f1e57836001600160a01b03163b600003612d0d5760405163c1ab6dc160e01b815260040160405180910390fd5b600a546040517fedcc0f900000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529091169063edcc0f90906024016040805180830381865afa925050508015612d8b575060408051601f3d908101601f19168201909252612d8891810190614329565b60015b15612f1e576040517fe6a439050000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528281166024830152808816917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a4390590604401602060405180830381865afa158015612e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e419190614358565b6001600160a01b031603612f1b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603612eb75760028301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316179055612f1b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603612f1b5760028301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384161790555b50505b6040516001600160a01b0385169083907f3d82013e0d368d05bfb8b953d35bffd6eec15520773228de41146f306a241aec90600090a350505050565b6000818152600183016020526040812054612fa157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b33565b506000610b33565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610cd457612fda816138b2565b612fe58360206138c4565b604051602001612ff69291906143a1565b60408051601f198184030181529082905262461bcd60e51b8252610cc191600401614422565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610cd4576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ed8836001600160a01b038416613aed565b6000806130bc84611b5e565b90506000806130cb8584613757565b915091506000856004019050828160000160008282546130eb91906141c9565b925050819055508181600101600082825461310691906141c9565b9091555093979650505050505050565b600080613126858585600061269b565b905061313281846127bb565b95945050505050565b825460028401546000916001600160a01b03908116911680613189576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156131ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ee9190614478565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000836001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161061326857816132598985614254565b6132639190614273565b61327d565b826132738984614254565b61327d9190614273565b905086602001518111156132bd576040517f4c9b2c5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86518110156132f8576040517f4c9b2c5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415613412577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146133505760405163c1ab6dc160e01b815260040160405180910390fd5b8660200151341461338d576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156133c857600080fd5b505af11580156133dc573d6000803e3d6000fd5b506133f7935050506001600160a01b03861690508683611bac565b3481810390821461340c5761340c3382613be0565b50613427565b6134276001600160a01b038516338784612871565b61345b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868a611bac565b6040517f6a6278420000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03861690636a627842906024016020604051808303816000875af11580156134ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134de91906144bf565b9998505050505050505050565b6003820154600160c81b900466ffffffffffffff1615613537576040517f0f2e5b6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600860209081526040808320338452909152812061355990612bbd565b90505b8015610c4257600082815260086020908152604080832033845290915281206000199092019161358c9083612bb1565b600084815260086020908152604080832033845290915290209091506135b29082613c3b565b15613619576000818152600760209081526040808320338452600601909152902060030180546019906135f490600160c81b900466ffffffffffffff166144d8565b91906101000a81548166ffffffffffffff021916908366ffffffffffffff1602179055505b5061355c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561366f57602002820191906000526020600020905b81548152602001906001019080831161365b575b50505050509050919050565b600080613686613c47565b60045463ffffffff600160901b909104166401000000009091020492915050565b600080826136c9576003546fffffffffffffffffffffffffffffffff166136e8565b6136d161367b565b6003546fffffffffffffffffffffffffffffffff16015b84546fffffffffffffffffffffffffffffffff9182169250600160801b81049091168203906401000000009063ffffffff16820286546bffffffffffffffffffffffff64010000000090910481169290910491909101935083111561374f5761374f614295565b505092915050565b600080600061376885600301612b74565b905080156137b25780600160801b6137804287614254565b61378a9190614254565b6137949190614273565b9250806137a5600160801b86614254565b6137af9190614273565b91505b509250929050565b600082815260086020908152604080832033845290915290206137dd9082613cab565b156138445760008181526007602090815260408083203384526006019091529020600301805460199061381f90600160c81b900466ffffffffffffff166144fb565b91906101000a81548166ffffffffffffff021916908366ffffffffffffff1602179055505b60008281526008602090815260408083203384529091529020600a9061386990612bbd565b1115610cd457604051632d0483c560e21b815260040160405180910390fd5b600082600001828154811061389f5761389f614056565b9060005260206000200154905092915050565b6060610b336001600160a01b03831660145b606060006138d3836002614254565b6138de9060026141c9565b67ffffffffffffffff8111156138f6576138f66141e1565b6040519080825280601f01601f191660200182016040528015613920576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061395757613957614056565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106139ba576139ba614056565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006139f6846002614254565b613a019060016141c9565b90505b6001811115613a9e577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613a4257613a42614056565b1a60f81b828281518110613a5857613a58614056565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93613a9781614521565b9050613a04565b508315610ed85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610cc1565b60008181526001830160205260408120548015613bd6576000613b116001836142d6565b8554909150600090613b25906001906142d6565b9050818114613b8a576000866000018281548110613b4557613b45614056565b9060005260206000200154905080876000018481548110613b6857613b68614056565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613b9b57613b9b614538565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b33565b6000915050610b33565b600080600080600085875af1905080610c425760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610cc1565b6000610ed88383613aed565b60045460009065ffffffffffff1681428210613c635742613c65565b815b600354909150600160801b900465ffffffffffff1680821115613ca157600354600160b01b900469ffffffffffffffffffff1691030292915050565b6000935050505090565b6000610ed88383612f5a565b604080516101008101909152600060c0820181815260e083019190915281908152602001613cf8604051806040016040528060008152602001600081525090565b8152600060208201819052604082018190526060820181905260809091015290565b600060208284031215613d2c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610ed857600080fd5b600060208284031215613d6e57600080fd5b5035919050565b6001600160a01b03811681146118a757600080fd5b60008060408385031215613d9d57600080fd5b823591506020830135613daf81613d75565b809150509250929050565b600080600060608486031215613dcf57600080fd5b833592506020840135613de181613d75565b929592945050506040919091013590565b60008060408385031215613e0557600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015613e4c57835183529284019291840191600101613e30565b50909695505050505050565b60008083601f840112613e6a57600080fd5b50813567ffffffffffffffff811115613e8257600080fd5b6020830191508360208260051b8501011115613e9d57600080fd5b9250929050565b60008060008060408587031215613eba57600080fd5b843567ffffffffffffffff80821115613ed257600080fd5b613ede88838901613e58565b90965094506020870135915080821115613ef757600080fd5b50613f0487828801613e58565b95989497509550505050565b600060408284031215613f2257600080fd5b50919050565b600080600060808486031215613f3d57600080fd5b8335925060208401359150613f558560408601613f10565b90509250925092565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03878116825261010082019060038810613fa557634e487b7160e01b600052602160045260246000fd5b602083810198909852958616604083015293909416606085015281516001600160681b03166080850152908401516001600160981b031660a0840152805160c08401529092015160e090910152919050565b6000806040838503121561400a57600080fd5b823561401581613d75565b9150602083013560038110613daf57600080fd5b6000806060838503121561403c57600080fd5b8235915061404d8460208501613f10565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff811681146118a757600080fd5b60006020828403121561409057600080fd5b8135610ed88161406c565b634e487b7160e01b600052601160045260246000fd5b6000808312837f8000000000000000000000000000000000000000000000000000000000000000018312811516156140eb576140eb61409b565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831381161561411f5761411f61409b565b50500390565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561415f5761415f61409b565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156141935761419361409b565b50500190565b60006bffffffffffffffffffffffff8083168185168083038211156141c0576141c061409b565b01949350505050565b600082198211156141dc576141dc61409b565b500190565b634e487b7160e01b600052604160045260246000fd5b60006040828403121561420957600080fd5b6040516040810181811067ffffffffffffffff8211171561423a57634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b600081600019048311821515161561426e5761426e61409b565b500290565b60008261429057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052600160045260246000fd5b60006fffffffffffffffffffffffffffffffff8083168185168083038211156141c0576141c061409b565b6000828210156142e8576142e861409b565b500390565b60006001600160981b038083168185168083038211156141c0576141c061409b565b600060001982036143225761432261409b565b5060010190565b6000806040838503121561433c57600080fd5b825161434781613d75565b6020840151909250613daf81613d75565b60006020828403121561436a57600080fd5b8151610ed881613d75565b60005b83811015614390578181015183820152602001614378565b83811115611c4b5750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516143d9816017850160208801614375565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614416816028840160208801614375565b01602801949350505050565b6020815260008251806020840152614441816040850160208701614375565b601f01601f19169190910160400192915050565b80516dffffffffffffffffffffffffffff8116811461447357600080fd5b919050565b60008060006060848603121561448d57600080fd5b61449684614455565b92506144a460208501614455565b915060408401516144b48161406c565b809150509250925092565b6000602082840312156144d157600080fd5b5051919050565b600066ffffffffffffff8216806144f1576144f161409b565b6000190192915050565b600066ffffffffffffff8083168181036145175761451761409b565b6001019392505050565b6000816145305761453061409b565b506000190190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220c54ca783d2ac4b2f2501d59ab077dc4f5ec2d943421f01e891bbcadf49fa934f64736f6c634300080f0033608060405234801561001057600080fd5b506101fa806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063edcc0f9014610030575b600080fd5b61004361003e366004610183565b610074565b6040805173ffffffffffffffffffffffffffffffffffffffff93841681529290911660208301520160405180910390f35b6000808273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e691906101a7565b8373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015591906101a7565b91509150915091565b73ffffffffffffffffffffffffffffffffffffffff8116811461018057600080fd5b50565b60006020828403121561019557600080fd5b81356101a08161015e565b9392505050565b6000602082840312156101b957600080fd5b81516101a08161015e56fea264697066735822122014fa7d9d3ee9fa5ab29bc69556bfcd9bededc44946d2ae245867adab447317f464736f6c634300080f0033","opcodes":"PUSH1 0xE0 PUSH1 0x40 MSTORE PUSH3 0x15180 PUSH1 0x5 SSTORE PUSH1 0x1 PUSH1 0x6 SSTORE PUSH1 0x0 PUSH1 0x9 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4FA1 CODESIZE SUB DUP1 PUSH3 0x4FA1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x45 SWAP2 PUSH3 0x681 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x6F JUMPI PUSH1 0x40 MLOAD PUSH4 0x2505ECC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH3 0x89 PUSH1 0x0 DUP3 PUSH3 0x24E JUMP JUMPDEST PUSH3 0xB5 PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB DUP3 PUSH3 0x24E JUMP JUMPDEST PUSH3 0xE1 PUSH32 0x6077685936C8169D09204A1D97DB12E41713588C38E1D29A61867D3DCEE98AFF DUP3 PUSH3 0x24E JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 DUP1 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH32 0xAC33FF75C19E70FE83507DB0D683FD3465C996598DC972688B7ACE676C89077B DUP1 SLOAD PUSH2 0x3E8 PUSH4 0xFFFFFFFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x90 SHL NOT AND PUSH1 0x7D PUSH1 0x93 SHL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP4 DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 DUP5 AND SWAP1 PUSH4 0xE6A43905 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x187 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x1AD SWAP2 SWAP1 PUSH3 0x6E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x1D7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2505ECC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND PUSH1 0xA0 MSTORE DUP3 AND PUSH1 0xC0 MSTORE PUSH1 0x40 MLOAD PUSH3 0x1F8 SWAP1 PUSH3 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x243 DUP2 PUSH1 0x1 PUSH3 0x291 JUMP JUMPDEST POP POP POP POP POP PUSH3 0x78D JUMP JUMPDEST PUSH3 0x265 DUP3 DUP3 PUSH3 0x547 PUSH1 0x20 SHL PUSH3 0x1920 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH3 0x28C SWAP2 DUP4 SWAP1 PUSH3 0x19BE PUSH3 0x5E8 DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH3 0x2A4 DUP4 PUSH3 0x710 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 PUSH3 0x2E4 JUMPI POP PUSH1 0x0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x2E2 JUMPI PUSH3 0x2E2 PUSH3 0x738 JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH3 0x303 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2505ECC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP3 AND DUP2 OR DUP4 SSTORE DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP2 AND OR PUSH1 0x1 PUSH1 0xA0 SHL DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x349 JUMPI PUSH3 0x349 PUSH3 0x738 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x365 JUMPI PUSH3 0x365 PUSH3 0x738 JUMP JUMPDEST SUB PUSH3 0x50B JUMPI DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH3 0x397 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xEDCC0F9 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xEDCC0F90 SWAP1 PUSH1 0x24 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH3 0x3FF JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH3 0x3FC SWAP2 DUP2 ADD SWAP1 PUSH3 0x74E JUMP JUMPDEST PUSH1 0x1 JUMPDEST ISZERO PUSH3 0x50B JUMPI PUSH1 0xA0 MLOAD PUSH1 0x40 MLOAD PUSH4 0xE6A43905 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP9 DUP2 AND SWAP3 AND SWAP1 PUSH4 0xE6A43905 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x45A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x480 SWAP2 SWAP1 PUSH3 0x6E9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH3 0x508 JUMPI PUSH1 0x80 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH3 0x4CE JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH3 0x508 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH3 0x508 JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE JUMPDEST POP POP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 DUP4 SWAP1 PUSH32 0x3D82013E0D368D05BFB8B953D35BFFD6EEC15520773228DE41146F306A241AEC SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x5E4 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x5A3 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5FF DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0x608 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x651 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x602 JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x602 JUMP JUMPDEST PUSH2 0x21A DUP1 PUSH3 0x4D87 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x67E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH3 0x6A5 DUP2 PUSH3 0x668 JUMP JUMPDEST PUSH1 0x20 DUP7 ADD MLOAD SWAP1 SWAP5 POP PUSH3 0x6B8 DUP2 PUSH3 0x668 JUMP JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x6CB DUP2 PUSH3 0x668 JUMP JUMPDEST PUSH1 0x60 DUP7 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x6DE DUP2 PUSH3 0x668 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP1 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x6FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x709 DUP2 PUSH3 0x668 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x731 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x76F DUP2 PUSH3 0x668 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x782 DUP2 PUSH3 0x668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x4584 PUSH3 0x803 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x369 ADD MSTORE PUSH2 0x3300 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x995 ADD MSTORE PUSH2 0x2DD4 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x9E9 ADD MSTORE DUP2 DUP2 PUSH2 0xD5A ADD MSTORE DUP2 DUP2 PUSH2 0x1385 ADD MSTORE DUP2 DUP2 PUSH2 0x157B ADD MSTORE DUP2 DUP2 PUSH2 0x22A4 ADD MSTORE DUP2 DUP2 PUSH2 0x2E51 ADD MSTORE DUP2 DUP2 PUSH2 0x2EB9 ADD MSTORE DUP2 DUP2 PUSH2 0x3221 ADD MSTORE PUSH2 0x3434 ADD MSTORE PUSH2 0x4584 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B0A47EE GT PUSH2 0x179 JUMPI DUP1 PUSH4 0xC0463711 GT PUSH2 0xD6 JUMPI DUP1 PUSH4 0xD61F0680 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xEBE2B12B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xEBE2B12B EQ PUSH2 0xA7E JUMPI DUP1 PUSH4 0xF2D1E1CD EQ PUSH2 0xA9D JUMPI DUP1 PUSH4 0xF851844B EQ PUSH2 0xABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD61F0680 EQ PUSH2 0xA2B JUMPI DUP1 PUSH4 0xD97F8ED6 EQ PUSH2 0xA4B JUMPI DUP1 PUSH4 0xDDC63262 EQ PUSH2 0xA5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA15C873 GT PUSH2 0xBB JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x9B7 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0x9D7 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0xA0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC0463711 EQ PUSH2 0x946 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x983 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x12D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x112 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x84B JUMPI DUP1 PUSH4 0xAC4AFA38 EQ PUSH2 0x860 JUMPI DUP1 PUSH4 0xB470AADE EQ PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x7CE JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x80754B28 GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x80754B28 EQ PUSH2 0x77B JUMPI DUP1 PUSH4 0x82F084D3 EQ PUSH2 0x78E JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x7AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B0A47EE EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0x7C2D6E01 EQ PUSH2 0x75B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x43D5599E GT PUSH2 0x232 JUMPI DUP1 PUSH4 0x562D12D7 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x6BC9F703 GT PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x6BC9F703 EQ PUSH2 0x660 JUMPI DUP1 PUSH4 0x74DE4EC4 EQ PUSH2 0x706 JUMPI DUP1 PUSH4 0x7B0472F0 EQ PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x562D12D7 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0x59B02EB3 EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0x5FAA65FF EQ PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x441A3E70 GT PUSH2 0x217 JUMPI DUP1 PUSH4 0x441A3E70 EQ PUSH2 0x59E JUMPI DUP1 PUSH4 0x47DF36C0 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0x54F8C475 EQ PUSH2 0x5EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x43D5599E EQ PUSH2 0x55E JUMPI DUP1 PUSH4 0x43DE3207 EQ PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2716AE66 GT PUSH2 0x289 JUMPI DUP1 PUSH4 0x3228DD59 GT PUSH2 0x26E JUMPI DUP1 PUSH4 0x3228DD59 EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x53E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2716AE66 EQ PUSH2 0x49D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x17FCB39B GT PUSH2 0x2BA JUMPI DUP1 PUSH4 0x17FCB39B EQ PUSH2 0x357 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0x257664A4 EQ PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x98B8858 EQ PUSH2 0x30B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F6 PUSH2 0x2F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1A JUMP JUMPDEST PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x33A SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x3BE CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x401 PUSH2 0x3FC CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xB39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP2 SWAP1 DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP2 ADD PUSH1 0x20 DUP4 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x40 DUP6 ADD MSTORE SWAP1 DUP2 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH1 0x40 DUP5 ADD MLOAD AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 DUP5 ADD MLOAD AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH7 0xFFFFFFFFFFFFFF PUSH1 0x80 DUP5 ADD MLOAD AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xA0 DUP5 ADD MLOAD AND PUSH1 0xE0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x3D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xC1D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x4FD SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x539 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xC47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x559 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0xCD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x579 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DBA JUMP JUMPDEST PUSH2 0xDCD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x599 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xDF9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0xE98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5DE PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xEAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP2 SWAP1 PUSH2 0x3E14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EA4 JUMP JUMPDEST PUSH2 0xEDF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x626 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0x1184 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x646 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x12AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C5 PUSH2 0x67B CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH5 0x100000000 DUP2 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP5 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x712 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x721 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x13E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x741 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0x15E4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x1610 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x776 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x1655 JUMP JUMPDEST PUSH2 0x4D2 PUSH2 0x789 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F28 JUMP JUMPDEST PUSH2 0x172B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x7A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0x176D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH2 0x7C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0x17E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F6 PUSH2 0x7E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x836 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x91E PUSH2 0x87B CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD DUP6 MLOAD DUP1 DUP8 ADD DUP8 MSTORE PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP2 AND DUP3 MSTORE PUSH14 0x100000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND DUP2 DUP8 ADD MSTORE DUP7 MLOAD DUP1 DUP9 ADD SWAP1 SWAP8 MSTORE PUSH1 0x4 DUP6 ADD SLOAD DUP8 MSTORE PUSH1 0x5 SWAP1 SWAP5 ADD SLOAD SWAP5 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP6 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP4 DIV PUSH1 0xFF AND SWAP5 SWAP2 DUP2 AND SWAP4 SWAP2 AND SWAP2 DUP7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x96C SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x9D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x17FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xA26 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0x1816 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xA46 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FF7 JUMP JUMPDEST PUSH2 0x183B JUMP JUMPDEST PUSH2 0x4D2 PUSH2 0xA59 CALLDATASIZE PUSH1 0x4 PUSH2 0x4029 JUMP JUMPDEST PUSH2 0x186F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xA79 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x96C SWAP1 PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0xAB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x18AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xAD8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x1900 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB33 JUMPI POP PUSH2 0xB33 DUP3 PUSH2 0x19D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB41 PUSH2 0x3CB7 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x6 ADD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP2 AND PUSH1 0xC0 DUP4 ADD SWAP1 DUP2 MSTORE PUSH14 0x100000000000000000000000000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB SWAP1 DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE SWAP1 DUP3 MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE PUSH1 0x1 DUP5 ADD SLOAD DUP2 MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP2 DUP7 ADD MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP3 ADD SLOAD SWAP3 DUP4 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x98 SHL DUP3 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 SWAP2 DIV PUSH7 0xFFFFFFFFFFFFFF AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x4 ADD SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC38 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 PUSH2 0x1A74 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCD4 DUP3 DUP3 PUSH2 0x1A96 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCE2 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xCF9 DUP2 PUSH2 0x1AF6 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD3C JUMPI PUSH1 0x40 MLOAD PUSH32 0x38C5856200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD45 DUP4 PUSH2 0x1B5E JUMP JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0xD81 JUMPI PUSH2 0xD81 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP5 PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE DUP6 PUSH1 0x40 MLOAD PUSH2 0xDBF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDD5 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 DUP4 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1C51 JUMP JUMPDEST PUSH32 0x6077685936C8169D09204A1D97DB12E41713588C38E1D29A61867D3DCEE98AFF PUSH2 0xE23 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE3A DUP2 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD DUP6 SWAP1 PUSH32 0x865FDCFD963A9E21F0DBB101FECEE79DDA3ECC602D0FE55E29268C843F2A3B7C SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0xEA0 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0xCD4 DUP3 DUP3 PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x60 SWAP1 PUSH2 0xED8 SWAP1 PUSH2 0x23BC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6077685936C8169D09204A1D97DB12E41713588C38E1D29A61867D3DCEE98AFF PUSH2 0xF09 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xF11 PUSH2 0x23C9 JUMP JUMPDEST DUP4 DUP3 DUP2 EQ PUSH2 0xF4B JUMPI PUSH1 0x40 MLOAD PUSH32 0x568EFCE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF56 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP10 DUP10 DUP4 DUP2 DUP2 LT PUSH2 0xF78 JUMPI PUSH2 0xF78 PUSH2 0x4056 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0xF95 JUMPI PUSH2 0xF95 PUSH2 0x4056 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xFAA SWAP2 SWAP1 PUSH2 0x407E JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 POP DUP5 DUP3 LT PUSH2 0xFD2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH4 0xFFFFFFFF AND DUP1 DUP4 SUB PUSH2 0x1008 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1012 DUP2 DUP5 PUSH2 0x40B1 JUMP JUMPDEST PUSH2 0x101C SWAP1 DUP8 PUSH2 0x4125 JUMP JUMPDEST SWAP6 POP PUSH2 0x1027 DUP3 PUSH2 0x2452 JUMP JUMPDEST DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 AND PUSH5 0x100000000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 AND OR PUSH4 0xFFFFFFFF DUP5 AND OR DUP3 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 SWAP1 PUSH32 0x645B3DC30FBDCC9749F62868AE25C191FF0090B1C21905C2793EC7159856E438 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP5 PUSH1 0x1 ADD SWAP5 POP POP POP POP POP PUSH2 0xF5C JUMP JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x10F6 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x4125 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SGT PUSH2 0x1119 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT ISZERO PUSH2 0x113E JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x118C PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x4920616D20726561647920746F206C6F73652065766572797468696E6720696E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x207468697320706F6F6C2E204C6574206D6520676F2E00000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x56 DUP3 ADD MSTORE PUSH1 0x6A ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 EQ PUSH2 0x124C JUMPI PUSH1 0x40 MLOAD PUSH32 0x38C5856200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1257 DUP3 PUSH1 0x0 PUSH2 0x248C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP3 PUSH2 0x1294 DUP7 DUP5 DUP5 PUSH1 0x1 PUSH2 0x269B JUMP JUMPDEST SWAP1 POP PUSH2 0x12A0 DUP2 DUP4 PUSH2 0x27BB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP LT PUSH2 0x12F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0xECDD1C2900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x4 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000 DUP2 AND PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 SWAP4 DIV PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND TIMESTAMP PUSH6 0xFFFFFFFFFFFF DUP1 DUP5 AND DUP3 SWAP1 SUB SWAP3 SWAP1 SWAP3 MUL PUSH7 0x1000000000000 SWAP4 DUP5 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND DUP3 SWAP1 SUB AND SWAP1 SWAP4 MUL PUSH6 0xFFFFFFFFFFFF NOT AND SWAP5 SWAP1 SWAP5 OR SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE PUSH2 0x13B4 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP4 PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xAC02D07D013AE7C7E3EE940F8DF0877C2AB1103BF87AB258CE31665F7111F092 SWAP1 PUSH1 0x0 SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH2 0x140B DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0x1413 PUSH2 0x23C9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x145C JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x6 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x4199 JUMP JUMPDEST DUP3 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH2 0x100 SWAP4 SWAP1 SWAP4 EXP SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP3 MUL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE POP PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP LT PUSH2 0x14CA JUMPI POP DUP1 DUP4 DIV PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND SUB PUSH10 0xFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 SWAP3 DIV SWAP2 SWAP1 SWAP2 AND MUL DUP4 ADD DUP2 SWAP1 DIV JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x151C JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xB0 SHL PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP5 AND MUL OR SWAP1 SSTORE PUSH2 0x1558 DUP3 TIMESTAMP PUSH2 0x41C9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x15AB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER ADDRESS DUP8 PUSH2 0x2871 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xDE88A922E0D3B88B24E9623EFEB464919C6BF9F66857A65E2BFCF2CE87A9433D SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0x15EC PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0xCD4 DUP3 CALLER DUP4 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1C51 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT PUSH2 0x1641 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1644 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1660 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH1 0x4 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND GT ISZERO PUSH2 0x16A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x85DE62500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x10001 DUP3 LT ISZERO PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x16EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD6EB9CF4D6E2902587C57E3163AAAFDB46E3B3F2086BDFA75C790228930A9D7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1733 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH1 0x0 PUSH2 0x1744 DUP5 DUP5 PUSH2 0x291D JUMP JUMPDEST SWAP1 POP PUSH2 0x1762 DUP4 CALLER DUP4 PUSH1 0x2 PUSH2 0x175D CALLDATASIZE DUP9 SWAP1 SUB DUP9 ADD DUP9 PUSH2 0x41F7 JUMP JUMPDEST PUSH2 0x1C51 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x6 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 PUSH2 0x1788 PUSH1 0x3 DUP4 ADD PUSH2 0x2B74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH2 0x17AF SWAP1 PUSH2 0x2B74 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x17DB JUMPI DUP2 DUP2 PUSH2 0x17C2 DUP9 PUSH2 0x18AA JUMP JUMPDEST PUSH2 0x17CC SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x17D6 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST POP PUSH1 0x0 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xED8 SWAP1 DUP4 PUSH2 0x2BB1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xB33 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x1831 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 PUSH2 0x1A96 JUMP JUMPDEST PUSH32 0x6077685936C8169D09204A1D97DB12E41713588C38E1D29A61867D3DCEE98AFF PUSH2 0x1865 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 PUSH2 0x2BC7 JUMP JUMPDEST PUSH2 0x1877 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH2 0x1257 DUP3 CALLER PUSH1 0x0 PUSH1 0x1 PUSH2 0x175D CALLDATASIZE DUP8 SWAP1 SUB DUP8 ADD DUP8 PUSH2 0x41F7 JUMP JUMPDEST PUSH2 0x189C PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x18A7 DUP2 PUSH1 0x0 PUSH2 0x20F2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP1 ISZERO PUSH2 0x18F7 JUMPI PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 PUSH2 0x18DE PUSH2 0x1610 JUMP JUMPDEST PUSH2 0x18E8 SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x18F2 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1908 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH2 0x1918 DUP2 PUSH1 0x1 PUSH2 0x248C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCD4 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x197A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x2F5A JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB33 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0xB33 JUMP JUMPDEST PUSH2 0x18A7 DUP2 CALLER PUSH2 0x2FA9 JUMP JUMPDEST PUSH2 0x1A7E DUP3 DUP3 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC42 SWAP1 DUP3 PUSH2 0x19BE JUMP JUMPDEST PUSH2 0x1AA0 DUP3 DUP3 PUSH2 0x301C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC42 SWAP1 DUP3 PUSH2 0x309B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SUB PUSH2 0x1AF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xAB143C0600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 JUMPDEST DUP2 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH2 0x1B27 PUSH2 0x3F5E JUMP JUMPDEST EQ PUSH2 0x18A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB968846100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B68 PUSH2 0x23C9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1B7F DUP2 PUSH2 0x2452 JUMP JUMPDEST DUP2 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFF AND SWAP1 SWAP2 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP4 PUSH1 0x4 DUP3 ADD MSTORE DUP3 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 PUSH1 0x44 DUP4 PUSH1 0x0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1F RETURNDATASIZE GT PUSH1 0x1 PUSH1 0x0 MLOAD EQ AND OR AND SWAP2 POP POP DUP1 PUSH2 0x1C4B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5452414E534645525F4641494C45440000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x1C81 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND DUP1 ISZERO PUSH2 0x1CA2 JUMPI PUSH2 0x1CA0 DUP10 DUP6 PUSH2 0x30B0 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x1CAF DUP11 DUP7 DUP7 PUSH2 0x3116 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1CC6 JUMPI PUSH2 0x1CC6 PUSH2 0x3F5E JUMP JUMPDEST SUB PUSH2 0x1D00 JUMPI POP PUSH1 0x4 DUP5 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x0 DUP8 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x2 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1D14 JUMPI PUSH2 0x1D14 PUSH2 0x3F5E JUMP JUMPDEST SUB PUSH2 0x1D5C JUMPI PUSH2 0x1D24 DUP7 DUP11 DUP10 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 SWAP8 POP PUSH1 0x0 SWAP1 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x1 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1D70 JUMPI PUSH2 0x1D70 PUSH2 0x3F5E JUMP JUMPDEST EQ PUSH2 0x1D7D JUMPI PUSH2 0x1D7D PUSH2 0x4295 JUMP JUMPDEST DUP9 ISZERO PUSH2 0x1D8B JUMPI PUSH2 0x1D8B PUSH2 0x4295 JUMP JUMPDEST PUSH2 0x1D96 DUP7 DUP4 DUP10 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE SWAP9 POP JUMPDEST DUP9 PUSH1 0x0 SUB PUSH2 0x1DD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1DDE DUP12 DUP7 PUSH2 0x41C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP2 GT ISZERO PUSH2 0x1E21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP12 TIMESTAMP MUL SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD PUSH1 0xD DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP2 DUP8 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP9 PUSH1 0x0 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND SWAP1 POP DUP14 DUP2 ADD SWAP5 POP DUP5 DUP3 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP3 DUP3 PUSH1 0x0 ADD PUSH1 0xD DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP10 PUSH1 0x3 ADD PUSH1 0x13 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP SUB DUP2 MUL DUP11 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH2 0x1FEE DUP8 DUP8 PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF TIMESTAMP AND PUSH1 0x1 PUSH1 0x98 SHL MUL PUSH32 0xFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x5 SWAP1 SWAP2 ADD SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST DUP2 ISZERO PUSH2 0x200B JUMPI DUP7 SLOAD PUSH2 0x200B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER ADDRESS DUP6 PUSH2 0x2871 JUMP JUMPDEST DUP10 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP14 PUSH32 0x17700CEB1658B18206F427C1578048E87504106B14EC69E9B4586D9A95174A32 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2048 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 DUP8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x20DC JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND SWAP1 PUSH4 0xBA782BEE SWAP1 PUSH1 0xA4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1AF9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x2119 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH2 0x2123 DUP5 DUP4 PUSH2 0x30B0 JUMP JUMPDEST POP PUSH2 0x212E DUP2 DUP6 PUSH2 0x34EB JUMP JUMPDEST DUP1 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND DUP1 DUP6 GT ISZERO PUSH2 0x2175 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2182 DUP8 DUP7 DUP7 PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE SWAP1 POP DUP6 ISZERO DUP1 ISZERO PUSH2 0x21A7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x21C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP6 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP1 DUP3 AND DUP11 SWAP1 SUB DUP2 AND PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP3 AND DUP3 OR DUP1 DUP5 SSTORE DUP8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH14 0x100000000000000000000000000 SWAP2 DUP3 SWAP1 DIV DUP2 AND SWAP3 DUP3 SWAP1 DIV DUP2 AND TIMESTAMP DUP15 DUP12 SUB DUP2 DUP2 MUL SWAP3 DUP4 ADD SWAP6 SWAP1 SWAP6 SUB DUP4 AND DUP5 MUL SWAP1 SWAP7 OR SWAP1 SWAP7 SSTORE SWAP5 SWAP1 SWAP5 AND SWAP1 SWAP4 MUL SWAP1 DUP4 AND OR DUP7 SSTORE SWAP2 DUP7 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x98 SHL MUL PUSH32 0xFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP7 ADD SLOAD PUSH1 0x1 DUP7 ADD SSTORE PUSH1 0x5 DUP7 ADD SLOAD PUSH1 0x2 DUP7 ADD SSTORE DUP2 ISZERO PUSH2 0x22CB JUMPI PUSH2 0x22CB PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP5 PUSH2 0x1BAC JUMP JUMPDEST DUP7 ISZERO PUSH2 0x22E7 JUMPI DUP6 SLOAD PUSH2 0x22E7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP10 PUSH2 0x1BAC JUMP JUMPDEST DUP7 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE DUP6 PUSH1 0x40 MLOAD PUSH2 0x2324 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 DUP7 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x23B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x84 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBA782BEE SWAP1 PUSH1 0xA4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x239D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xED8 DUP4 PUSH2 0x361F JUMP JUMPDEST PUSH2 0x23D1 PUSH2 0x367B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x23F5 SWAP1 DUP5 SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x42AB JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x3 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2460 DUP4 PUSH1 0x0 PUSH2 0x36A7 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP5 SLOAD PUSH1 0x1 PUSH1 0x80 SHL PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND MUL SWAP2 AND OR SWAP1 SWAP4 SSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x24B3 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH2 0x24BD DUP2 DUP6 PUSH2 0x34EB JUMP JUMPDEST DUP1 SLOAD PUSH1 0x3 DUP4 ADD SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND PUSH1 0x0 DUP2 SWAP1 SUB PUSH2 0x24F1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP1 DUP3 AND DUP4 SWAP1 SUB AND PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP2 AND DUP2 OR DUP1 DUP6 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH14 0x100000000000000000000000000 SWAP2 DUP3 SWAP1 DIV DUP2 AND SWAP3 DUP3 SWAP1 DIV DUP2 AND SWAP3 SWAP1 SWAP3 SUB SWAP1 SWAP2 AND MUL OR DUP4 SSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 ADD SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x4 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE DUP6 ISZERO PUSH2 0x2609 JUMPI DUP5 SLOAD PUSH2 0x25B9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP5 AND PUSH2 0x1BAC JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x2600 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST PUSH1 0x1 DUP6 DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE CALLER PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x0 PUSH1 0x84 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xA4 DUP1 DUP6 ADD DUP3 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC4 SWAP1 SWAP5 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP4 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL OR DUP2 MSTORE DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP4 SWAP3 DUP3 SWAP2 DUP3 DUP7 GAS CALL POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0x98 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x26E4 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x27B3 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD PUSH1 0x4 DUP6 ADD DUP4 ISZERO PUSH2 0x277A JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x270A SWAP1 DUP7 PUSH2 0x36A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2719 DUP10 DUP5 PUSH2 0x3757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH1 0x0 ADD SLOAD DUP5 DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x273D SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x2747 SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 ADD SLOAD DUP4 DUP8 PUSH1 0x1 ADD SLOAD PUSH2 0x2761 SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x276B SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST DUP2 MSTORE POP SWAP6 POP POP POP POP POP POP PUSH2 0x27B3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP3 SLOAD DUP3 SLOAD DUP3 SWAP2 PUSH2 0x2793 SWAP2 PUSH2 0x42D6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x1 ADD SLOAD PUSH2 0x27AC SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST SWAP1 MSTORE SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x98 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP1 ISZERO PUSH2 0x2867 JUMPI PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP2 PUSH2 0x27FD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x4254 JUMP JUMPDEST DUP5 SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x281B SWAP1 DUP6 SWAP1 PUSH2 0x4254 JUMP JUMPDEST DUP8 MLOAD PUSH2 0x2827 SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST PUSH2 0x2831 SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x283B SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x2845 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH1 0x4 DUP5 ADD SLOAD PUSH2 0x2862 SWAP2 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x27B3 JUMP JUMPDEST PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP5 PUSH1 0x4 DUP3 ADD MSTORE DUP4 PUSH1 0x24 DUP3 ADD MSTORE DUP3 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 PUSH1 0x64 DUP4 PUSH1 0x0 DUP11 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1F RETURNDATASIZE GT PUSH1 0x1 PUSH1 0x0 MLOAD EQ AND OR AND SWAP2 POP POP DUP1 PUSH2 0x2916 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5452414E534645525F46524F4D5F4641494C4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 KECCAK256 PUSH2 0x2943 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x296F JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2979 DUP6 DUP4 PUSH2 0x30B0 JUMP JUMPDEST POP PUSH2 0x2984 DUP6 DUP6 PUSH2 0x37BA JUMP JUMPDEST PUSH2 0x298F DUP6 DUP4 DUP4 PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE SWAP3 POP PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0x29CA JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x29F6 SWAP1 PUSH1 0x1 PUSH1 0x98 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP PUSH2 0x42D6 JUMP JUMPDEST PUSH2 0x2A00 SWAP1 DUP3 PUSH2 0x4254 JUMP JUMPDEST PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2A1D SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND PUSH2 0x42ED JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x2A9A DUP4 DUP4 PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF TIMESTAMP AND PUSH1 0x1 PUSH1 0x98 SHL MUL PUSH32 0xFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x5 SWAP1 SWAP2 ADD SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE DUP8 PUSH1 0x40 MLOAD PUSH2 0x2AD8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBA782BEE SWAP1 PUSH1 0xA4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH14 0x100000000000000000000000000 DUP3 DIV AND SWAP1 PUSH2 0x2BA7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND TIMESTAMP PUSH2 0x4254 JUMP JUMPDEST PUSH2 0xB33 SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 DUP4 PUSH2 0x3888 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB33 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x2BD8 DUP4 PUSH2 0x430F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 PUSH2 0x2C14 JUMPI POP PUSH1 0x0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2C12 JUMPI PUSH2 0x2C12 PUSH2 0x3F5E JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x2C4B JUMPI PUSH1 0x40 MLOAD PUSH32 0x4A0BD98600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP3 AND DUP2 OR DUP4 SSTORE DUP5 SWAP2 DUP4 SWAP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000 SWAP1 SWAP2 AND OR PUSH21 0x10000000000000000000000000000000000000000 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2CC4 JUMPI PUSH2 0x2CC4 PUSH2 0x3F5E JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2CDD JUMPI PUSH2 0x2CDD PUSH2 0x3F5E JUMP JUMPDEST SUB PUSH2 0x2F1E JUMPI DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x2D0D JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH32 0xEDCC0F9000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xEDCC0F90 SWAP1 PUSH1 0x24 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2D8B JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2D88 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4329 JUMP JUMPDEST PUSH1 0x1 JUMPDEST ISZERO PUSH2 0x2F1E JUMPI PUSH1 0x40 MLOAD PUSH32 0xE6A4390500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 DUP9 AND SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0xE6A43905 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E41 SWAP2 SWAP1 PUSH2 0x4358 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x2F1B JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x2EB7 JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x2F1B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x2F1B JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE JUMPDEST POP POP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 DUP4 SWAP1 PUSH32 0x3D82013E0D368D05BFB8B953D35BFFD6EEC15520773228DE41146F306A241AEC SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2FA1 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xB33 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCD4 JUMPI PUSH2 0x2FDA DUP2 PUSH2 0x38B2 JUMP JUMPDEST PUSH2 0x2FE5 DUP4 PUSH1 0x20 PUSH2 0x38C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2FF6 SWAP3 SWAP2 SWAP1 PUSH2 0x43A1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0xCC1 SWAP2 PUSH1 0x4 ADD PUSH2 0x4422 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x3AED JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30BC DUP5 PUSH2 0x1B5E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x30CB DUP6 DUP5 PUSH2 0x3757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP6 PUSH1 0x4 ADD SWAP1 POP DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x30EB SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3106 SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP4 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3126 DUP6 DUP6 DUP6 PUSH1 0x0 PUSH2 0x269B JUMP JUMPDEST SWAP1 POP PUSH2 0x3132 DUP2 DUP5 PUSH2 0x27BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP3 SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP1 PUSH2 0x3189 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB968846100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31EE SWAP2 SWAP1 PUSH2 0x4478 JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x3268 JUMPI DUP2 PUSH2 0x3259 DUP10 DUP6 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x3263 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH2 0x327D JUMP JUMPDEST DUP3 PUSH2 0x3273 DUP10 DUP5 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x327D SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST SWAP1 POP DUP7 PUSH1 0x20 ADD MLOAD DUP2 GT ISZERO PUSH2 0x32BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x4C9B2C5900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x32F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4C9B2C5900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE ISZERO PUSH2 0x3412 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3350 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH1 0x20 ADD MLOAD CALLVALUE EQ PUSH2 0x338D JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x33F7 SWAP4 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 POP DUP7 DUP4 PUSH2 0x1BAC JUMP JUMPDEST CALLVALUE DUP2 DUP2 SUB SWAP1 DUP3 EQ PUSH2 0x340C JUMPI PUSH2 0x340C CALLER DUP3 PUSH2 0x3BE0 JUMP JUMPDEST POP PUSH2 0x3427 JUMP JUMPDEST PUSH2 0x3427 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND CALLER DUP8 DUP5 PUSH2 0x2871 JUMP JUMPDEST PUSH2 0x345B PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP11 PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x6A62784200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x34BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34DE SWAP2 SWAP1 PUSH2 0x44BF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH7 0xFFFFFFFFFFFFFF AND ISZERO PUSH2 0x3537 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2E5B6C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH2 0x3559 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST SWAP1 POP JUMPDEST DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH2 0x358C SWAP1 DUP4 PUSH2 0x2BB1 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x35B2 SWAP1 DUP3 PUSH2 0x3C3B JUMP JUMPDEST ISZERO PUSH2 0x3619 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x19 SWAP1 PUSH2 0x35F4 SWAP1 PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH7 0xFFFFFFFFFFFFFF AND PUSH2 0x44D8 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH7 0xFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH7 0xFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST POP PUSH2 0x355C JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x366F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x365B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3686 PUSH2 0x3C47 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x90 SHL SWAP1 SWAP2 DIV AND PUSH5 0x100000000 SWAP1 SWAP2 MUL DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0x36C9 JUMPI PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x36E8 JUMP JUMPDEST PUSH2 0x36D1 PUSH2 0x367B JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ADD JUMPDEST DUP5 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP3 POP PUSH1 0x1 PUSH1 0x80 SHL DUP2 DIV SWAP1 SWAP2 AND DUP3 SUB SWAP1 PUSH5 0x100000000 SWAP1 PUSH4 0xFFFFFFFF AND DUP3 MUL DUP7 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP3 SWAP1 SWAP2 DIV SWAP2 SWAP1 SWAP2 ADD SWAP4 POP DUP4 GT ISZERO PUSH2 0x374F JUMPI PUSH2 0x374F PUSH2 0x4295 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x3768 DUP6 PUSH1 0x3 ADD PUSH2 0x2B74 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x37B2 JUMPI DUP1 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x3780 TIMESTAMP DUP8 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x378A SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x3794 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST SWAP3 POP DUP1 PUSH2 0x37A5 PUSH1 0x1 PUSH1 0x80 SHL DUP7 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x37AF SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x37DD SWAP1 DUP3 PUSH2 0x3CAB JUMP JUMPDEST ISZERO PUSH2 0x3844 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x19 SWAP1 PUSH2 0x381F SWAP1 PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH7 0xFFFFFFFFFFFFFF AND PUSH2 0x44FB JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH7 0xFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH7 0xFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0xA SWAP1 PUSH2 0x3869 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST GT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x389F JUMPI PUSH2 0x389F PUSH2 0x4056 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xB33 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x38D3 DUP4 PUSH1 0x2 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x38DE SWAP1 PUSH1 0x2 PUSH2 0x41C9 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38F6 JUMPI PUSH2 0x38F6 PUSH2 0x41E1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3920 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3957 JUMPI PUSH2 0x3957 PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x39BA JUMPI PUSH2 0x39BA PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x39F6 DUP5 PUSH1 0x2 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x3A01 SWAP1 PUSH1 0x1 PUSH2 0x41C9 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3A9E JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x3A42 JUMPI PUSH2 0x3A42 PUSH2 0x4056 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3A58 JUMPI PUSH2 0x3A58 PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3A97 DUP2 PUSH2 0x4521 JUMP JUMPDEST SWAP1 POP PUSH2 0x3A04 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xED8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x3BD6 JUMPI PUSH1 0x0 PUSH2 0x3B11 PUSH1 0x1 DUP4 PUSH2 0x42D6 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3B25 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x3B8A JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3B45 JUMPI PUSH2 0x3B45 PUSH2 0x4056 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x3B68 JUMPI PUSH2 0x3B68 PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x3B9B JUMPI PUSH2 0x3B9B PUSH2 0x4538 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP8 GAS CALL SWAP1 POP DUP1 PUSH2 0xC42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4554485F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 DUP4 PUSH2 0x3AED JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH6 0xFFFFFFFFFFFF AND DUP2 TIMESTAMP DUP3 LT PUSH2 0x3C63 JUMPI TIMESTAMP PUSH2 0x3C65 JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x3 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP1 DUP3 GT ISZERO PUSH2 0x3CA1 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP2 SUB MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 DUP4 PUSH2 0x2F5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0xC0 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0xE0 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3CF8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0xED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3DAF DUP2 PUSH2 0x3D75 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3DCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3DE1 DUP2 PUSH2 0x3D75 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3E4C JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3E30 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x3E9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3EBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3ED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3EDE DUP9 DUP4 DUP10 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3EF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F04 DUP8 DUP3 DUP9 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3F3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x3F55 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x3F10 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE PUSH2 0x100 DUP3 ADD SWAP1 PUSH1 0x3 DUP9 LT PUSH2 0x3FA5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP4 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP7 AND PUSH1 0x40 DUP4 ADD MSTORE SWAP4 SWAP1 SWAP5 AND PUSH1 0x60 DUP6 ADD MSTORE DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND PUSH1 0x80 DUP6 ADD MSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND PUSH1 0xA0 DUP5 ADD MSTORE DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE SWAP1 SWAP3 ADD MLOAD PUSH1 0xE0 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x400A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4015 DUP2 PUSH2 0x3D75 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x3 DUP2 LT PUSH2 0x3DAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x404D DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x3F10 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4090 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xED8 DUP2 PUSH2 0x406C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP4 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x40EB JUMPI PUSH2 0x40EB PUSH2 0x409B JUMP JUMPDEST DUP4 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x411F JUMPI PUSH2 0x411F PUSH2 0x409B JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP5 SGT DUP2 ISZERO AND ISZERO PUSH2 0x415F JUMPI PUSH2 0x415F PUSH2 0x409B JUMP JUMPDEST DUP3 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SUB DUP5 SLT DUP2 AND ISZERO PUSH2 0x4193 JUMPI PUSH2 0x4193 PUSH2 0x409B JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x41C0 JUMPI PUSH2 0x41C0 PUSH2 0x409B JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x41DC JUMPI PUSH2 0x41DC PUSH2 0x409B JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x423A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x426E JUMPI PUSH2 0x426E PUSH2 0x409B JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4290 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x41C0 JUMPI PUSH2 0x41C0 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x42E8 JUMPI PUSH2 0x42E8 PUSH2 0x409B JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x41C0 JUMPI PUSH2 0x41C0 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x4322 JUMPI PUSH2 0x4322 PUSH2 0x409B JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x433C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x4347 DUP2 PUSH2 0x3D75 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x3DAF DUP2 PUSH2 0x3D75 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x436A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xED8 DUP2 PUSH2 0x3D75 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4390 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4378 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1C4B JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x43D9 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4375 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4416 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4375 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4441 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4375 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x448D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4496 DUP5 PUSH2 0x4455 JUMP JUMPDEST SWAP3 POP PUSH2 0x44A4 PUSH1 0x20 DUP6 ADD PUSH2 0x4455 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x44B4 DUP2 PUSH2 0x406C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH7 0xFFFFFFFFFFFFFF DUP3 AND DUP1 PUSH2 0x44F1 JUMPI PUSH2 0x44F1 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x0 NOT ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH7 0xFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 SUB PUSH2 0x4517 JUMPI PUSH2 0x4517 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x4530 JUMPI PUSH2 0x4530 PUSH2 0x409B JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0x4C 0xA7 DUP4 0xD2 0xAC 0x4B 0x2F 0x25 ADD 0xD5 SWAP11 0xB0 PUSH24 0xDC4F5EC2D943421F01E891BBCADF49FA934F64736F6C6343 STOP ADDMOD 0xF STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FA DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xEDCC0F90 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP3 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x1A7 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x131 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x1A7 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A0 DUP2 PUSH2 0x15E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1A0 DUP2 PUSH2 0x15E JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ STATICCALL PUSH30 0x9D3EE9FA5AB29BC69556BFCD9BEDEDC44946D2AE245867ADAB447317F464 PUSH20 0x6F6C634300080F00330000000000000000000000 ","sourceMap":"820:48126:47:-:0;;;2431:6:48;2399:38;;325:1:51;300:26;;6706:1:47;6675:32;;8405:870;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8580:15;8597:8;-1:-1:-1;;;;;4492:22:48;;4488:46;;4523:11;;-1:-1:-1;;;4523:11:48;;;;;;;;;;;4488:46;-1:-1:-1;;;;;4583:37:48;;;;4631:40;2072:4:0;4662:8:48;4631:10;:40::i;:::-;4682:33;3398:24;4706:8;4682:10;:33::i;:::-;4726:39;3547:30;4756:8;4726:10;:39::i;:::-;-1:-1:-1;;4870:18:48;;;;:15;:18;;;:42;;3270:5;-1:-1:-1;;4870:42:48;;;;;;4923:11;:28;;-1:-1:-1;;;;4923:28:48;-1:-1:-1;;;4923:28:48;;;4870:18;8704:58:47;-1:-1:-1;;;8704:58:47;;-1:-1:-1;;;;;1065:15:60;;;8704:58:47;;::::1;1047:34:60::0;;;;1117:15;;;1097:18;;;1090:43;8704:18:47;;::::1;::::0;::::1;::::0;982::60;;8704:58:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8681:81:::0;-1:-1:-1;;;;;;8878:26:47;::::1;8874:50;;8913:11;;-1:-1:-1::0;;;8913:11:47::1;;;;;;;;;;;8874:50;-1:-1:-1::0;;;;;8991:20:47;;::::1;;::::0;9022:42;::::1;;::::0;9115:23:::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9077:17:47::1;:62:::0;;-1:-1:-1;;;;;;9077:62:47::1;-1:-1:-1::0;;;;;9077:62:47;;;::::1;::::0;;;::::1;::::0;;9217:50:::1;9233:12:::0;-1:-1:-1;9217:15:47::1;:50::i;:::-;8607:668;8405:870:::0;;;;820:48126;;1978:166:1;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106:18;;;;:12;:18;;;;;;;;:31;;2129:7;;2106:22;;;;;:31;;:::i;:::-;;1978:166;;:::o;38385:1517:47:-;38577:12;:14;;38560;;;38577;;;:::i;:::-;;;;-1:-1:-1;38602:17:47;38622:13;;;:5;:13;;;;;38560:31;;-1:-1:-1;;;;;;38708:30:47;;;;:65;;-1:-1:-1;38754:19:47;38742:8;:31;;;;;;;;:::i;:::-;;38708:65;38704:89;;;38782:11;;-1:-1:-1;;;38782:11:47;;;;;;;;;;;38704:89;38900:40;;-1:-1:-1;;;;;38900:40:47;;-1:-1:-1;;;;;;38900:40:47;;;;;;38967:8;;38900:4;;-1:-1:-1;;;;;;38951:24:47;;;;-1:-1:-1;;;38967:8:47;38951:24;;;;;;;;:::i;:::-;;;;;-1:-1:-1;39106:19:47;39094:8;:31;;;;;;;;:::i;:::-;;39090:746;;39146:16;-1:-1:-1;;;;;39146:28:47;;39178:1;39146:33;39142:60;;39188:14;;-1:-1:-1;;;39188:14:47;;;;;;;;;;;39142:60;39319:17;;:92;;-1:-1:-1;;;39319:92:47;;-1:-1:-1;;;;;1933:32:60;;;39319:92:47;;;1915:51:60;39319:17:47;;;;:42;;1888:18:60;;39319:92:47;;;;;;;;;;;;;;;;;;-1:-1:-1;39319:92:47;;;;;;;;-1:-1:-1;;39319:92:47;;;;;;;;;;;;:::i;:::-;;;39315:510;;;39476:7;;:31;;-1:-1:-1;;;39476:31:47;;-1:-1:-1;;;;;1065:15:60;;;39476:31:47;;;1047:34:60;1117:15;;;1097:18;;;1090:43;39476:51:47;;;;:15;;;;982:18:60;;39476:31:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;39476:51:47;;39472:329;;39574:12;;-1:-1:-1;;;;;39556:31:47;:6;-1:-1:-1;;;;;39556:31:47;;39552:230;;39616:15;;;:24;;-1:-1:-1;;;;;;39616:24:47;-1:-1:-1;;;;;39616:24:47;;;;;39552:230;;;39692:12;;-1:-1:-1;;;;;39674:31:47;:6;-1:-1:-1;;;;;39674:31:47;;39670:112;;39734:15;;;:24;;-1:-1:-1;;;;;;39734:24:47;-1:-1:-1;;;;;39734:24:47;;;;;39670:112;39412:404;;39315:510;39853:41;;-1:-1:-1;;;;;39853:41:47;;;39869:6;;39853:41;;;;;38463:1439;;38385:1517;;:::o;7461:233:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7539:149;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;:::-;8383:57;;8297:150;;;;;:::o;2206:404::-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;820:48126:47;;;;;;;;:::o;14:131:60:-;-1:-1:-1;;;;;89:31:60;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:680::-;273:6;281;289;297;350:3;338:9;329:7;325:23;321:33;318:53;;;367:1;364;357:12;318:53;399:9;393:16;418:31;443:5;418:31;:::i;:::-;518:2;503:18;;497:25;468:5;;-1:-1:-1;531:33:60;497:25;531:33;:::i;:::-;635:2;620:18;;614:25;583:7;;-1:-1:-1;648:33:60;614:25;648:33;:::i;:::-;752:2;737:18;;731:25;700:7;;-1:-1:-1;765:33:60;731:25;765:33;:::i;:::-;150:680;;;;-1:-1:-1;150:680:60;;-1:-1:-1;;150:680:60:o;1144:251::-;1214:6;1267:2;1255:9;1246:7;1242:23;1238:32;1235:52;;;1283:1;1280;1273:12;1235:52;1315:9;1309:16;1334:31;1359:5;1334:31;:::i;:::-;1384:5;1144:251;-1:-1:-1;;;1144:251:60:o;1400:232::-;1439:3;1460:17;;;1457:140;;1519:10;1514:3;1510:20;1507:1;1500:31;1554:4;1551:1;1544:15;1582:4;1579:1;1572:15;1457:140;-1:-1:-1;1624:1:60;1613:13;;1400:232::o;1637:127::-;1698:10;1693:3;1689:20;1686:1;1679:31;1729:4;1726:1;1719:15;1753:4;1750:1;1743:15;1977:385;2056:6;2064;2117:2;2105:9;2096:7;2092:23;2088:32;2085:52;;;2133:1;2130;2123:12;2085:52;2165:9;2159:16;2184:31;2209:5;2184:31;:::i;:::-;2284:2;2269:18;;2263:25;2234:5;;-1:-1:-1;2297:33:60;2263:25;2297:33;:::i;:::-;2349:7;2339:17;;;1977:385;;;;;:::o;:::-;820:48126:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_27":{"entryPoint":null,"id":27,"parameterSlots":0,"returnSlots":0},"@_addLiquidity_13535":{"entryPoint":12603,"id":13535,"parameterSlots":3,"returnSlots":1},"@_add_8447":{"entryPoint":12122,"id":8447,"parameterSlots":2,"returnSlots":1},"@_at_8581":{"entryPoint":14472,"id":8581,"parameterSlots":2,"returnSlots":1},"@_checkRole_131":{"entryPoint":12201,"id":131,"parameterSlots":2,"returnSlots":0},"@_checkRole_92":{"entryPoint":6762,"id":92,"parameterSlots":1,"returnSlots":0},"@_claim_14859":{"entryPoint":7006,"id":14859,"parameterSlots":1,"returnSlots":1},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_decrementLock_13775":{"entryPoint":13547,"id":13775,"parameterSlots":2,"returnSlots":0},"@_earned_14243":{"entryPoint":10171,"id":14243,"parameterSlots":2,"returnSlots":1},"@_emergencyExit_13661":{"entryPoint":9356,"id":13661,"parameterSlots":2,"returnSlots":0},"@_getDeltaRewardSummations_14125":{"entryPoint":9883,"id":14125,"parameterSlots":4,"returnSlots":1},"@_getRewardPerWeightIncrementation_14973":{"entryPoint":13947,"id":14973,"parameterSlots":0,"returnSlots":1},"@_getRewardSummationsIncrementations_14172":{"entryPoint":14167,"id":14172,"parameterSlots":2,"returnSlots":2},"@_getValue_14191":{"entryPoint":11124,"id":14191,"parameterSlots":1,"returnSlots":1},"@_globalPendingRewards_15014":{"entryPoint":15431,"id":15014,"parameterSlots":0,"returnSlots":1},"@_grantRole_283":{"entryPoint":6432,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":6772,"id":415,"parameterSlots":2,"returnSlots":0},"@_harvestWithoutReset_13364":{"entryPoint":10525,"id":13364,"parameterSlots":2,"returnSlots":1},"@_incrementLock_13704":{"entryPoint":14266,"id":13704,"parameterSlots":2,"returnSlots":0},"@_initializePool_13895":{"entryPoint":11207,"id":13895,"parameterSlots":2,"returnSlots":0},"@_length_8564":{"entryPoint":null,"id":8564,"parameterSlots":1,"returnSlots":1},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_notEntered_16707":{"entryPoint":6840,"id":16707,"parameterSlots":0,"returnSlots":0},"@_onlyERC20Pool_13912":{"entryPoint":8427,"id":13912,"parameterSlots":1,"returnSlots":0},"@_onlyRelayerPool_13929":{"entryPoint":6902,"id":13929,"parameterSlots":1,"returnSlots":0},"@_poolPendingRewards_14913":{"entryPoint":13991,"id":14913,"parameterSlots":2,"returnSlots":1},"@_remove_8531":{"entryPoint":15085,"id":8531,"parameterSlots":2,"returnSlots":1},"@_revokeRole_314":{"entryPoint":12316,"id":314,"parameterSlots":2,"returnSlots":0},"@_revokeRole_439":{"entryPoint":6806,"id":439,"parameterSlots":2,"returnSlots":0},"@_snapshotRewardSummations_14004":{"entryPoint":null,"id":14004,"parameterSlots":2,"returnSlots":0},"@_stake_13008":{"entryPoint":7249,"id":13008,"parameterSlots":5,"returnSlots":0},"@_updateRewardPerWeightPaid_14938":{"entryPoint":9298,"id":14938,"parameterSlots":1,"returnSlots":1},"@_updateRewardPerWeightStored_14956":{"entryPoint":9161,"id":14956,"parameterSlots":0,"returnSlots":0},"@_updateRewardSummations_13976":{"entryPoint":12464,"id":13976,"parameterSlots":2,"returnSlots":1},"@_userPendingRewards_14034":{"entryPoint":12566,"id":14034,"parameterSlots":3,"returnSlots":1},"@_values_8595":{"entryPoint":13855,"id":8595,"parameterSlots":1,"returnSlots":1},"@_withdraw_13228":{"entryPoint":8434,"id":13228,"parameterSlots":2,"returnSlots":0},"@addReward_14609":{"entryPoint":5089,"id":14609,"parameterSlots":1,"returnSlots":0},"@add_8747":{"entryPoint":6590,"id":8747,"parameterSlots":2,"returnSlots":1},"@add_8898":{"entryPoint":15531,"id":8898,"parameterSlots":2,"returnSlots":1},"@at_8843":{"entryPoint":11185,"id":8843,"parameterSlots":2,"returnSlots":1},"@at_8976":{"entryPoint":null,"id":8976,"parameterSlots":2,"returnSlots":1},"@claim_12567":{"entryPoint":3288,"id":12567,"parameterSlots":1,"returnSlots":1},"@compoundTo_12466":{"entryPoint":5931,"id":12466,"parameterSlots":3,"returnSlots":0},"@compound_12405":{"entryPoint":6255,"id":12405,"parameterSlots":2,"returnSlots":0},"@emergencyExitLevel1_12480":{"entryPoint":6400,"id":12480,"parameterSlots":1,"returnSlots":0},"@emergencyExitLevel2_12510":{"entryPoint":4484,"id":12510,"parameterSlots":2,"returnSlots":0},"@endPeriod_14515":{"entryPoint":4778,"id":14515,"parameterSlots":0,"returnSlots":0},"@factory_12157":{"entryPoint":null,"id":12157,"parameterSlots":0,"returnSlots":0},"@getLockedPools_12606":{"entryPoint":3754,"id":12606,"parameterSlots":2,"returnSlots":1},"@getRoleAdmin_146":{"entryPoint":null,"id":146,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_391":{"entryPoint":6143,"id":391,"parameterSlots":1,"returnSlots":1},"@getRoleMember_375":{"entryPoint":6119,"id":375,"parameterSlots":2,"returnSlots":1},"@getUser_12586":{"entryPoint":2873,"id":12586,"parameterSlots":2,"returnSlots":1},"@grantRole_166":{"entryPoint":3101,"id":166,"parameterSlots":2,"returnSlots":0},"@harvest_12435":{"entryPoint":6292,"id":12435,"parameterSlots":1,"returnSlots":0},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"@initializePool_12334":{"entryPoint":6203,"id":12334,"parameterSlots":2,"returnSlots":0},"@lastUpdate_14277":{"entryPoint":null,"id":14277,"parameterSlots":0,"returnSlots":0},"@length_8816":{"entryPoint":11197,"id":8816,"parameterSlots":1,"returnSlots":1},"@length_8955":{"entryPoint":null,"id":8955,"parameterSlots":1,"returnSlots":1},"@periodDuration_14293":{"entryPoint":null,"id":14293,"parameterSlots":0,"returnSlots":0},"@periodFinish_14283":{"entryPoint":null,"id":14283,"parameterSlots":0,"returnSlots":0},"@poolRewardInfos_14271":{"entryPoint":null,"id":14271,"parameterSlots":0,"returnSlots":0},"@poolRewardRate_14804":{"entryPoint":6314,"id":14804,"parameterSlots":1,"returnSlots":1},"@poolsLength_12706":{"entryPoint":null,"id":12706,"parameterSlots":0,"returnSlots":1},"@pools_12145":{"entryPoint":null,"id":12145,"parameterSlots":0,"returnSlots":0},"@remove_8774":{"entryPoint":12443,"id":8774,"parameterSlots":2,"returnSlots":1},"@remove_8919":{"entryPoint":15419,"id":8919,"parameterSlots":2,"returnSlots":1},"@renounceRole_209":{"entryPoint":3143,"id":209,"parameterSlots":2,"returnSlots":0},"@revokeRole_186":{"entryPoint":6166,"id":186,"parameterSlots":2,"returnSlots":0},"@rewardPerWeightStored_14274":{"entryPoint":null,"id":14274,"parameterSlots":0,"returnSlots":0},"@rewardRate_14819":{"entryPoint":5648,"id":14819,"parameterSlots":0,"returnSlots":1},"@rewardsToken_14351":{"entryPoint":null,"id":14351,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_9417":{"entryPoint":15328,"id":9417,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_9439":{"entryPoint":10353,"id":9439,"parameterSlots":4,"returnSlots":0},"@safeTransfer_9459":{"entryPoint":7084,"id":9459,"parameterSlots":3,"returnSlots":0},"@setPeriodDuration_14462":{"entryPoint":5717,"id":14462,"parameterSlots":1,"returnSlots":0},"@setRewarder_12316":{"entryPoint":3577,"id":12316,"parameterSlots":2,"returnSlots":0},"@setWeights_14775":{"entryPoint":3807,"id":14775,"parameterSlots":4,"returnSlots":0},"@stakeTo_12383":{"entryPoint":3533,"id":12383,"parameterSlots":3,"returnSlots":0},"@stake_12358":{"entryPoint":5604,"id":12358,"parameterSlots":2,"returnSlots":0},"@supportsInterface_356":{"entryPoint":2781,"id":356,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5975":{"entryPoint":null,"id":5975,"parameterSlots":1,"returnSlots":1},"@supportsInterface_60":{"entryPoint":6611,"id":60,"parameterSlots":1,"returnSlots":1},"@toHexString_4914":{"entryPoint":14532,"id":4914,"parameterSlots":2,"returnSlots":1},"@toHexString_4934":{"entryPoint":14514,"id":4934,"parameterSlots":1,"returnSlots":1},"@totalRewardAdded_14286":{"entryPoint":null,"id":14286,"parameterSlots":0,"returnSlots":0},"@totalWeight_14289":{"entryPoint":null,"id":14289,"parameterSlots":0,"returnSlots":0},"@userPendingRewards_12696":{"entryPoint":4704,"id":12696,"parameterSlots":2,"returnSlots":1},"@userRewardRate_12655":{"entryPoint":5997,"id":12655,"parameterSlots":2,"returnSlots":1},"@values_9006":{"entryPoint":9148,"id":9006,"parameterSlots":1,"returnSlots":1},"@withdraw_12421":{"entryPoint":3736,"id":12421,"parameterSlots":2,"returnSlots":0},"@wrappedNativeToken_12160":{"entryPoint":null,"id":12160,"parameterSlots":0,"returnSlots":0},"abi_decode_array_uint256_dyn_calldata":{"entryPoint":15960,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_struct_Slippage_calldata":{"entryPoint":16144,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":17240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address_fromMemory":{"entryPoint":17193,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_enum$_PoolType_$12083":{"entryPoint":16375,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint32_$dyn_calldata_ptr":{"entryPoint":16036,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes32":{"entryPoint":15708,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":15642,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Slippage_$12092_memory_ptr":{"entryPoint":16887,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory":{"entryPoint":17528,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":17599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":15754,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_addresst_uint256":{"entryPoint":15802,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_struct$_Slippage_$12092_calldata_ptr":{"entryPoint":16425,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":15858,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_struct$_Slippage_$12092_calldata_ptr":{"entryPoint":16168,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint32":{"entryPoint":16510,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint112_fromMemory":{"entryPoint":17493,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_struct_RewardSummations":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_ValueVariables":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_20f25d32b0cb64e41972e299b60a4330dcafaec2c5ff591af09ef6310fd84c85_t_address__to_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":17313,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_enum$_PoolType_$12083_t_contract$_IRewarder_$18144_t_address_t_struct$_ValueVariables_$12097_memory_ptr_t_struct$_RewardSummations_$12102_memory_ptr__to_t_address_t_uint8_t_address_t_address_t_struct$_ValueVariables_$12097_memory_ptr_t_struct$_RewardSummations_$12102_memory_ptr__fromStack_reversed":{"entryPoint":16244,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":15892,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ERC20_$9395__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPangolinFactory_$18099__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_0_by_1__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":17442,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_77631768048ee92f9dcf4b9b9d762877d6b9723214862c733f0596708fc219b7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d383913ea1996930a2623a0d739b8fc033c734c1d71d4759d3ccba1d3a719c29__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_User_$12117_memory_ptr__to_t_struct$_User_$12117_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint128__to_t_uint128__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address_t_bool_t_rational_0_by_1_t_rational_0_by_1__to_t_uint256_t_address_t_bool_t_uint8_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address_t_bool_t_uint256_t_uint256__to_t_uint256_t_address_t_bool_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32_t_uint96_t_uint128__to_t_uint32_t_uint96_t_uint128__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_int256":{"entryPoint":16677,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint128":{"entryPoint":17067,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint152":{"entryPoint":17133,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":16841,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint96":{"entryPoint":16793,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":17011,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":16980,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int256":{"entryPoint":16561,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":17110,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":17269,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":17697,"id":null,"parameterSlots":1,"returnSlots":1},"decrement_t_uint56":{"entryPoint":17624,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":17167,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint56":{"entryPoint":17659,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x01":{"entryPoint":17045,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":16539,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":16222,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":17720,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":16470,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":16865,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":15733,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_uint32":{"entryPoint":16492,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:22887:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"83:263:60","statements":[{"body":{"nodeType":"YulBlock","src":"129:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"138:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"141:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"131:6:60"},"nodeType":"YulFunctionCall","src":"131:12:60"},"nodeType":"YulExpressionStatement","src":"131:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"104:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"113:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:60"},"nodeType":"YulFunctionCall","src":"100:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"125:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"96:3:60"},"nodeType":"YulFunctionCall","src":"96:32:60"},"nodeType":"YulIf","src":"93:52:60"},{"nodeType":"YulVariableDeclaration","src":"154:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"180:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"167:12:60"},"nodeType":"YulFunctionCall","src":"167:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"158:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"300:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:60"},"nodeType":"YulFunctionCall","src":"302:12:60"},"nodeType":"YulExpressionStatement","src":"302:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"212:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"230:66:60","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"219:3:60"},"nodeType":"YulFunctionCall","src":"219:78:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"209:2:60"},"nodeType":"YulFunctionCall","src":"209:89:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"202:6:60"},"nodeType":"YulFunctionCall","src":"202:97:60"},"nodeType":"YulIf","src":"199:117:60"},{"nodeType":"YulAssignment","src":"325:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"335:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"325:6:60"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"49:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"60:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"72:6:60","type":""}],"src":"14:332:60"},{"body":{"nodeType":"YulBlock","src":"446:92:60","statements":[{"nodeType":"YulAssignment","src":"456:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:60"},"nodeType":"YulFunctionCall","src":"464:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"456:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"498:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"523:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"516:6:60"},"nodeType":"YulFunctionCall","src":"516:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"509:6:60"},"nodeType":"YulFunctionCall","src":"509:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"491:6:60"},"nodeType":"YulFunctionCall","src":"491:41:60"},"nodeType":"YulExpressionStatement","src":"491:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"415:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"426:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"437:4:60","type":""}],"src":"351:187:60"},{"body":{"nodeType":"YulBlock","src":"642:109:60","statements":[{"nodeType":"YulAssignment","src":"652:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"664:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"675:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"660:3:60"},"nodeType":"YulFunctionCall","src":"660:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"652:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"694:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"709:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"717:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"705:3:60"},"nodeType":"YulFunctionCall","src":"705:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"687:6:60"},"nodeType":"YulFunctionCall","src":"687:58:60"},"nodeType":"YulExpressionStatement","src":"687:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"611:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"622:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"633:4:60","type":""}],"src":"543:208:60"},{"body":{"nodeType":"YulBlock","src":"857:125:60","statements":[{"nodeType":"YulAssignment","src":"867:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"879:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"890:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"875:3:60"},"nodeType":"YulFunctionCall","src":"875:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"867:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"909:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"924:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"932:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"920:3:60"},"nodeType":"YulFunctionCall","src":"920:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"902:6:60"},"nodeType":"YulFunctionCall","src":"902:74:60"},"nodeType":"YulExpressionStatement","src":"902:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"826:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"837:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"848:4:60","type":""}],"src":"756:226:60"},{"body":{"nodeType":"YulBlock","src":"1057:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"1103:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1112:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1115:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1105:6:60"},"nodeType":"YulFunctionCall","src":"1105:12:60"},"nodeType":"YulExpressionStatement","src":"1105:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1078:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1087:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1074:3:60"},"nodeType":"YulFunctionCall","src":"1074:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1099:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1070:3:60"},"nodeType":"YulFunctionCall","src":"1070:32:60"},"nodeType":"YulIf","src":"1067:52:60"},{"nodeType":"YulAssignment","src":"1128:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1138:12:60"},"nodeType":"YulFunctionCall","src":"1138:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1128:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1023:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1034:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1046:6:60","type":""}],"src":"987:180:60"},{"body":{"nodeType":"YulBlock","src":"1273:76:60","statements":[{"nodeType":"YulAssignment","src":"1283:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1295:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1306:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1291:3:60"},"nodeType":"YulFunctionCall","src":"1291:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1283:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1325:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"1336:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1318:6:60"},"nodeType":"YulFunctionCall","src":"1318:25:60"},"nodeType":"YulExpressionStatement","src":"1318:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1242:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1253:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1264:4:60","type":""}],"src":"1172:177:60"},{"body":{"nodeType":"YulBlock","src":"1399:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"1486:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1495:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1498:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1488:6:60"},"nodeType":"YulFunctionCall","src":"1488:12:60"},"nodeType":"YulExpressionStatement","src":"1488:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1422:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1433:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1440:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1429:3:60"},"nodeType":"YulFunctionCall","src":"1429:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1419:2:60"},"nodeType":"YulFunctionCall","src":"1419:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1412:6:60"},"nodeType":"YulFunctionCall","src":"1412:73:60"},"nodeType":"YulIf","src":"1409:93:60"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1388:5:60","type":""}],"src":"1354:154:60"},{"body":{"nodeType":"YulBlock","src":"1600:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"1646:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1655:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1658:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1648:6:60"},"nodeType":"YulFunctionCall","src":"1648:12:60"},"nodeType":"YulExpressionStatement","src":"1648:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1621:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1630:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1617:3:60"},"nodeType":"YulFunctionCall","src":"1617:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1642:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1613:3:60"},"nodeType":"YulFunctionCall","src":"1613:32:60"},"nodeType":"YulIf","src":"1610:52:60"},{"nodeType":"YulAssignment","src":"1671:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1694:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1681:12:60"},"nodeType":"YulFunctionCall","src":"1681:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1671:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1713:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1743:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1754:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1739:3:60"},"nodeType":"YulFunctionCall","src":"1739:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1726:12:60"},"nodeType":"YulFunctionCall","src":"1726:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1717:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1792:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1767:24:60"},"nodeType":"YulFunctionCall","src":"1767:31:60"},"nodeType":"YulExpressionStatement","src":"1767:31:60"},{"nodeType":"YulAssignment","src":"1807:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1817:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1807:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1558:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1569:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1581:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1589:6:60","type":""}],"src":"1513:315:60"},{"body":{"nodeType":"YulBlock","src":"1891:179:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1908:3:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1923:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1917:5:60"},"nodeType":"YulFunctionCall","src":"1917:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"1931:28:60","type":"","value":"0xffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1913:3:60"},"nodeType":"YulFunctionCall","src":"1913:47:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1901:6:60"},"nodeType":"YulFunctionCall","src":"1901:60:60"},"nodeType":"YulExpressionStatement","src":"1901:60:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1981:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1986:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1977:3:60"},"nodeType":"YulFunctionCall","src":"1977:14:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2007:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"2014:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2003:3:60"},"nodeType":"YulFunctionCall","src":"2003:16:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1997:5:60"},"nodeType":"YulFunctionCall","src":"1997:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2022:40:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1993:3:60"},"nodeType":"YulFunctionCall","src":"1993:70:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1970:6:60"},"nodeType":"YulFunctionCall","src":"1970:94:60"},"nodeType":"YulExpressionStatement","src":"1970:94:60"}]},"name":"abi_encode_struct_ValueVariables","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1875:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1882:3:60","type":""}],"src":"1833:237:60"},{"body":{"nodeType":"YulBlock","src":"2135:97:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2152:3:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2163:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2157:5:60"},"nodeType":"YulFunctionCall","src":"2157:12:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2145:6:60"},"nodeType":"YulFunctionCall","src":"2145:25:60"},"nodeType":"YulExpressionStatement","src":"2145:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2190:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"2195:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2186:3:60"},"nodeType":"YulFunctionCall","src":"2186:14:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2212:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"2219:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2208:3:60"},"nodeType":"YulFunctionCall","src":"2208:16:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2202:5:60"},"nodeType":"YulFunctionCall","src":"2202:23:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:60"},"nodeType":"YulFunctionCall","src":"2179:47:60"},"nodeType":"YulExpressionStatement","src":"2179:47:60"}]},"name":"abi_encode_struct_RewardSummations","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2119:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2126:3:60","type":""}],"src":"2075:157:60"},{"body":{"nodeType":"YulBlock","src":"2384:618:60","statements":[{"nodeType":"YulAssignment","src":"2394:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2417:3:60","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:60"},"nodeType":"YulFunctionCall","src":"2402:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2394:4:60"}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2469:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2463:5:60"},"nodeType":"YulFunctionCall","src":"2463:13:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2478:9:60"}],"functionName":{"name":"abi_encode_struct_ValueVariables","nodeType":"YulIdentifier","src":"2430:32:60"},"nodeType":"YulFunctionCall","src":"2430:58:60"},"nodeType":"YulExpressionStatement","src":"2430:58:60"},{"nodeType":"YulVariableDeclaration","src":"2497:44:60","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2527:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2535:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2523:3:60"},"nodeType":"YulFunctionCall","src":"2523:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2517:5:60"},"nodeType":"YulFunctionCall","src":"2517:24:60"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"2501:12:60","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"2585:12:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2603:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2614:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2599:3:60"},"nodeType":"YulFunctionCall","src":"2599:20:60"}],"functionName":{"name":"abi_encode_struct_RewardSummations","nodeType":"YulIdentifier","src":"2550:34:60"},"nodeType":"YulFunctionCall","src":"2550:70:60"},"nodeType":"YulExpressionStatement","src":"2550:70:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2640:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2651:4:60","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2636:3:60"},"nodeType":"YulFunctionCall","src":"2636:20:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2672:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2680:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2668:3:60"},"nodeType":"YulFunctionCall","src":"2668:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2662:5:60"},"nodeType":"YulFunctionCall","src":"2662:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"2688:40:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2658:3:60"},"nodeType":"YulFunctionCall","src":"2658:71:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2629:6:60"},"nodeType":"YulFunctionCall","src":"2629:101:60"},"nodeType":"YulExpressionStatement","src":"2629:101:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2750:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2761:4:60","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2746:3:60"},"nodeType":"YulFunctionCall","src":"2746:20:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2782:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2790:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2778:3:60"},"nodeType":"YulFunctionCall","src":"2778:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2772:5:60"},"nodeType":"YulFunctionCall","src":"2772:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"2798:14:60","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2768:3:60"},"nodeType":"YulFunctionCall","src":"2768:45:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2739:6:60"},"nodeType":"YulFunctionCall","src":"2739:75:60"},"nodeType":"YulExpressionStatement","src":"2739:75:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2834:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2845:4:60","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2830:3:60"},"nodeType":"YulFunctionCall","src":"2830:20:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2866:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2874:4:60","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2862:3:60"},"nodeType":"YulFunctionCall","src":"2862:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2856:5:60"},"nodeType":"YulFunctionCall","src":"2856:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"2882:16:60","type":"","value":"0xffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2852:3:60"},"nodeType":"YulFunctionCall","src":"2852:47:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2823:6:60"},"nodeType":"YulFunctionCall","src":"2823:77:60"},"nodeType":"YulExpressionStatement","src":"2823:77:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2920:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2931:4:60","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2916:3:60"},"nodeType":"YulFunctionCall","src":"2916:20:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2952:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2960:4:60","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2948:3:60"},"nodeType":"YulFunctionCall","src":"2948:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2942:5:60"},"nodeType":"YulFunctionCall","src":"2942:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"2968:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2938:3:60"},"nodeType":"YulFunctionCall","src":"2938:57:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2909:6:60"},"nodeType":"YulFunctionCall","src":"2909:87:60"},"nodeType":"YulExpressionStatement","src":"2909:87:60"}]},"name":"abi_encode_tuple_t_struct$_User_$12117_memory_ptr__to_t_struct$_User_$12117_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2353:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2364:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2375:4:60","type":""}],"src":"2237:765:60"},{"body":{"nodeType":"YulBlock","src":"3108:76:60","statements":[{"nodeType":"YulAssignment","src":"3118:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3130:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3141:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3126:3:60"},"nodeType":"YulFunctionCall","src":"3126:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3118:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3160:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"3171:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3153:6:60"},"nodeType":"YulFunctionCall","src":"3153:25:60"},"nodeType":"YulExpressionStatement","src":"3153:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3077:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3088:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3099:4:60","type":""}],"src":"3007:177:60"},{"body":{"nodeType":"YulBlock","src":"3276:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"3322:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3331:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3334:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3324:6:60"},"nodeType":"YulFunctionCall","src":"3324:12:60"},"nodeType":"YulExpressionStatement","src":"3324:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3297:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3306:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3293:3:60"},"nodeType":"YulFunctionCall","src":"3293:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3318:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3289:3:60"},"nodeType":"YulFunctionCall","src":"3289:32:60"},"nodeType":"YulIf","src":"3286:52:60"},{"nodeType":"YulAssignment","src":"3347:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3370:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3357:12:60"},"nodeType":"YulFunctionCall","src":"3357:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3347:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"3389:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3419:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3430:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3415:3:60"},"nodeType":"YulFunctionCall","src":"3415:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3402:12:60"},"nodeType":"YulFunctionCall","src":"3402:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3393:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3468:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3443:24:60"},"nodeType":"YulFunctionCall","src":"3443:31:60"},"nodeType":"YulExpressionStatement","src":"3443:31:60"},{"nodeType":"YulAssignment","src":"3483:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"3493:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3483:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3234:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3245:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3257:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3265:6:60","type":""}],"src":"3189:315:60"},{"body":{"nodeType":"YulBlock","src":"3610:117:60","statements":[{"nodeType":"YulAssignment","src":"3620:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3632:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3643:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3628:3:60"},"nodeType":"YulFunctionCall","src":"3628:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3620:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3662:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3677:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3685:34:60","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3673:3:60"},"nodeType":"YulFunctionCall","src":"3673:47:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3655:6:60"},"nodeType":"YulFunctionCall","src":"3655:66:60"},"nodeType":"YulExpressionStatement","src":"3655:66:60"}]},"name":"abi_encode_tuple_t_uint128__to_t_uint128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3579:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3590:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3601:4:60","type":""}],"src":"3509:218:60"},{"body":{"nodeType":"YulBlock","src":"3802:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"3848:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3857:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3860:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3850:6:60"},"nodeType":"YulFunctionCall","src":"3850:12:60"},"nodeType":"YulExpressionStatement","src":"3850:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3823:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3832:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3819:3:60"},"nodeType":"YulFunctionCall","src":"3819:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3844:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3815:3:60"},"nodeType":"YulFunctionCall","src":"3815:32:60"},"nodeType":"YulIf","src":"3812:52:60"},{"nodeType":"YulAssignment","src":"3873:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3896:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3883:12:60"},"nodeType":"YulFunctionCall","src":"3883:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3873:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3768:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3779:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3791:6:60","type":""}],"src":"3732:180:60"},{"body":{"nodeType":"YulBlock","src":"4021:279:60","statements":[{"body":{"nodeType":"YulBlock","src":"4067:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4076:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4079:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4069:6:60"},"nodeType":"YulFunctionCall","src":"4069:12:60"},"nodeType":"YulExpressionStatement","src":"4069:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4042:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4051:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4038:3:60"},"nodeType":"YulFunctionCall","src":"4038:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4063:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4034:3:60"},"nodeType":"YulFunctionCall","src":"4034:32:60"},"nodeType":"YulIf","src":"4031:52:60"},{"nodeType":"YulAssignment","src":"4092:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4115:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4102:12:60"},"nodeType":"YulFunctionCall","src":"4102:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4092:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"4134:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4164:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4175:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4160:3:60"},"nodeType":"YulFunctionCall","src":"4160:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4147:12:60"},"nodeType":"YulFunctionCall","src":"4147:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4138:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4213:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4188:24:60"},"nodeType":"YulFunctionCall","src":"4188:31:60"},"nodeType":"YulExpressionStatement","src":"4188:31:60"},{"nodeType":"YulAssignment","src":"4228:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"4238:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4228:6:60"}]},{"nodeType":"YulAssignment","src":"4252:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4279:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4290:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4275:3:60"},"nodeType":"YulFunctionCall","src":"4275:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4262:12:60"},"nodeType":"YulFunctionCall","src":"4262:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4252:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3971:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3982:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3994:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4002:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4010:6:60","type":""}],"src":"3917:383:60"},{"body":{"nodeType":"YulBlock","src":"4392:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"4438:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4447:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4450:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4440:6:60"},"nodeType":"YulFunctionCall","src":"4440:12:60"},"nodeType":"YulExpressionStatement","src":"4440:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4413:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4422:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4409:3:60"},"nodeType":"YulFunctionCall","src":"4409:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4434:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4405:3:60"},"nodeType":"YulFunctionCall","src":"4405:32:60"},"nodeType":"YulIf","src":"4402:52:60"},{"nodeType":"YulAssignment","src":"4463:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4486:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4473:12:60"},"nodeType":"YulFunctionCall","src":"4473:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4463:6:60"}]},{"nodeType":"YulAssignment","src":"4505:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4532:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4543:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4528:3:60"},"nodeType":"YulFunctionCall","src":"4528:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4515:12:60"},"nodeType":"YulFunctionCall","src":"4515:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4505:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4350:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4361:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4373:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4381:6:60","type":""}],"src":"4305:248:60"},{"body":{"nodeType":"YulBlock","src":"4709:481:60","statements":[{"nodeType":"YulVariableDeclaration","src":"4719:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4729:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4723:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4740:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4758:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4769:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4754:3:60"},"nodeType":"YulFunctionCall","src":"4754:18:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"4744:6:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4788:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4799:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4781:6:60"},"nodeType":"YulFunctionCall","src":"4781:21:60"},"nodeType":"YulExpressionStatement","src":"4781:21:60"},{"nodeType":"YulVariableDeclaration","src":"4811:17:60","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"4822:6:60"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"4815:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4837:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4857:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4851:5:60"},"nodeType":"YulFunctionCall","src":"4851:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4841:6:60","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"4880:6:60"},{"name":"length","nodeType":"YulIdentifier","src":"4888:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4873:6:60"},"nodeType":"YulFunctionCall","src":"4873:22:60"},"nodeType":"YulExpressionStatement","src":"4873:22:60"},{"nodeType":"YulAssignment","src":"4904:25:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4915:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4926:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4911:3:60"},"nodeType":"YulFunctionCall","src":"4911:18:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"4904:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"4938:29:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4956:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4964:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4952:3:60"},"nodeType":"YulFunctionCall","src":"4952:15:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"4942:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4976:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4985:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4980:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5044:120:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5065:3:60"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5076:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5070:5:60"},"nodeType":"YulFunctionCall","src":"5070:13:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5058:6:60"},"nodeType":"YulFunctionCall","src":"5058:26:60"},"nodeType":"YulExpressionStatement","src":"5058:26:60"},{"nodeType":"YulAssignment","src":"5097:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5108:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5113:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5104:3:60"},"nodeType":"YulFunctionCall","src":"5104:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"5097:3:60"}]},{"nodeType":"YulAssignment","src":"5129:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5143:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5151:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5139:3:60"},"nodeType":"YulFunctionCall","src":"5139:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"5129:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5006:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"5009:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5003:2:60"},"nodeType":"YulFunctionCall","src":"5003:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5017:18:60","statements":[{"nodeType":"YulAssignment","src":"5019:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5028:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"5031:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5024:3:60"},"nodeType":"YulFunctionCall","src":"5024:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5019:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"4999:3:60","statements":[]},"src":"4995:169:60"},{"nodeType":"YulAssignment","src":"5173:11:60","value":{"name":"pos","nodeType":"YulIdentifier","src":"5181:3:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5173:4:60"}]}]},"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":"4678:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4689:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4700:4:60","type":""}],"src":"4558:632:60"},{"body":{"nodeType":"YulBlock","src":"5279:283:60","statements":[{"body":{"nodeType":"YulBlock","src":"5328:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5337:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5340:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5330:6:60"},"nodeType":"YulFunctionCall","src":"5330:12:60"},"nodeType":"YulExpressionStatement","src":"5330:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5307:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5315:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5303:3:60"},"nodeType":"YulFunctionCall","src":"5303:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"5322:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5299:3:60"},"nodeType":"YulFunctionCall","src":"5299:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5292:6:60"},"nodeType":"YulFunctionCall","src":"5292:35:60"},"nodeType":"YulIf","src":"5289:55:60"},{"nodeType":"YulAssignment","src":"5353:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5376:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5363:12:60"},"nodeType":"YulFunctionCall","src":"5363:20:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5353:6:60"}]},{"body":{"nodeType":"YulBlock","src":"5426:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5435:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5438:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5428:6:60"},"nodeType":"YulFunctionCall","src":"5428:12:60"},"nodeType":"YulExpressionStatement","src":"5428:12:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5398:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5406:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5395:2:60"},"nodeType":"YulFunctionCall","src":"5395:30:60"},"nodeType":"YulIf","src":"5392:50:60"},{"nodeType":"YulAssignment","src":"5451:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5467:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5475:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5463:3:60"},"nodeType":"YulFunctionCall","src":"5463:17:60"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"5451:8:60"}]},{"body":{"nodeType":"YulBlock","src":"5540:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5549:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5552:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5542:6:60"},"nodeType":"YulFunctionCall","src":"5542:12:60"},"nodeType":"YulExpressionStatement","src":"5542:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5503:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5515:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"5518:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5511:3:60"},"nodeType":"YulFunctionCall","src":"5511:14:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5499:3:60"},"nodeType":"YulFunctionCall","src":"5499:27:60"},{"kind":"number","nodeType":"YulLiteral","src":"5528:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5495:3:60"},"nodeType":"YulFunctionCall","src":"5495:38:60"},{"name":"end","nodeType":"YulIdentifier","src":"5535:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5492:2:60"},"nodeType":"YulFunctionCall","src":"5492:47:60"},"nodeType":"YulIf","src":"5489:67:60"}]},"name":"abi_decode_array_uint256_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5242:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"5250:3:60","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"5258:8:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"5268:6:60","type":""}],"src":"5195:367:60"},{"body":{"nodeType":"YulBlock","src":"5723:616:60","statements":[{"body":{"nodeType":"YulBlock","src":"5769:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5778:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5781:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5771:6:60"},"nodeType":"YulFunctionCall","src":"5771:12:60"},"nodeType":"YulExpressionStatement","src":"5771:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5744:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5753:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5740:3:60"},"nodeType":"YulFunctionCall","src":"5740:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5765:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5736:3:60"},"nodeType":"YulFunctionCall","src":"5736:32:60"},"nodeType":"YulIf","src":"5733:52:60"},{"nodeType":"YulVariableDeclaration","src":"5794:37:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5821:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5808:12:60"},"nodeType":"YulFunctionCall","src":"5808:23:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5798:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5840:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"5850:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5844:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5895:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5904:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5907:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5897:6:60"},"nodeType":"YulFunctionCall","src":"5897:12:60"},"nodeType":"YulExpressionStatement","src":"5897:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5883:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5891:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5880:2:60"},"nodeType":"YulFunctionCall","src":"5880:14:60"},"nodeType":"YulIf","src":"5877:34:60"},{"nodeType":"YulVariableDeclaration","src":"5920:96:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5988:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"5999:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5984:3:60"},"nodeType":"YulFunctionCall","src":"5984:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6008:7:60"}],"functionName":{"name":"abi_decode_array_uint256_dyn_calldata","nodeType":"YulIdentifier","src":"5946:37:60"},"nodeType":"YulFunctionCall","src":"5946:70:60"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5924:8:60","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5934:8:60","type":""}]},{"nodeType":"YulAssignment","src":"6025:18:60","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"6035:8:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6025:6:60"}]},{"nodeType":"YulAssignment","src":"6052:18:60","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6062:8:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6052:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6079:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6112:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6123:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6108:3:60"},"nodeType":"YulFunctionCall","src":"6108:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6095:12:60"},"nodeType":"YulFunctionCall","src":"6095:32:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6083:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6156:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6165:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6168:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6158:6:60"},"nodeType":"YulFunctionCall","src":"6158:12:60"},"nodeType":"YulExpressionStatement","src":"6158:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6142:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6152:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6139:2:60"},"nodeType":"YulFunctionCall","src":"6139:16:60"},"nodeType":"YulIf","src":"6136:36:60"},{"nodeType":"YulVariableDeclaration","src":"6181:98:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6249:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6260:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6245:3:60"},"nodeType":"YulFunctionCall","src":"6245:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6271:7:60"}],"functionName":{"name":"abi_decode_array_uint256_dyn_calldata","nodeType":"YulIdentifier","src":"6207:37:60"},"nodeType":"YulFunctionCall","src":"6207:72:60"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"6185:8:60","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6195:8:60","type":""}]},{"nodeType":"YulAssignment","src":"6288:18:60","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6298:8:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6288:6:60"}]},{"nodeType":"YulAssignment","src":"6315:18:60","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6325:8:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6315:6:60"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint32_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5665:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5676:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5688:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5696:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5704:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5712:6:60","type":""}],"src":"5567:772:60"},{"body":{"nodeType":"YulBlock","src":"6431:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"6477:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6486:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6489:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6479:6:60"},"nodeType":"YulFunctionCall","src":"6479:12:60"},"nodeType":"YulExpressionStatement","src":"6479:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6452:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"6461:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6448:3:60"},"nodeType":"YulFunctionCall","src":"6448:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"6473:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6444:3:60"},"nodeType":"YulFunctionCall","src":"6444:32:60"},"nodeType":"YulIf","src":"6441:52:60"},{"nodeType":"YulAssignment","src":"6502:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6525:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6512:12:60"},"nodeType":"YulFunctionCall","src":"6512:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6502:6:60"}]},{"nodeType":"YulAssignment","src":"6544:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6571:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6582:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6567:3:60"},"nodeType":"YulFunctionCall","src":"6567:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6554:12:60"},"nodeType":"YulFunctionCall","src":"6554:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6544:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6389:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6400:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6412:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6420:6:60","type":""}],"src":"6344:248:60"},{"body":{"nodeType":"YulBlock","src":"6750:253:60","statements":[{"nodeType":"YulAssignment","src":"6760:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6772:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6783:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6768:3:60"},"nodeType":"YulFunctionCall","src":"6768:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6760:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6802:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6817:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6825:10:60","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6813:3:60"},"nodeType":"YulFunctionCall","src":"6813:23:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6795:6:60"},"nodeType":"YulFunctionCall","src":"6795:42:60"},"nodeType":"YulExpressionStatement","src":"6795:42:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6857:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6868:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6853:3:60"},"nodeType":"YulFunctionCall","src":"6853:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6877:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6885:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6873:3:60"},"nodeType":"YulFunctionCall","src":"6873:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6846:6:60"},"nodeType":"YulFunctionCall","src":"6846:67:60"},"nodeType":"YulExpressionStatement","src":"6846:67:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6933:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6944:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6929:3:60"},"nodeType":"YulFunctionCall","src":"6929:18:60"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6953:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6961:34:60","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6949:3:60"},"nodeType":"YulFunctionCall","src":"6949:47:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6922:6:60"},"nodeType":"YulFunctionCall","src":"6922:75:60"},"nodeType":"YulExpressionStatement","src":"6922:75:60"}]},"name":"abi_encode_tuple_t_uint32_t_uint96_t_uint128__to_t_uint32_t_uint96_t_uint128__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6703:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6714:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6722:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6730:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6741:4:60","type":""}],"src":"6597:406:60"},{"body":{"nodeType":"YulBlock","src":"7079:85:60","statements":[{"body":{"nodeType":"YulBlock","src":"7118:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7127:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7130:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7120:6:60"},"nodeType":"YulFunctionCall","src":"7120:12:60"},"nodeType":"YulExpressionStatement","src":"7120:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"7100:3:60"},{"name":"offset","nodeType":"YulIdentifier","src":"7105:6:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7096:3:60"},"nodeType":"YulFunctionCall","src":"7096:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"7114:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7092:3:60"},"nodeType":"YulFunctionCall","src":"7092:25:60"},"nodeType":"YulIf","src":"7089:45:60"},{"nodeType":"YulAssignment","src":"7143:15:60","value":{"name":"offset","nodeType":"YulIdentifier","src":"7152:6:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"7143:5:60"}]}]},"name":"abi_decode_struct_Slippage_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7053:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"7061:3:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"7069:5:60","type":""}],"src":"7008:156:60"},{"body":{"nodeType":"YulBlock","src":"7302:245:60","statements":[{"body":{"nodeType":"YulBlock","src":"7349:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7358:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7361:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7351:6:60"},"nodeType":"YulFunctionCall","src":"7351:12:60"},"nodeType":"YulExpressionStatement","src":"7351:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7323:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"7332:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7319:3:60"},"nodeType":"YulFunctionCall","src":"7319:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"7344:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7315:3:60"},"nodeType":"YulFunctionCall","src":"7315:33:60"},"nodeType":"YulIf","src":"7312:53:60"},{"nodeType":"YulAssignment","src":"7374:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7397:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7384:12:60"},"nodeType":"YulFunctionCall","src":"7384:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7374:6:60"}]},{"nodeType":"YulAssignment","src":"7416:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7443:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7454:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7439:3:60"},"nodeType":"YulFunctionCall","src":"7439:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7426:12:60"},"nodeType":"YulFunctionCall","src":"7426:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7416:6:60"}]},{"nodeType":"YulAssignment","src":"7467:74:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7517:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7528:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7513:3:60"},"nodeType":"YulFunctionCall","src":"7513:18:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7533:7:60"}],"functionName":{"name":"abi_decode_struct_Slippage_calldata","nodeType":"YulIdentifier","src":"7477:35:60"},"nodeType":"YulFunctionCall","src":"7477:64:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7467:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_struct$_Slippage_$12092_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7252:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7263:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7275:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7283:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7291:6:60","type":""}],"src":"7169:378:60"},{"body":{"nodeType":"YulBlock","src":"7639:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"7685:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7694:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7697:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7687:6:60"},"nodeType":"YulFunctionCall","src":"7687:12:60"},"nodeType":"YulExpressionStatement","src":"7687:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7660:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"7669:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7656:3:60"},"nodeType":"YulFunctionCall","src":"7656:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"7681:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7652:3:60"},"nodeType":"YulFunctionCall","src":"7652:32:60"},"nodeType":"YulIf","src":"7649:52:60"},{"nodeType":"YulAssignment","src":"7710:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7733:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7720:12:60"},"nodeType":"YulFunctionCall","src":"7720:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7710:6:60"}]},{"nodeType":"YulAssignment","src":"7752:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7779:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7790:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7775:3:60"},"nodeType":"YulFunctionCall","src":"7775:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7762:12:60"},"nodeType":"YulFunctionCall","src":"7762:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7752:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7597:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7608:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7620:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7628:6:60","type":""}],"src":"7552:248:60"},{"body":{"nodeType":"YulBlock","src":"7904:93:60","statements":[{"nodeType":"YulAssignment","src":"7914:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7926:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7937:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7922:3:60"},"nodeType":"YulFunctionCall","src":"7922:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7914:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7956:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7971:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7979:10:60","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7967:3:60"},"nodeType":"YulFunctionCall","src":"7967:23:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7949:6:60"},"nodeType":"YulFunctionCall","src":"7949:42:60"},"nodeType":"YulExpressionStatement","src":"7949:42:60"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7873:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7884:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7895:4:60","type":""}],"src":"7805:192:60"},{"body":{"nodeType":"YulBlock","src":"8034:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8051:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8054:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8044:6:60"},"nodeType":"YulFunctionCall","src":"8044:88:60"},"nodeType":"YulExpressionStatement","src":"8044:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8148:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8151:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8141:6:60"},"nodeType":"YulFunctionCall","src":"8141:15:60"},"nodeType":"YulExpressionStatement","src":"8141:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8172:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8175:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8165:6:60"},"nodeType":"YulFunctionCall","src":"8165:15:60"},"nodeType":"YulExpressionStatement","src":"8165:15:60"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"8002:184:60"},{"body":{"nodeType":"YulBlock","src":"8599:646:60","statements":[{"nodeType":"YulAssignment","src":"8609:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8621:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8632:3:60","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8617:3:60"},"nodeType":"YulFunctionCall","src":"8617:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8609:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"8645:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"8655:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8649:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8713:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8728:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"8736:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8724:3:60"},"nodeType":"YulFunctionCall","src":"8724:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8706:6:60"},"nodeType":"YulFunctionCall","src":"8706:34:60"},"nodeType":"YulExpressionStatement","src":"8706:34:60"},{"body":{"nodeType":"YulBlock","src":"8782:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8803:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8806:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8796:6:60"},"nodeType":"YulFunctionCall","src":"8796:88:60"},"nodeType":"YulExpressionStatement","src":"8796:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8904:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8907:4:60","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8897:6:60"},"nodeType":"YulFunctionCall","src":"8897:15:60"},"nodeType":"YulExpressionStatement","src":"8897:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8932:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8935:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8925:6:60"},"nodeType":"YulFunctionCall","src":"8925:15:60"},"nodeType":"YulExpressionStatement","src":"8925:15:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8762:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"8770:1:60","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8759:2:60"},"nodeType":"YulFunctionCall","src":"8759:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8752:6:60"},"nodeType":"YulFunctionCall","src":"8752:21:60"},"nodeType":"YulIf","src":"8749:201:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8970:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8981:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8966:3:60"},"nodeType":"YulFunctionCall","src":"8966:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"8986:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8959:6:60"},"nodeType":"YulFunctionCall","src":"8959:34:60"},"nodeType":"YulExpressionStatement","src":"8959:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9013:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9024:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9009:3:60"},"nodeType":"YulFunctionCall","src":"9009:18:60"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9033:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9041:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9029:3:60"},"nodeType":"YulFunctionCall","src":"9029:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9002:6:60"},"nodeType":"YulFunctionCall","src":"9002:43:60"},"nodeType":"YulExpressionStatement","src":"9002:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9065:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9076:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9061:3:60"},"nodeType":"YulFunctionCall","src":"9061:18:60"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9085:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"9093:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9081:3:60"},"nodeType":"YulFunctionCall","src":"9081:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9054:6:60"},"nodeType":"YulFunctionCall","src":"9054:43:60"},"nodeType":"YulExpressionStatement","src":"9054:43:60"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"9139:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9151:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9162:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9147:3:60"},"nodeType":"YulFunctionCall","src":"9147:19:60"}],"functionName":{"name":"abi_encode_struct_ValueVariables","nodeType":"YulIdentifier","src":"9106:32:60"},"nodeType":"YulFunctionCall","src":"9106:61:60"},"nodeType":"YulExpressionStatement","src":"9106:61:60"},{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"9211:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9223:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9234:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9219:3:60"},"nodeType":"YulFunctionCall","src":"9219:19:60"}],"functionName":{"name":"abi_encode_struct_RewardSummations","nodeType":"YulIdentifier","src":"9176:34:60"},"nodeType":"YulFunctionCall","src":"9176:63:60"},"nodeType":"YulExpressionStatement","src":"9176:63:60"}]},"name":"abi_encode_tuple_t_address_t_enum$_PoolType_$12083_t_contract$_IRewarder_$18144_t_address_t_struct$_ValueVariables_$12097_memory_ptr_t_struct$_RewardSummations_$12102_memory_ptr__to_t_address_t_uint8_t_address_t_address_t_struct$_ValueVariables_$12097_memory_ptr_t_struct$_RewardSummations_$12102_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8528:9:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8539:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8547:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8555:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8563:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8571:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8579:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8590:4:60","type":""}],"src":"8191:1054:60"},{"body":{"nodeType":"YulBlock","src":"9349:97:60","statements":[{"nodeType":"YulAssignment","src":"9359:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9371:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9382:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9367:3:60"},"nodeType":"YulFunctionCall","src":"9367:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9359:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9401:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9416:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"9424:14:60","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9412:3:60"},"nodeType":"YulFunctionCall","src":"9412:27:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9394:6:60"},"nodeType":"YulFunctionCall","src":"9394:46:60"},"nodeType":"YulExpressionStatement","src":"9394:46:60"}]},"name":"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9318:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9329:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9340:4:60","type":""}],"src":"9250:196:60"},{"body":{"nodeType":"YulBlock","src":"9578:125:60","statements":[{"nodeType":"YulAssignment","src":"9588:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9600:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9611:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9596:3:60"},"nodeType":"YulFunctionCall","src":"9596:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9588:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9630:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9645:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"9653:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9641:3:60"},"nodeType":"YulFunctionCall","src":"9641:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9623:6:60"},"nodeType":"YulFunctionCall","src":"9623:74:60"},"nodeType":"YulExpressionStatement","src":"9623:74:60"}]},"name":"abi_encode_tuple_t_contract$_IPangolinFactory_$18099__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9547:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9558:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9569:4:60","type":""}],"src":"9451:252:60"},{"body":{"nodeType":"YulBlock","src":"9823:125:60","statements":[{"nodeType":"YulAssignment","src":"9833:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9845:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9856:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9841:3:60"},"nodeType":"YulFunctionCall","src":"9841:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9833:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9875:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9890:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"9898:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9886:3:60"},"nodeType":"YulFunctionCall","src":"9886:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9868:6:60"},"nodeType":"YulFunctionCall","src":"9868:74:60"},"nodeType":"YulExpressionStatement","src":"9868:74:60"}]},"name":"abi_encode_tuple_t_contract$_ERC20_$9395__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9792:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9803:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9814:4:60","type":""}],"src":"9708:240:60"},{"body":{"nodeType":"YulBlock","src":"10054:310:60","statements":[{"body":{"nodeType":"YulBlock","src":"10100:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10109:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10112:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10102:6:60"},"nodeType":"YulFunctionCall","src":"10102:12:60"},"nodeType":"YulExpressionStatement","src":"10102:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10075:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"10084:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10071:3:60"},"nodeType":"YulFunctionCall","src":"10071:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"10096:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10067:3:60"},"nodeType":"YulFunctionCall","src":"10067:32:60"},"nodeType":"YulIf","src":"10064:52:60"},{"nodeType":"YulVariableDeclaration","src":"10125:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10151:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10138:12:60"},"nodeType":"YulFunctionCall","src":"10138:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10129:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10195:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10170:24:60"},"nodeType":"YulFunctionCall","src":"10170:31:60"},"nodeType":"YulExpressionStatement","src":"10170:31:60"},{"nodeType":"YulAssignment","src":"10210:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"10220:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10210:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"10234:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10266:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10277:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10262:3:60"},"nodeType":"YulFunctionCall","src":"10262:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10249:12:60"},"nodeType":"YulFunctionCall","src":"10249:32:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10238:7:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10316:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10325:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10328:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10318:6:60"},"nodeType":"YulFunctionCall","src":"10318:12:60"},"nodeType":"YulExpressionStatement","src":"10318:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10303:7:60"},{"kind":"number","nodeType":"YulLiteral","src":"10312:1:60","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10300:2:60"},"nodeType":"YulFunctionCall","src":"10300:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10293:6:60"},"nodeType":"YulFunctionCall","src":"10293:22:60"},"nodeType":"YulIf","src":"10290:42:60"},{"nodeType":"YulAssignment","src":"10341:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"10351:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10341:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_enum$_PoolType_$12083","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10012:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10023:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10035:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10043:6:60","type":""}],"src":"9953:411:60"},{"body":{"nodeType":"YulBlock","src":"10485:193:60","statements":[{"body":{"nodeType":"YulBlock","src":"10531:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10540:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10543:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10533:6:60"},"nodeType":"YulFunctionCall","src":"10533:12:60"},"nodeType":"YulExpressionStatement","src":"10533:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10506:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"10515:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10502:3:60"},"nodeType":"YulFunctionCall","src":"10502:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"10527:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10498:3:60"},"nodeType":"YulFunctionCall","src":"10498:32:60"},"nodeType":"YulIf","src":"10495:52:60"},{"nodeType":"YulAssignment","src":"10556:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10579:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10566:12:60"},"nodeType":"YulFunctionCall","src":"10566:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10556:6:60"}]},{"nodeType":"YulAssignment","src":"10598:74:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10648:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10659:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10644:3:60"},"nodeType":"YulFunctionCall","src":"10644:18:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10664:7:60"}],"functionName":{"name":"abi_decode_struct_Slippage_calldata","nodeType":"YulIdentifier","src":"10608:35:60"},"nodeType":"YulFunctionCall","src":"10608:64:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10598:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_Slippage_$12092_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10443:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10454:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10466:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10474:6:60","type":""}],"src":"10369:309:60"},{"body":{"nodeType":"YulBlock","src":"10857:237:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10874:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10885:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10867:6:60"},"nodeType":"YulFunctionCall","src":"10867:21:60"},"nodeType":"YulExpressionStatement","src":"10867:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10908:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10919:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10904:3:60"},"nodeType":"YulFunctionCall","src":"10904:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"10924:2:60","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10897:6:60"},"nodeType":"YulFunctionCall","src":"10897:30:60"},"nodeType":"YulExpressionStatement","src":"10897:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10947:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10958:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10943:3:60"},"nodeType":"YulFunctionCall","src":"10943:18:60"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"10963:34:60","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10936:6:60"},"nodeType":"YulFunctionCall","src":"10936:62:60"},"nodeType":"YulExpressionStatement","src":"10936:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11018:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11029:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11014:3:60"},"nodeType":"YulFunctionCall","src":"11014:18:60"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"11034:17:60","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11007:6:60"},"nodeType":"YulFunctionCall","src":"11007:45:60"},"nodeType":"YulExpressionStatement","src":"11007:45:60"},{"nodeType":"YulAssignment","src":"11061:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11073:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11084:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11069:3:60"},"nodeType":"YulFunctionCall","src":"11069:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11061:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10834:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10848:4:60","type":""}],"src":"10683:411:60"},{"body":{"nodeType":"YulBlock","src":"11131:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11148:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11151:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11141:6:60"},"nodeType":"YulFunctionCall","src":"11141:88:60"},"nodeType":"YulExpressionStatement","src":"11141:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11245:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11248:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11238:6:60"},"nodeType":"YulFunctionCall","src":"11238:15:60"},"nodeType":"YulExpressionStatement","src":"11238:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11269:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11272:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11262:6:60"},"nodeType":"YulFunctionCall","src":"11262:15:60"},"nodeType":"YulExpressionStatement","src":"11262:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"11099:184:60"},{"body":{"nodeType":"YulBlock","src":"11332:77:60","statements":[{"body":{"nodeType":"YulBlock","src":"11387:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11396:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11399:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11389:6:60"},"nodeType":"YulFunctionCall","src":"11389:12:60"},"nodeType":"YulExpressionStatement","src":"11389:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11355:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11366:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"11373:10:60","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11362:3:60"},"nodeType":"YulFunctionCall","src":"11362:22:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"11352:2:60"},"nodeType":"YulFunctionCall","src":"11352:33:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11345:6:60"},"nodeType":"YulFunctionCall","src":"11345:41:60"},"nodeType":"YulIf","src":"11342:61:60"}]},"name":"validator_revert_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11321:5:60","type":""}],"src":"11288:121:60"},{"body":{"nodeType":"YulBlock","src":"11483:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"11529:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11538:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11541:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11531:6:60"},"nodeType":"YulFunctionCall","src":"11531:12:60"},"nodeType":"YulExpressionStatement","src":"11531:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11504:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"11513:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11500:3:60"},"nodeType":"YulFunctionCall","src":"11500:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"11525:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11496:3:60"},"nodeType":"YulFunctionCall","src":"11496:32:60"},"nodeType":"YulIf","src":"11493:52:60"},{"nodeType":"YulVariableDeclaration","src":"11554:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11580:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11567:12:60"},"nodeType":"YulFunctionCall","src":"11567:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11558:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11623:5:60"}],"functionName":{"name":"validator_revert_uint32","nodeType":"YulIdentifier","src":"11599:23:60"},"nodeType":"YulFunctionCall","src":"11599:30:60"},"nodeType":"YulExpressionStatement","src":"11599:30:60"},{"nodeType":"YulAssignment","src":"11638:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"11648:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11638:6:60"}]}]},"name":"abi_decode_tuple_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11449:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11460:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11472:6:60","type":""}],"src":"11414:245:60"},{"body":{"nodeType":"YulBlock","src":"11696:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11713:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11716:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11706:6:60"},"nodeType":"YulFunctionCall","src":"11706:88:60"},"nodeType":"YulExpressionStatement","src":"11706:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11810:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11813:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11803:6:60"},"nodeType":"YulFunctionCall","src":"11803:15:60"},"nodeType":"YulExpressionStatement","src":"11803:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11834:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11837:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11827:6:60"},"nodeType":"YulFunctionCall","src":"11827:15:60"},"nodeType":"YulExpressionStatement","src":"11827:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"11664:184:60"},{"body":{"nodeType":"YulBlock","src":"11901:321:60","statements":[{"nodeType":"YulVariableDeclaration","src":"11911:19:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11925:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"11928:1:60","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11921:3:60"},"nodeType":"YulFunctionCall","src":"11921:9:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11915:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"12042:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12044:16:60"},"nodeType":"YulFunctionCall","src":"12044:18:60"},"nodeType":"YulExpressionStatement","src":"12044:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11953:2:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11946:6:60"},"nodeType":"YulFunctionCall","src":"11946:10:60"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11962:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11969:66:60","type":"","value":"0x8000000000000000000000000000000000000000000000000000000000000000"},{"name":"y","nodeType":"YulIdentifier","src":"12037:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11965:3:60"},"nodeType":"YulFunctionCall","src":"11965:74:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11958:3:60"},"nodeType":"YulFunctionCall","src":"11958:82:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11942:3:60"},"nodeType":"YulFunctionCall","src":"11942:99:60"},"nodeType":"YulIf","src":"11939:125:60"},{"body":{"nodeType":"YulBlock","src":"12168:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12170:16:60"},"nodeType":"YulFunctionCall","src":"12170:18:60"},"nodeType":"YulExpressionStatement","src":"12170:18:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12080:2:60"},{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12088:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12095:66:60","type":"","value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"y","nodeType":"YulIdentifier","src":"12163:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12091:3:60"},"nodeType":"YulFunctionCall","src":"12091:74:60"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12084:3:60"},"nodeType":"YulFunctionCall","src":"12084:82:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12076:3:60"},"nodeType":"YulFunctionCall","src":"12076:91:60"},"nodeType":"YulIf","src":"12073:117:60"},{"nodeType":"YulAssignment","src":"12199:17:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12211:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"12214:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12207:3:60"},"nodeType":"YulFunctionCall","src":"12207:9:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12199:4:60"}]}]},"name":"checked_sub_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11883:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"11886:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"11892:4:60","type":""}],"src":"11853:369:60"},{"body":{"nodeType":"YulBlock","src":"12274:320:60","statements":[{"nodeType":"YulVariableDeclaration","src":"12284:19:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12298:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"12301:1:60","type":"","value":"0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12294:3:60"},"nodeType":"YulFunctionCall","src":"12294:9:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12288:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"12415:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12417:16:60"},"nodeType":"YulFunctionCall","src":"12417:18:60"},"nodeType":"YulExpressionStatement","src":"12417:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12326:2:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12319:6:60"},"nodeType":"YulFunctionCall","src":"12319:10:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12335:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12342:66:60","type":"","value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"12410:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12338:3:60"},"nodeType":"YulFunctionCall","src":"12338:74:60"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12331:3:60"},"nodeType":"YulFunctionCall","src":"12331:82:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12315:3:60"},"nodeType":"YulFunctionCall","src":"12315:99:60"},"nodeType":"YulIf","src":"12312:125:60"},{"body":{"nodeType":"YulBlock","src":"12541:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12543:16:60"},"nodeType":"YulFunctionCall","src":"12543:18:60"},"nodeType":"YulExpressionStatement","src":"12543:18:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12453:2:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12461:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12468:66:60","type":"","value":"0x8000000000000000000000000000000000000000000000000000000000000000"},{"name":"x","nodeType":"YulIdentifier","src":"12536:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12464:3:60"},"nodeType":"YulFunctionCall","src":"12464:74:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12457:3:60"},"nodeType":"YulFunctionCall","src":"12457:82:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12449:3:60"},"nodeType":"YulFunctionCall","src":"12449:91:60"},"nodeType":"YulIf","src":"12446:117:60"},{"nodeType":"YulAssignment","src":"12572:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12583:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"12586:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12579:3:60"},"nodeType":"YulFunctionCall","src":"12579:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12572:3:60"}]}]},"name":"checked_add_t_int256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12257:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"12260:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12266:3:60","type":""}],"src":"12227:367:60"},{"body":{"nodeType":"YulBlock","src":"12819:265:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12836:3:60"},{"hexValue":"4920616d20726561647920746f206c6f73652065766572797468696e6720696e","kind":"string","nodeType":"YulLiteral","src":"12841:34:60","type":"","value":"I am ready to lose everything in"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12829:6:60"},"nodeType":"YulFunctionCall","src":"12829:47:60"},"nodeType":"YulExpressionStatement","src":"12829:47:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12896:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"12901:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12892:3:60"},"nodeType":"YulFunctionCall","src":"12892:12:60"},{"hexValue":"207468697320706f6f6c2e204c6574206d6520676f2e","kind":"string","nodeType":"YulLiteral","src":"12906:24:60","type":"","value":" this pool. Let me go."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12885:6:60"},"nodeType":"YulFunctionCall","src":"12885:46:60"},"nodeType":"YulExpressionStatement","src":"12885:46:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12951:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"12956:2:60","type":"","value":"54"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12947:3:60"},"nodeType":"YulFunctionCall","src":"12947:12:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12969:2:60","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"12973:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12965:3:60"},"nodeType":"YulFunctionCall","src":"12965:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"12982:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12961:3:60"},"nodeType":"YulFunctionCall","src":"12961:88:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12940:6:60"},"nodeType":"YulFunctionCall","src":"12940:110:60"},"nodeType":"YulExpressionStatement","src":"12940:110:60"},{"nodeType":"YulAssignment","src":"13059:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13070:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13075:2:60","type":"","value":"74"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13066:3:60"},"nodeType":"YulFunctionCall","src":"13066:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"13059:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_20f25d32b0cb64e41972e299b60a4330dcafaec2c5ff591af09ef6310fd84c85_t_address__to_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12795:3:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12800:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12811:3:60","type":""}],"src":"12599:485:60"},{"body":{"nodeType":"YulBlock","src":"13136:197:60","statements":[{"nodeType":"YulVariableDeclaration","src":"13146:36:60","value":{"kind":"number","nodeType":"YulLiteral","src":"13156:26:60","type":"","value":"0xffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13150:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13191:21:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13206:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"13209:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13202:3:60"},"nodeType":"YulFunctionCall","src":"13202:10:60"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"13195:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13221:21:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13236:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"13239:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13232:3:60"},"nodeType":"YulFunctionCall","src":"13232:10:60"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"13225:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"13276:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13278:16:60"},"nodeType":"YulFunctionCall","src":"13278:18:60"},"nodeType":"YulExpressionStatement","src":"13278:18:60"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"13257:3:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13266:2:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"13270:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13262:3:60"},"nodeType":"YulFunctionCall","src":"13262:12:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13254:2:60"},"nodeType":"YulFunctionCall","src":"13254:21:60"},"nodeType":"YulIf","src":"13251:47:60"},{"nodeType":"YulAssignment","src":"13307:20:60","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"13318:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"13323:3:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13314:3:60"},"nodeType":"YulFunctionCall","src":"13314:13:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"13307:3:60"}]}]},"name":"checked_add_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13119:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"13122:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"13128:3:60","type":""}],"src":"13089:244:60"},{"body":{"nodeType":"YulBlock","src":"13386:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"13413:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13415:16:60"},"nodeType":"YulFunctionCall","src":"13415:18:60"},"nodeType":"YulExpressionStatement","src":"13415:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13402:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13409:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13405:3:60"},"nodeType":"YulFunctionCall","src":"13405:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13399:2:60"},"nodeType":"YulFunctionCall","src":"13399:13:60"},"nodeType":"YulIf","src":"13396:39:60"},{"nodeType":"YulAssignment","src":"13444:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13455:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"13458:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13451:3:60"},"nodeType":"YulFunctionCall","src":"13451:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"13444:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13369:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"13372:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"13378:3:60","type":""}],"src":"13338:128:60"},{"body":{"nodeType":"YulBlock","src":"13503:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13520:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13523:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13513:6:60"},"nodeType":"YulFunctionCall","src":"13513:88:60"},"nodeType":"YulExpressionStatement","src":"13513:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13617:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13620:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13610:6:60"},"nodeType":"YulFunctionCall","src":"13610:15:60"},"nodeType":"YulExpressionStatement","src":"13610:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13641:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13644:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13634:6:60"},"nodeType":"YulFunctionCall","src":"13634:15:60"},"nodeType":"YulExpressionStatement","src":"13634:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"13471:184:60"},{"body":{"nodeType":"YulBlock","src":"13757:563:60","statements":[{"body":{"nodeType":"YulBlock","src":"13803:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13812:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13815:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13805:6:60"},"nodeType":"YulFunctionCall","src":"13805:12:60"},"nodeType":"YulExpressionStatement","src":"13805:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13778:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"13787:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13774:3:60"},"nodeType":"YulFunctionCall","src":"13774:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"13799:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13770:3:60"},"nodeType":"YulFunctionCall","src":"13770:32:60"},"nodeType":"YulIf","src":"13767:52:60"},{"nodeType":"YulVariableDeclaration","src":"13828:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13848:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13842:5:60"},"nodeType":"YulFunctionCall","src":"13842:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"13832:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13860:33:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13882:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"13890:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13878:3:60"},"nodeType":"YulFunctionCall","src":"13878:15:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"13864:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"13976:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13997:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14000:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13990:6:60"},"nodeType":"YulFunctionCall","src":"13990:88:60"},"nodeType":"YulExpressionStatement","src":"13990:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14098:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14101:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14091:6:60"},"nodeType":"YulFunctionCall","src":"14091:15:60"},"nodeType":"YulExpressionStatement","src":"14091:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14126:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14129:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14119:6:60"},"nodeType":"YulFunctionCall","src":"14119:15:60"},"nodeType":"YulExpressionStatement","src":"14119:15:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"13911:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"13923:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13908:2:60"},"nodeType":"YulFunctionCall","src":"13908:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"13947:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"13959:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13944:2:60"},"nodeType":"YulFunctionCall","src":"13944:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"13905:2:60"},"nodeType":"YulFunctionCall","src":"13905:62:60"},"nodeType":"YulIf","src":"13902:242:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14160:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"14164:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14153:6:60"},"nodeType":"YulFunctionCall","src":"14153:22:60"},"nodeType":"YulExpressionStatement","src":"14153:22:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14191:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14212:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14199:12:60"},"nodeType":"YulFunctionCall","src":"14199:23:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14184:6:60"},"nodeType":"YulFunctionCall","src":"14184:39:60"},"nodeType":"YulExpressionStatement","src":"14184:39:60"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14243:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"14251:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14239:3:60"},"nodeType":"YulFunctionCall","src":"14239:15:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14273:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14284:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14269:3:60"},"nodeType":"YulFunctionCall","src":"14269:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14256:12:60"},"nodeType":"YulFunctionCall","src":"14256:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14232:6:60"},"nodeType":"YulFunctionCall","src":"14232:57:60"},"nodeType":"YulExpressionStatement","src":"14232:57:60"},{"nodeType":"YulAssignment","src":"14298:16:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"14308:6:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14298:6:60"}]}]},"name":"abi_decode_tuple_t_struct$_Slippage_$12092_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13723:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13734:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13746:6:60","type":""}],"src":"13660:660:60"},{"body":{"nodeType":"YulBlock","src":"14377:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"14496:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14498:16:60"},"nodeType":"YulFunctionCall","src":"14498:18:60"},"nodeType":"YulExpressionStatement","src":"14498:18:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14408:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14401:6:60"},"nodeType":"YulFunctionCall","src":"14401:9:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14394:6:60"},"nodeType":"YulFunctionCall","src":"14394:17:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14416:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14423:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"14491:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14419:3:60"},"nodeType":"YulFunctionCall","src":"14419:74:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14413:2:60"},"nodeType":"YulFunctionCall","src":"14413:81:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14390:3:60"},"nodeType":"YulFunctionCall","src":"14390:105:60"},"nodeType":"YulIf","src":"14387:131:60"},{"nodeType":"YulAssignment","src":"14527:20:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14542:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"14545:1:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"14538:3:60"},"nodeType":"YulFunctionCall","src":"14538:9:60"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"14527:7:60"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14356:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"14359:1:60","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"14365:7:60","type":""}],"src":"14325:228:60"},{"body":{"nodeType":"YulBlock","src":"14590:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14607:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14610:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14600:6:60"},"nodeType":"YulFunctionCall","src":"14600:88:60"},"nodeType":"YulExpressionStatement","src":"14600:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14704:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14707:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14697:6:60"},"nodeType":"YulFunctionCall","src":"14697:15:60"},"nodeType":"YulExpressionStatement","src":"14697:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14728:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14731:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14721:6:60"},"nodeType":"YulFunctionCall","src":"14721:15:60"},"nodeType":"YulExpressionStatement","src":"14721:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"14558:184:60"},{"body":{"nodeType":"YulBlock","src":"14793:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"14824:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14845:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14848:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14838:6:60"},"nodeType":"YulFunctionCall","src":"14838:88:60"},"nodeType":"YulExpressionStatement","src":"14838:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14946:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14949:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14939:6:60"},"nodeType":"YulFunctionCall","src":"14939:15:60"},"nodeType":"YulExpressionStatement","src":"14939:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14974:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14977:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14967:6:60"},"nodeType":"YulFunctionCall","src":"14967:15:60"},"nodeType":"YulExpressionStatement","src":"14967:15:60"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14813:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14806:6:60"},"nodeType":"YulFunctionCall","src":"14806:9:60"},"nodeType":"YulIf","src":"14803:189:60"},{"nodeType":"YulAssignment","src":"15001:14:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15010:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"15013:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"15006:3:60"},"nodeType":"YulFunctionCall","src":"15006:9:60"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"15001:1:60"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14778:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"14781:1:60","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"14787:1:60","type":""}],"src":"14747:274:60"},{"body":{"nodeType":"YulBlock","src":"15200:165:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15217:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15228:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15210:6:60"},"nodeType":"YulFunctionCall","src":"15210:21:60"},"nodeType":"YulExpressionStatement","src":"15210:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15251:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15262:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15247:3:60"},"nodeType":"YulFunctionCall","src":"15247:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"15267:2:60","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15240:6:60"},"nodeType":"YulFunctionCall","src":"15240:30:60"},"nodeType":"YulExpressionStatement","src":"15240:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15290:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15301:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15286:3:60"},"nodeType":"YulFunctionCall","src":"15286:18:60"},{"hexValue":"5452414e534645525f4641494c4544","kind":"string","nodeType":"YulLiteral","src":"15306:17:60","type":"","value":"TRANSFER_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15279:6:60"},"nodeType":"YulFunctionCall","src":"15279:45:60"},"nodeType":"YulExpressionStatement","src":"15279:45:60"},{"nodeType":"YulAssignment","src":"15333:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15345:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15356:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15341:3:60"},"nodeType":"YulFunctionCall","src":"15341:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15333:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15177:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15191:4:60","type":""}],"src":"15026:339:60"},{"body":{"nodeType":"YulBlock","src":"15402:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15419:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15422:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15412:6:60"},"nodeType":"YulFunctionCall","src":"15412:88:60"},"nodeType":"YulExpressionStatement","src":"15412:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15516:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15519:4:60","type":"","value":"0x01"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15509:6:60"},"nodeType":"YulFunctionCall","src":"15509:15:60"},"nodeType":"YulExpressionStatement","src":"15509:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15540:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15543:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15533:6:60"},"nodeType":"YulFunctionCall","src":"15533:15:60"},"nodeType":"YulExpressionStatement","src":"15533:15:60"}]},"name":"panic_error_0x01","nodeType":"YulFunctionDefinition","src":"15370:184:60"},{"body":{"nodeType":"YulBlock","src":"15766:315:60","statements":[{"nodeType":"YulAssignment","src":"15776:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15788:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15799:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15784:3:60"},"nodeType":"YulFunctionCall","src":"15784:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15776:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15819:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"15830:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15812:6:60"},"nodeType":"YulFunctionCall","src":"15812:25:60"},"nodeType":"YulExpressionStatement","src":"15812:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15857:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15868:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15853:3:60"},"nodeType":"YulFunctionCall","src":"15853:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15877:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"15885:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15873:3:60"},"nodeType":"YulFunctionCall","src":"15873:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15846:6:60"},"nodeType":"YulFunctionCall","src":"15846:83:60"},"nodeType":"YulExpressionStatement","src":"15846:83:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15949:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15960:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15945:3:60"},"nodeType":"YulFunctionCall","src":"15945:18:60"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"15979:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15972:6:60"},"nodeType":"YulFunctionCall","src":"15972:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15965:6:60"},"nodeType":"YulFunctionCall","src":"15965:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15938:6:60"},"nodeType":"YulFunctionCall","src":"15938:50:60"},"nodeType":"YulExpressionStatement","src":"15938:50:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16008:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16019:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16004:3:60"},"nodeType":"YulFunctionCall","src":"16004:18:60"},{"name":"value3","nodeType":"YulIdentifier","src":"16024:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15997:6:60"},"nodeType":"YulFunctionCall","src":"15997:34:60"},"nodeType":"YulExpressionStatement","src":"15997:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16051:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16062:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16047:3:60"},"nodeType":"YulFunctionCall","src":"16047:19:60"},{"name":"value4","nodeType":"YulIdentifier","src":"16068:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16040:6:60"},"nodeType":"YulFunctionCall","src":"16040:35:60"},"nodeType":"YulExpressionStatement","src":"16040:35:60"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_bool_t_uint256_t_uint256__to_t_uint256_t_address_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15703:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"15714:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15722:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15730:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15738:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15746:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15757:4:60","type":""}],"src":"15559:522:60"},{"body":{"nodeType":"YulBlock","src":"16134:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"16144:44:60","value":{"kind":"number","nodeType":"YulLiteral","src":"16154:34:60","type":"","value":"0xffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16148:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16197:21:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"16212:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"16215:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16208:3:60"},"nodeType":"YulFunctionCall","src":"16208:10:60"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"16201:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16227:21:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"16242:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"16245:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16238:3:60"},"nodeType":"YulFunctionCall","src":"16238:10:60"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"16231:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"16282:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"16284:16:60"},"nodeType":"YulFunctionCall","src":"16284:18:60"},"nodeType":"YulExpressionStatement","src":"16284:18:60"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"16263:3:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16272:2:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"16276:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16268:3:60"},"nodeType":"YulFunctionCall","src":"16268:12:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16260:2:60"},"nodeType":"YulFunctionCall","src":"16260:21:60"},"nodeType":"YulIf","src":"16257:47:60"},{"nodeType":"YulAssignment","src":"16313:20:60","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"16324:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"16329:3:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16320:3:60"},"nodeType":"YulFunctionCall","src":"16320:13:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"16313:3:60"}]}]},"name":"checked_add_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"16117:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"16120:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"16126:3:60","type":""}],"src":"16086:253:60"},{"body":{"nodeType":"YulBlock","src":"16453:76:60","statements":[{"nodeType":"YulAssignment","src":"16463:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16475:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16486:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16471:3:60"},"nodeType":"YulFunctionCall","src":"16471:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16463:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16505:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"16516:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16498:6:60"},"nodeType":"YulFunctionCall","src":"16498:25:60"},"nodeType":"YulExpressionStatement","src":"16498:25:60"}]},"name":"abi_encode_tuple_t_rational_0_by_1__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16422:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16433:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16444:4:60","type":""}],"src":"16344:185:60"},{"body":{"nodeType":"YulBlock","src":"16753:337:60","statements":[{"nodeType":"YulAssignment","src":"16763:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16775:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16786:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16771:3:60"},"nodeType":"YulFunctionCall","src":"16771:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16763:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16806:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"16817:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16799:6:60"},"nodeType":"YulFunctionCall","src":"16799:25:60"},"nodeType":"YulExpressionStatement","src":"16799:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16844:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16855:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16840:3:60"},"nodeType":"YulFunctionCall","src":"16840:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16864:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"16872:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16860:3:60"},"nodeType":"YulFunctionCall","src":"16860:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16833:6:60"},"nodeType":"YulFunctionCall","src":"16833:83:60"},"nodeType":"YulExpressionStatement","src":"16833:83:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16936:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16947:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16932:3:60"},"nodeType":"YulFunctionCall","src":"16932:18:60"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16966:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16959:6:60"},"nodeType":"YulFunctionCall","src":"16959:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16952:6:60"},"nodeType":"YulFunctionCall","src":"16952:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16925:6:60"},"nodeType":"YulFunctionCall","src":"16925:50:60"},"nodeType":"YulExpressionStatement","src":"16925:50:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16995:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17006:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16991:3:60"},"nodeType":"YulFunctionCall","src":"16991:18:60"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"17015:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17023:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17011:3:60"},"nodeType":"YulFunctionCall","src":"17011:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16984:6:60"},"nodeType":"YulFunctionCall","src":"16984:45:60"},"nodeType":"YulExpressionStatement","src":"16984:45:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17049:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17060:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17045:3:60"},"nodeType":"YulFunctionCall","src":"17045:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17070:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17078:4:60","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17066:3:60"},"nodeType":"YulFunctionCall","src":"17066:17:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17038:6:60"},"nodeType":"YulFunctionCall","src":"17038:46:60"},"nodeType":"YulExpressionStatement","src":"17038:46:60"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_bool_t_rational_0_by_1_t_rational_0_by_1__to_t_uint256_t_address_t_bool_t_uint8_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16690:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16701:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16709:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16717:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16725:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16733:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16744:4:60","type":""}],"src":"16534:556:60"},{"body":{"nodeType":"YulBlock","src":"17144:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"17166:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17168:16:60"},"nodeType":"YulFunctionCall","src":"17168:18:60"},"nodeType":"YulExpressionStatement","src":"17168:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17160:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"17163:1:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17157:2:60"},"nodeType":"YulFunctionCall","src":"17157:8:60"},"nodeType":"YulIf","src":"17154:34:60"},{"nodeType":"YulAssignment","src":"17197:17:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17209:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"17212:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17205:3:60"},"nodeType":"YulFunctionCall","src":"17205:9:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"17197:4:60"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17126:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"17129:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"17135:4:60","type":""}],"src":"17095:125:60"},{"body":{"nodeType":"YulBlock","src":"17399:170:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17416:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17427:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17409:6:60"},"nodeType":"YulFunctionCall","src":"17409:21:60"},"nodeType":"YulExpressionStatement","src":"17409:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17450:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17461:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17446:3:60"},"nodeType":"YulFunctionCall","src":"17446:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"17466:2:60","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17439:6:60"},"nodeType":"YulFunctionCall","src":"17439:30:60"},"nodeType":"YulExpressionStatement","src":"17439:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17489:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17500:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17485:3:60"},"nodeType":"YulFunctionCall","src":"17485:18:60"},{"hexValue":"5452414e534645525f46524f4d5f4641494c4544","kind":"string","nodeType":"YulLiteral","src":"17505:22:60","type":"","value":"TRANSFER_FROM_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17478:6:60"},"nodeType":"YulFunctionCall","src":"17478:50:60"},"nodeType":"YulExpressionStatement","src":"17478:50:60"},{"nodeType":"YulAssignment","src":"17537:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17549:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17560:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17545:3:60"},"nodeType":"YulFunctionCall","src":"17545:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17537:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_77631768048ee92f9dcf4b9b9d762877d6b9723214862c733f0596708fc219b7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17376:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17390:4:60","type":""}],"src":"17225:344:60"},{"body":{"nodeType":"YulBlock","src":"17622:211:60","statements":[{"nodeType":"YulVariableDeclaration","src":"17632:50:60","value":{"kind":"number","nodeType":"YulLiteral","src":"17642:40:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17636:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17691:21:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17706:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"17709:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17702:3:60"},"nodeType":"YulFunctionCall","src":"17702:10:60"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"17695:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17721:21:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"17736:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"17739:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17732:3:60"},"nodeType":"YulFunctionCall","src":"17732:10:60"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"17725:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"17776:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17778:16:60"},"nodeType":"YulFunctionCall","src":"17778:18:60"},"nodeType":"YulExpressionStatement","src":"17778:18:60"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"17757:3:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17766:2:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"17770:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17762:3:60"},"nodeType":"YulFunctionCall","src":"17762:12:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17754:2:60"},"nodeType":"YulFunctionCall","src":"17754:21:60"},"nodeType":"YulIf","src":"17751:47:60"},{"nodeType":"YulAssignment","src":"17807:20:60","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"17818:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"17823:3:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17814:3:60"},"nodeType":"YulFunctionCall","src":"17814:13:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17807:3:60"}]}]},"name":"checked_add_t_uint152","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17605:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"17608:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17614:3:60","type":""}],"src":"17574:259:60"},{"body":{"nodeType":"YulBlock","src":"17885:148:60","statements":[{"body":{"nodeType":"YulBlock","src":"17976:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17978:16:60"},"nodeType":"YulFunctionCall","src":"17978:18:60"},"nodeType":"YulExpressionStatement","src":"17978:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17901:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17908:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"17898:2:60"},"nodeType":"YulFunctionCall","src":"17898:77:60"},"nodeType":"YulIf","src":"17895:103:60"},{"nodeType":"YulAssignment","src":"18007:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18018:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"18025:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18014:3:60"},"nodeType":"YulFunctionCall","src":"18014:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"18007:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"17867:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"17877:3:60","type":""}],"src":"17838:195:60"},{"body":{"nodeType":"YulBlock","src":"18136:287:60","statements":[{"body":{"nodeType":"YulBlock","src":"18182:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18191:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18194:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18184:6:60"},"nodeType":"YulFunctionCall","src":"18184:12:60"},"nodeType":"YulExpressionStatement","src":"18184:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"18157:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"18166:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18153:3:60"},"nodeType":"YulFunctionCall","src":"18153:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"18178:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18149:3:60"},"nodeType":"YulFunctionCall","src":"18149:32:60"},"nodeType":"YulIf","src":"18146:52:60"},{"nodeType":"YulVariableDeclaration","src":"18207:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18226:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18220:5:60"},"nodeType":"YulFunctionCall","src":"18220:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"18211:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18270:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"18245:24:60"},"nodeType":"YulFunctionCall","src":"18245:31:60"},"nodeType":"YulExpressionStatement","src":"18245:31:60"},{"nodeType":"YulAssignment","src":"18285:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"18295:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"18285:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"18309:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18334:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18345:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18330:3:60"},"nodeType":"YulFunctionCall","src":"18330:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18324:5:60"},"nodeType":"YulFunctionCall","src":"18324:25:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"18313:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"18383:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"18358:24:60"},"nodeType":"YulFunctionCall","src":"18358:33:60"},"nodeType":"YulExpressionStatement","src":"18358:33:60"},{"nodeType":"YulAssignment","src":"18400:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"18410:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"18400:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18094:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"18105:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"18117:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18125:6:60","type":""}],"src":"18038:385:60"},{"body":{"nodeType":"YulBlock","src":"18557:198:60","statements":[{"nodeType":"YulAssignment","src":"18567:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18579:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18590:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18575:3:60"},"nodeType":"YulFunctionCall","src":"18575:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18567:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"18602:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"18612:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18606:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18670:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18685:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"18693:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18681:3:60"},"nodeType":"YulFunctionCall","src":"18681:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18663:6:60"},"nodeType":"YulFunctionCall","src":"18663:34:60"},"nodeType":"YulExpressionStatement","src":"18663:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18717:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18728:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18713:3:60"},"nodeType":"YulFunctionCall","src":"18713:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18737:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"18745:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18733:3:60"},"nodeType":"YulFunctionCall","src":"18733:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18706:6:60"},"nodeType":"YulFunctionCall","src":"18706:43:60"},"nodeType":"YulExpressionStatement","src":"18706:43:60"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18518:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18529:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18537:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18548:4:60","type":""}],"src":"18428:327:60"},{"body":{"nodeType":"YulBlock","src":"18841:170:60","statements":[{"body":{"nodeType":"YulBlock","src":"18887:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18896:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18899:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18889:6:60"},"nodeType":"YulFunctionCall","src":"18889:12:60"},"nodeType":"YulExpressionStatement","src":"18889:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"18862:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"18871:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18858:3:60"},"nodeType":"YulFunctionCall","src":"18858:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"18883:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18854:3:60"},"nodeType":"YulFunctionCall","src":"18854:32:60"},"nodeType":"YulIf","src":"18851:52:60"},{"nodeType":"YulVariableDeclaration","src":"18912:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18931:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18925:5:60"},"nodeType":"YulFunctionCall","src":"18925:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"18916:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"18975:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"18950:24:60"},"nodeType":"YulFunctionCall","src":"18950:31:60"},"nodeType":"YulExpressionStatement","src":"18950:31:60"},{"nodeType":"YulAssignment","src":"18990:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"19000:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"18990:6:60"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18807:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"18818:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"18830:6:60","type":""}],"src":"18760:251:60"},{"body":{"nodeType":"YulBlock","src":"19069:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"19079:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"19088:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19083:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"19148:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19173:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"19178:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19169:3:60"},"nodeType":"YulFunctionCall","src":"19169:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"19192:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"19197:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19188:3:60"},"nodeType":"YulFunctionCall","src":"19188:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19182:5:60"},"nodeType":"YulFunctionCall","src":"19182:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19162:6:60"},"nodeType":"YulFunctionCall","src":"19162:39:60"},"nodeType":"YulExpressionStatement","src":"19162:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19109:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"19112:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19106:2:60"},"nodeType":"YulFunctionCall","src":"19106:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19120:19:60","statements":[{"nodeType":"YulAssignment","src":"19122:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19131:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"19134:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19127:3:60"},"nodeType":"YulFunctionCall","src":"19127:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19122:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"19102:3:60","statements":[]},"src":"19098:113:60"},{"body":{"nodeType":"YulBlock","src":"19237:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19250:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"19255:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19246:3:60"},"nodeType":"YulFunctionCall","src":"19246:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"19264:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19239:6:60"},"nodeType":"YulFunctionCall","src":"19239:27:60"},"nodeType":"YulExpressionStatement","src":"19239:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19226:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"19229:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19223:2:60"},"nodeType":"YulFunctionCall","src":"19223:13:60"},"nodeType":"YulIf","src":"19220:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"19047:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"19052:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"19057:6:60","type":""}],"src":"19016:258:60"},{"body":{"nodeType":"YulBlock","src":"19668:397:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19685:3:60"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"19690:25:60","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19678:6:60"},"nodeType":"YulFunctionCall","src":"19678:38:60"},"nodeType":"YulExpressionStatement","src":"19678:38:60"},{"nodeType":"YulVariableDeclaration","src":"19725:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19745:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19739:5:60"},"nodeType":"YulFunctionCall","src":"19739:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19729:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19787:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"19795:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19783:3:60"},"nodeType":"YulFunctionCall","src":"19783:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19806:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19811:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19802:3:60"},"nodeType":"YulFunctionCall","src":"19802:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"19816:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"19761:21:60"},"nodeType":"YulFunctionCall","src":"19761:62:60"},"nodeType":"YulExpressionStatement","src":"19761:62:60"},{"nodeType":"YulVariableDeclaration","src":"19832:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19846:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"19851:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19842:3:60"},"nodeType":"YulFunctionCall","src":"19842:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19836:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19878:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"19882:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19874:3:60"},"nodeType":"YulFunctionCall","src":"19874:11:60"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"19887:19:60","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19867:6:60"},"nodeType":"YulFunctionCall","src":"19867:40:60"},"nodeType":"YulExpressionStatement","src":"19867:40:60"},{"nodeType":"YulVariableDeclaration","src":"19916:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19938:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19932:5:60"},"nodeType":"YulFunctionCall","src":"19932:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"19920:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19980:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"19988:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19976:3:60"},"nodeType":"YulFunctionCall","src":"19976:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19999:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"20003:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19995:3:60"},"nodeType":"YulFunctionCall","src":"19995:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"20008:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"19954:21:60"},"nodeType":"YulFunctionCall","src":"19954:63:60"},"nodeType":"YulExpressionStatement","src":"19954:63:60"},{"nodeType":"YulAssignment","src":"20026:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"20041:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"20045:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20037:3:60"},"nodeType":"YulFunctionCall","src":"20037:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"20056:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20033:3:60"},"nodeType":"YulFunctionCall","src":"20033:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20026:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19636:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19641:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19649:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19660:3:60","type":""}],"src":"19279:786:60"},{"body":{"nodeType":"YulBlock","src":"20191:321:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20208:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20219:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20201:6:60"},"nodeType":"YulFunctionCall","src":"20201:21:60"},"nodeType":"YulExpressionStatement","src":"20201:21:60"},{"nodeType":"YulVariableDeclaration","src":"20231:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20251:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20245:5:60"},"nodeType":"YulFunctionCall","src":"20245:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"20235:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20278:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20289:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20274:3:60"},"nodeType":"YulFunctionCall","src":"20274:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"20294:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20267:6:60"},"nodeType":"YulFunctionCall","src":"20267:34:60"},"nodeType":"YulExpressionStatement","src":"20267:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20336:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"20344:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20332:3:60"},"nodeType":"YulFunctionCall","src":"20332:15:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20353:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20364:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20349:3:60"},"nodeType":"YulFunctionCall","src":"20349:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"20369:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"20310:21:60"},"nodeType":"YulFunctionCall","src":"20310:66:60"},"nodeType":"YulExpressionStatement","src":"20310:66:60"},{"nodeType":"YulAssignment","src":"20385:121:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20401:9:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20420:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"20428:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20416:3:60"},"nodeType":"YulFunctionCall","src":"20416:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"20433:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20412:3:60"},"nodeType":"YulFunctionCall","src":"20412:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20397:3:60"},"nodeType":"YulFunctionCall","src":"20397:104:60"},{"kind":"number","nodeType":"YulLiteral","src":"20503:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20393:3:60"},"nodeType":"YulFunctionCall","src":"20393:113:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20385:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20160:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20171:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20182:4:60","type":""}],"src":"20070:442:60"},{"body":{"nodeType":"YulBlock","src":"20577:128:60","statements":[{"nodeType":"YulAssignment","src":"20587:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"20602:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20596:5:60"},"nodeType":"YulFunctionCall","src":"20596:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"20587:5:60"}]},{"body":{"nodeType":"YulBlock","src":"20683:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20692:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20695:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20685:6:60"},"nodeType":"YulFunctionCall","src":"20685:12:60"},"nodeType":"YulExpressionStatement","src":"20685:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20631:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20642:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"20649:30:60","type":"","value":"0xffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20638:3:60"},"nodeType":"YulFunctionCall","src":"20638:42:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20628:2:60"},"nodeType":"YulFunctionCall","src":"20628:53:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20621:6:60"},"nodeType":"YulFunctionCall","src":"20621:61:60"},"nodeType":"YulIf","src":"20618:81:60"}]},"name":"abi_decode_uint112_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"20556:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"20567:5:60","type":""}],"src":"20517:188:60"},{"body":{"nodeType":"YulBlock","src":"20824:305:60","statements":[{"body":{"nodeType":"YulBlock","src":"20870:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20879:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20882:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20872:6:60"},"nodeType":"YulFunctionCall","src":"20872:12:60"},"nodeType":"YulExpressionStatement","src":"20872:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20845:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"20854:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20841:3:60"},"nodeType":"YulFunctionCall","src":"20841:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"20866:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20837:3:60"},"nodeType":"YulFunctionCall","src":"20837:32:60"},"nodeType":"YulIf","src":"20834:52:60"},{"nodeType":"YulAssignment","src":"20895:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20935:9:60"}],"functionName":{"name":"abi_decode_uint112_fromMemory","nodeType":"YulIdentifier","src":"20905:29:60"},"nodeType":"YulFunctionCall","src":"20905:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"20895:6:60"}]},{"nodeType":"YulAssignment","src":"20954:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20998:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21009:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20994:3:60"},"nodeType":"YulFunctionCall","src":"20994:18:60"}],"functionName":{"name":"abi_decode_uint112_fromMemory","nodeType":"YulIdentifier","src":"20964:29:60"},"nodeType":"YulFunctionCall","src":"20964:49:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"20954:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"21022:38:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21045:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21056:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21041:3:60"},"nodeType":"YulFunctionCall","src":"21041:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21035:5:60"},"nodeType":"YulFunctionCall","src":"21035:25:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"21026:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21093:5:60"}],"functionName":{"name":"validator_revert_uint32","nodeType":"YulIdentifier","src":"21069:23:60"},"nodeType":"YulFunctionCall","src":"21069:30:60"},"nodeType":"YulExpressionStatement","src":"21069:30:60"},{"nodeType":"YulAssignment","src":"21108:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"21118:5:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"21108:6:60"}]}]},"name":"abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20774:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"20785:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"20797:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20805:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20813:6:60","type":""}],"src":"20710:419:60"},{"body":{"nodeType":"YulBlock","src":"21215:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"21261:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21270:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21273:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21263:6:60"},"nodeType":"YulFunctionCall","src":"21263:12:60"},"nodeType":"YulExpressionStatement","src":"21263:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"21236:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"21245:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21232:3:60"},"nodeType":"YulFunctionCall","src":"21232:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"21257:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21228:3:60"},"nodeType":"YulFunctionCall","src":"21228:32:60"},"nodeType":"YulIf","src":"21225:52:60"},{"nodeType":"YulAssignment","src":"21286:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21302:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21296:5:60"},"nodeType":"YulFunctionCall","src":"21296:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"21286:6:60"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21181:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"21192:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"21204:6:60","type":""}],"src":"21134:184:60"},{"body":{"nodeType":"YulBlock","src":"21369:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"21379:43:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21398:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"21405:16:60","type":"","value":"0xffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21394:3:60"},"nodeType":"YulFunctionCall","src":"21394:28:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"21383:7:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"21450:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21452:16:60"},"nodeType":"YulFunctionCall","src":"21452:18:60"},"nodeType":"YulExpressionStatement","src":"21452:18:60"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21441:7:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21434:6:60"},"nodeType":"YulFunctionCall","src":"21434:15:60"},"nodeType":"YulIf","src":"21431:41:60"},{"nodeType":"YulAssignment","src":"21481:87:60","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21492:7:60"},{"kind":"number","nodeType":"YulLiteral","src":"21501:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21488:3:60"},"nodeType":"YulFunctionCall","src":"21488:80:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21481:3:60"}]}]},"name":"decrement_t_uint56","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21351:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21361:3:60","type":""}],"src":"21323:251:60"},{"body":{"nodeType":"YulBlock","src":"21625:161:60","statements":[{"nodeType":"YulVariableDeclaration","src":"21635:26:60","value":{"kind":"number","nodeType":"YulLiteral","src":"21645:16:60","type":"","value":"0xffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21639:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"21670:29:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21689:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"21696:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21685:3:60"},"nodeType":"YulFunctionCall","src":"21685:14:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"21674:7:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"21727:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21729:16:60"},"nodeType":"YulFunctionCall","src":"21729:18:60"},"nodeType":"YulExpressionStatement","src":"21729:18:60"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21714:7:60"},{"name":"_1","nodeType":"YulIdentifier","src":"21723:2:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"21711:2:60"},"nodeType":"YulFunctionCall","src":"21711:15:60"},"nodeType":"YulIf","src":"21708:41:60"},{"nodeType":"YulAssignment","src":"21758:22:60","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"21769:7:60"},{"kind":"number","nodeType":"YulLiteral","src":"21778:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21765:3:60"},"nodeType":"YulFunctionCall","src":"21765:15:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21758:3:60"}]}]},"name":"increment_t_uint56","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21607:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21617:3:60","type":""}],"src":"21579:207:60"},{"body":{"nodeType":"YulBlock","src":"21838:149:60","statements":[{"body":{"nodeType":"YulBlock","src":"21865:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21867:16:60"},"nodeType":"YulFunctionCall","src":"21867:18:60"},"nodeType":"YulExpressionStatement","src":"21867:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21858:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21851:6:60"},"nodeType":"YulFunctionCall","src":"21851:13:60"},"nodeType":"YulIf","src":"21848:39:60"},{"nodeType":"YulAssignment","src":"21896:85:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21907:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"21914:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21903:3:60"},"nodeType":"YulFunctionCall","src":"21903:78:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21896:3:60"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21820:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21830:3:60","type":""}],"src":"21791:196:60"},{"body":{"nodeType":"YulBlock","src":"22166:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22183:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22194:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22176:6:60"},"nodeType":"YulFunctionCall","src":"22176:21:60"},"nodeType":"YulExpressionStatement","src":"22176:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22217:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22228:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22213:3:60"},"nodeType":"YulFunctionCall","src":"22213:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"22233:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22206:6:60"},"nodeType":"YulFunctionCall","src":"22206:30:60"},"nodeType":"YulExpressionStatement","src":"22206:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22256:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22267:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22252:3:60"},"nodeType":"YulFunctionCall","src":"22252:18:60"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"22272:34:60","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22245:6:60"},"nodeType":"YulFunctionCall","src":"22245:62:60"},"nodeType":"YulExpressionStatement","src":"22245:62:60"},{"nodeType":"YulAssignment","src":"22316:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22328:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22339:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22324:3:60"},"nodeType":"YulFunctionCall","src":"22324:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22316:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22143:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22157:4:60","type":""}],"src":"21992:356:60"},{"body":{"nodeType":"YulBlock","src":"22385:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22402:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22405:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22395:6:60"},"nodeType":"YulFunctionCall","src":"22395:88:60"},"nodeType":"YulExpressionStatement","src":"22395:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22499:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22502:4:60","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22492:6:60"},"nodeType":"YulFunctionCall","src":"22492:15:60"},"nodeType":"YulExpressionStatement","src":"22492:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22523:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22526:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22516:6:60"},"nodeType":"YulFunctionCall","src":"22516:15:60"},"nodeType":"YulExpressionStatement","src":"22516:15:60"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"22353:184:60"},{"body":{"nodeType":"YulBlock","src":"22716:169:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22733:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22744:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22726:6:60"},"nodeType":"YulFunctionCall","src":"22726:21:60"},"nodeType":"YulExpressionStatement","src":"22726:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22767:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22778:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22763:3:60"},"nodeType":"YulFunctionCall","src":"22763:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"22783:2:60","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22756:6:60"},"nodeType":"YulFunctionCall","src":"22756:30:60"},"nodeType":"YulExpressionStatement","src":"22756:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22806:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22817:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22802:3:60"},"nodeType":"YulFunctionCall","src":"22802:18:60"},{"hexValue":"4554485f5452414e534645525f4641494c4544","kind":"string","nodeType":"YulLiteral","src":"22822:21:60","type":"","value":"ETH_TRANSFER_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22795:6:60"},"nodeType":"YulFunctionCall","src":"22795:49:60"},"nodeType":"YulExpressionStatement","src":"22795:49:60"},{"nodeType":"YulAssignment","src":"22853:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22865:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22876:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22861:3:60"},"nodeType":"YulFunctionCall","src":"22861:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22853:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_d383913ea1996930a2623a0d739b8fc033c734c1d71d4759d3ccba1d3a719c29__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22693:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22707:4:60","type":""}],"src":"22542:343:60"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_encode_struct_ValueVariables(value, pos)\n    {\n        mstore(pos, and(mload(value), 0xffffffffffffffffffffffffff))\n        mstore(add(pos, 0x20), and(mload(add(value, 0x20)), 0xffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_struct_RewardSummations(value, pos)\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), mload(add(value, 0x20)))\n    }\n    function abi_encode_tuple_t_struct$_User_$12117_memory_ptr__to_t_struct$_User_$12117_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 256)\n        abi_encode_struct_ValueVariables(mload(value0), headStart)\n        let memberValue0 := mload(add(value0, 0x20))\n        abi_encode_struct_RewardSummations(memberValue0, add(headStart, 0x40))\n        mstore(add(headStart, 0x80), and(mload(add(value0, 0x40)), 0xffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 0xa0), and(mload(add(value0, 0x60)), 0xffffffffffff))\n        mstore(add(headStart, 0xc0), and(mload(add(value0, 0x80)), 0xffffffffffffff))\n        mstore(add(headStart, 0xe0), and(mload(add(value0, 0xa0)), 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_encode_tuple_t_uint128__to_t_uint128__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_array_uint256_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint32_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint32_t_uint96_t_uint128__to_t_uint32_t_uint96_t_uint128__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, 0xffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffff))\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_struct_Slippage_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 64) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_struct$_Slippage_$12092_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := abi_decode_struct_Slippage_calldata(add(headStart, 64), dataEnd)\n    }\n    function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff))\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_enum$_PoolType_$12083_t_contract$_IRewarder_$18144_t_address_t_struct$_ValueVariables_$12097_memory_ptr_t_struct$_RewardSummations_$12102_memory_ptr__to_t_address_t_uint8_t_address_t_address_t_struct$_ValueVariables_$12097_memory_ptr_t_struct$_RewardSummations_$12102_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 256)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        if iszero(lt(value1, 3))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), and(value3, _1))\n        abi_encode_struct_ValueVariables(value4, add(headStart, 128))\n        abi_encode_struct_RewardSummations(value5, add(headStart, 192))\n    }\n    function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IPangolinFactory_$18099__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_ERC20_$9395__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_addresst_enum$_PoolType_$12083(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        if iszero(lt(value_1, 3)) { revert(0, 0) }\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_uint256t_struct$_Slippage_$12092_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_struct_Slippage_calldata(add(headStart, 32), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function validator_revert_uint32(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint32(value)\n        value0 := value\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_int256(x, y) -> diff\n    {\n        let _1 := slt(y, 0)\n        if and(iszero(_1), slt(x, add(0x8000000000000000000000000000000000000000000000000000000000000000, y))) { panic_error_0x11() }\n        if and(_1, sgt(x, add(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y))) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_add_t_int256(x, y) -> sum\n    {\n        let _1 := slt(x, 0)\n        if and(iszero(_1), sgt(y, sub(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        if and(_1, slt(y, sub(0x8000000000000000000000000000000000000000000000000000000000000000, x))) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_20f25d32b0cb64e41972e299b60a4330dcafaec2c5ff591af09ef6310fd84c85_t_address__to_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, \"I am ready to lose everything in\")\n        mstore(add(pos, 32), \" this pool. Let me go.\")\n        mstore(add(pos, 54), and(shl(96, value0), 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))\n        end := add(pos, 74)\n    }\n    function checked_add_t_uint96(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_struct$_Slippage_$12092_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 64)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x41)\n            revert(0, 0x24)\n        }\n        mstore(64, newFreePtr)\n        mstore(memPtr, calldataload(headStart))\n        mstore(add(memPtr, 32), calldataload(add(headStart, 32)))\n        value0 := memPtr\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"TRANSFER_FAILED\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_bool_t_uint256_t_uint256__to_t_uint256_t_address_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), iszero(iszero(value2)))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n    }\n    function checked_add_t_uint128(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function abi_encode_tuple_t_rational_0_by_1__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_bool_t_rational_0_by_1_t_rational_0_by_1__to_t_uint256_t_address_t_bool_t_uint8_t_uint8__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 64), iszero(iszero(value2)))\n        mstore(add(headStart, 96), and(value3, 0xff))\n        mstore(add(headStart, 128), and(value4, 0xff))\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_77631768048ee92f9dcf4b9b9d762877d6b9723214862c733f0596708fc219b7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 20)\n        mstore(add(headStart, 64), \"TRANSFER_FROM_FAILED\")\n        tail := add(headStart, 96)\n    }\n    function checked_add_t_uint152(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function abi_decode_uint112_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint112t_uint112t_uint32_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_uint112_fromMemory(headStart)\n        value1 := abi_decode_uint112_fromMemory(add(headStart, 32))\n        let value := mload(add(headStart, 64))\n        validator_revert_uint32(value)\n        value2 := value\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function decrement_t_uint56(value) -> ret\n    {\n        let value_1 := and(value, 0xffffffffffffff)\n        if iszero(value_1) { panic_error_0x11() }\n        ret := add(value_1, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function increment_t_uint56(value) -> ret\n    {\n        let _1 := 0xffffffffffffff\n        let value_1 := and(value, _1)\n        if eq(value_1, _1) { panic_error_0x11() }\n        ret := add(value_1, 1)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_d383913ea1996930a2623a0d739b8fc033c734c1d71d4759d3ccba1d3a719c29__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 19)\n        mstore(add(headStart, 64), \"ETH_TRANSFER_FAILED\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"12157":[{"length":32,"start":2453},{"length":32,"start":11732}],"12160":[{"length":32,"start":873},{"length":32,"start":13056}],"14351":[{"length":32,"start":2537},{"length":32,"start":3418},{"length":32,"start":4997},{"length":32,"start":5499},{"length":32,"start":8868},{"length":32,"start":11857},{"length":32,"start":11961},{"length":32,"start":12833},{"length":32,"start":13364}]},"linkReferences":{},"object":"6080604052600436106102d15760003560e01c80637b0a47ee11610179578063c0463711116100d6578063d61f06801161008a578063ebe2b12b11610064578063ebe2b12b14610a7e578063f2d1e1cd14610a9d578063f851844b14610abd57600080fd5b8063d61f068014610a2b578063d97f8ed614610a4b578063ddc6326214610a5e57600080fd5b8063ca15c873116100bb578063ca15c873146109b7578063d1af0c7d146109d7578063d547741f14610a0b57600080fd5b8063c046371114610946578063c45a01551461098357600080fd5b806391d148541161012d578063a217fddf11610112578063a217fddf1461084b578063ac4afa3814610860578063b470aade1461093057600080fd5b806391d14854146107ce57806396c82e571461081257600080fd5b806380754b281161015e57806380754b281461077b57806382f084d31461078e5780639010d07c146107ae57600080fd5b80637b0a47ee146107465780637c2d6e011461075b57600080fd5b806343d5599e11610232578063562d12d7116101e65780636bc9f703116101c05780636bc9f7031461066057806374de4ec4146107065780637b0472f01461072657600080fd5b8063562d12d71461060b57806359b02eb31461062b5780635faa65ff1461064b57600080fd5b8063441a3e7011610217578063441a3e701461059e57806347df36c0146105be57806354f8c475146105eb57600080fd5b806343d5599e1461055e57806343de32071461057e57600080fd5b80632716ae66116102895780633228dd591161026e5780633228dd59146104d457806336568abe1461051e578063379607f51461053e57600080fd5b80632716ae661461049d5780632f2ff15d146104b257600080fd5b806317fcb39b116102ba57806317fcb39b14610357578063248a9ca3146103a3578063257664a4146103e157600080fd5b806301ffc9a7146102d6578063098b88581461030b575b600080fd5b3480156102e257600080fd5b506102f66102f1366004613d1a565b610add565b60405190151581526020015b60405180910390f35b34801561031757600080fd5b5060045461033a90660100000000000090046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610302565b34801561036357600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610302565b3480156103af57600080fd5b506103d36103be366004613d5c565b60009081526020819052604090206001015490565b604051908152602001610302565b3480156103ed57600080fd5b506104016103fc366004613d8a565b610b39565b6040516103029190815180516001600160681b031682526020908101516001600160981b031690820152610100810160208381015180516040850152908101516060840152506001600160981b03604084015116608083015265ffffffffffff60608401511660a083015266ffffffffffffff60808401511660c08301526bffffffffffffffffffffffff60a08401511660e083015292915050565b3480156104a957600080fd5b506009546103d3565b3480156104be57600080fd5b506104d26104cd366004613d8a565b610c1d565b005b3480156104e057600080fd5b506003546104fd906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610302565b34801561052a57600080fd5b506104d2610539366004613d8a565b610c47565b34801561054a57600080fd5b506103d3610559366004613d5c565b610cd8565b34801561056a57600080fd5b506104d2610579366004613dba565b610dcd565b34801561058a57600080fd5b506104d2610599366004613d8a565b610df9565b3480156105aa57600080fd5b506104d26105b9366004613df2565b610e98565b3480156105ca57600080fd5b506105de6105d9366004613d8a565b610eaa565b6040516103029190613e14565b3480156105f757600080fd5b506104d2610606366004613ea4565b610edf565b34801561061757600080fd5b506104d2610626366004613df2565b611184565b34801561063757600080fd5b506103d3610646366004613d8a565b611260565b34801561065757600080fd5b506104d26112aa565b34801561066c57600080fd5b506106c561067b366004613d5c565b60026020526000908152604090205463ffffffff81169064010000000081046bffffffffffffffffffffffff1690600160801b90046fffffffffffffffffffffffffffffffff1683565b6040805163ffffffff90941684526bffffffffffffffffffffffff90921660208401526fffffffffffffffffffffffffffffffff1690820152606001610302565b34801561071257600080fd5b506104d2610721366004613d5c565b6113e1565b34801561073257600080fd5b506104d2610741366004613df2565b6115e4565b34801561075257600080fd5b506103d3611610565b34801561076757600080fd5b506104d2610776366004613d5c565b611655565b6104d2610789366004613f28565b61172b565b34801561079a57600080fd5b506103d36107a9366004613d8a565b61176d565b3480156107ba57600080fd5b5061038b6107c9366004613df2565b6117e7565b3480156107da57600080fd5b506102f66107e9366004613d8a565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561081e57600080fd5b5060045461083690600160901b900463ffffffff1681565b60405163ffffffff9091168152602001610302565b34801561085757600080fd5b506103d3600081565b34801561086c57600080fd5b5061091e61087b366004613d5c565b6007602090815260009182526040918290208054600182015460028301548551808701875260038501546001600160681b03811682526d010000000000000000000000000090046001600160981b031681870152865180880190975260048501548752600590940154948601949094526001600160a01b03808316957401000000000000000000000000000000000000000090930460ff16949181169391169186565b60405161030296959493929190613f74565b34801561093c57600080fd5b506103d360055481565b34801561095257600080fd5b5060035461096c90600160801b900465ffffffffffff1681565b60405165ffffffffffff9091168152602001610302565b34801561098f57600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109c357600080fd5b506103d36109d2366004613d5c565b6117ff565b3480156109e357600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610a1757600080fd5b506104d2610a26366004613d8a565b611816565b348015610a3757600080fd5b506104d2610a46366004613ff7565b61183b565b6104d2610a59366004614029565b61186f565b348015610a6a57600080fd5b506104d2610a79366004613d5c565b611894565b348015610a8a57600080fd5b5060045461096c9065ffffffffffff1681565b348015610aa957600080fd5b506103d3610ab8366004613d5c565b6118aa565b348015610ac957600080fd5b506104d2610ad8366004613d5c565b611900565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f000000000000000000000000000000000000000000000000000000001480610b335750610b33826119d3565b92915050565b610b41613cb7565b5060008281526007602090815260408083206001600160a01b038516845260060182529182902082516101008101845281546001600160681b03811660c083019081526d01000000000000000000000000009091046001600160981b0390811660e0840152908252845180860186526001840154815260028401548186015293820193909352600382015492831693810193909352600160981b820465ffffffffffff166060840152600160c81b90910466ffffffffffffff166080830152600401546bffffffffffffffffffffffff1660a082015292915050565b600082815260208190526040902060010154610c3881611a6a565b610c428383611a74565b505050565b6001600160a01b0381163314610cca5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610cd48282611a96565b5050565b6000610ce2611ab8565b6000828152600760205260409020610cf981611af6565b80546001600160a01b03163314610d3c576040517f38c5856200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d4583611b5e565b91508115610d8157610d816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611bac565b6000336001600160a01b0316847f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace85604051610dbf91815260200190565b60405180910390a450919050565b610dd5611ab8565b610c4283838360006040518060400160405280600081526020016000815250611c51565b7f6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff610e2381611a6a565b6000838152600760205260409020610e3a816120eb565b60018101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03851690811790915560405185907f865fdcfd963a9e21f0dbb101fecee79dda3ecc602d0fe55e29268c843f2a3b7c90600090a350505050565b610ea0611ab8565b610cd482826120f2565b60008281526008602090815260408083206001600160a01b03851684529091529020606090610ed8906123bc565b9392505050565b7f6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff610f0981611a6a565b610f116123c9565b83828114610f4b576040517f568efce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610f5660095490565b90506000805b838110156110d7576000898983818110610f7857610f78614056565b9050602002013590506000888884818110610f9557610f95614056565b9050602002016020810190610faa919061407e565b63ffffffff169050848210610fd257604051632d0483c560e21b815260040160405180910390fd5b6000828152600260205260409020805463ffffffff16808303611008576040516324d0659d60e11b815260040160405180910390fd5b61101281846140b1565b61101c9087614125565b955061102782612452565b82547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166401000000006bffffffffffffffffffffffff92909216919091027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161763ffffffff841617825560405183815284907f645b3dc30fbdcc9749f62868ae25c191ff0090b1c21905c2793ec7159856e4389060200160405180910390a284600101945050505050610f5c565b506004546000906110f6908390600160901b900463ffffffff16614125565b90506000811361111957604051632d0483c560e21b815260040160405180910390fd5b63ffffffff81111561113e57604051632d0483c560e21b815260040160405180910390fd5b6004805463ffffffff909216600160901b027fffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffff9092169190911790555050505050505050565b61118c611ab8565b6002600655604080517f4920616d20726561647920746f206c6f73652065766572797468696e6720696e60208201527f207468697320706f6f6c2e204c6574206d6520676f2e00000000000000000000918101919091526bffffffffffffffffffffffff193360601b166056820152606a0160405160208183030381529060405280519060200120811461124c576040517f38c5856200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61125782600061248c565b50506001600655565b60008281526007602090815260408083206001600160a01b038516845260068101909252822082611294868484600161269b565b90506112a081836127bb565b9695505050505050565b60006112b581611a6a565b60045465ffffffffffff1642106112f8576040517fecdd1c2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600480547fffffffffffffffffffffffffffff0000000000000000000000000000000000008116600160b01b90930469ffffffffffffffffffff164265ffffffffffff808416829003929092026601000000000000938490046bffffffffffffffffffffffff9081168290031690930265ffffffffffff19169490941793169290921790556113b47f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163383611bac565b6040517fac02d07d013ae7c7e3ee940f8df0877c2ab1103bf87ab258ce31665f7111f09290600090a15050565b7f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb61140b81611a6a565b6114136123c9565b6005546bffffffffffffffffffffffff83111561145c576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600460068282829054906101000a90046bffffffffffffffffffffffff166114859190614199565b82546bffffffffffffffffffffffff9182166101009390930a92830291909202199091161790555060045460009065ffffffffffff1642106114ca57508083046114fb565b506003546004544265ffffffffffff9091160369ffffffffffffffffffff600160b01b909204919091160283018190045b8060000361151c576040516324d0659d60e11b815260040160405180910390fd5b6003805475ffffffffffffffffffffffffffffffffffffffffffff16600160b01b69ffffffffffffffffffff84160217905561155882426141c9565b6004805465ffffffffffff191665ffffffffffff929092169190911790556115ab7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316333087612871565b6040518481527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a150505050565b6115ec611ab8565b610cd482338360006040518060400160405280600081526020016000815250611c51565b6004546000904265ffffffffffff9091161061164157600354600160b01b900469ffffffffffffffffffff16611644565b60005b69ffffffffffffffffffff16905090565b600061166081611a6a565b6004544265ffffffffffff90911611156116a6576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620100018210156116ca57604051632d0483c560e21b815260040160405180910390fd5b63ffffffff8211156116ef57604051632d0483c560e21b815260040160405180910390fd5b60058290556040518281527fbd6eb9cf4d6e2902587c57e3163aaafdb46e3b3f2086bdfa75c790228930a9d79060200160405180910390a15050565b611733611ab8565b60026006556000611744848461291d565b9050611762833383600261175d368890038801886141f7565b611c51565b505060016006555050565b60008281526007602052604081208161178860038301612b74565b6001600160a01b03851660009081526006840160205260408120919250906117af90612b74565b905080156117db5781816117c2886118aa565b6117cc9190614254565b6117d69190614273565b6112a0565b50600095945050505050565b6000828152600160205260408120610ed89083612bb1565b6000818152600160205260408120610b3390612bbd565b60008281526020819052604090206001015461183181611a6a565b610c428383611a96565b7f6077685936c8169d09204a1d97db12e41713588c38e1d29a61867d3dcee98aff61186581611a6a565b610c428383612bc7565b611877611ab8565b600260065561125782336000600161175d368790038701876141f7565b61189c611ab8565b6118a78160006120f2565b50565b60008181526002602052604081205463ffffffff1680156118f757600454600160901b900463ffffffff16816118de611610565b6118e89190614254565b6118f29190614273565b610ed8565b60009392505050565b611908611ab8565b600260065561191881600161248c565b506001600655565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610cd4576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561197a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610ed8836001600160a01b038416612f5a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610b3357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610b33565b6118a78133612fa9565b611a7e8282611920565b6000828152600160205260409020610c4290826119be565b611aa0828261301c565b6000828152600160205260409020610c42908261309b565b600654600203611af4576040517fab143c0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60025b815474010000000000000000000000000000000000000000900460ff166002811115611b2757611b27613f5e565b146118a7576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611b686123c9565b6000828152600260205260409020611b7f81612452565b81547fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff1690915592915050565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080611c4b5760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152606401610cc1565b50505050565b60008581526007602090815260408083206001600160a01b038816845260068101909252909120611c81826120eb565b6003820180546001600160681b03168015611ca257611ca089856130b0565b505b6000611caf8a8686613116565b9050600080886002811115611cc657611cc6613f5e565b03611d0057506004840180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff92909216919091179055600087611db0565b6002886002811115611d1457611d14613f5e565b03611d5c57611d24868a8961313b565b6004860180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff9490941693909317909255909750600090611db0565b6001886002811115611d7057611d70613f5e565b14611d7d57611d7d614295565b8815611d8b57611d8b614295565b611d9686838961313b565b6004860180546bffffffffffffffffffffffff1916905598505b88600003611dd1576040516324d0659d60e11b815260040160405180910390fd5b600080611dde8b866141c9565b90506001600160681b03811115611e21576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008b420290508087600001600d8282829054906101000a90046001600160981b03160192506101000a8154816001600160981b0302191690836001600160981b03160217905550818760000160006101000a8154816001600160681b0302191690836001600160681b03160217905550600088600001905060008160000160009054906101000a90046001600160681b03166001600160681b031690508d81019450848260000160006101000a8154816001600160681b0302191690836001600160681b031602179055508282600001600d8282829054906101000a90046001600160981b03160192506101000a8154816001600160981b0302191690836001600160981b031602179055508960030160139054906101000a900465ffffffffffff1665ffffffffffff16420381028a60030160008282829054906101000a90046001600160981b03160192506101000a8154816001600160981b0302191690836001600160981b0316021790555050505050611fee878760038101805465ffffffffffff4216600160981b027fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff90911617905560048201546001820155600590910154600290910155565b811561200b57865461200b906001600160a01b0316333085612871565b898b6001600160a01b03168d7f17700ceb1658b18206f427c1578048e87504106b14ec69e9b4586d9a95174a328660405161204891815260200190565b60405180910390a460018701546001600160a01b031680156120dc57604051635d3c15f760e11b8152600481018e90526001600160a01b038d8116602483015260006044830152606482018690526084820184905282169063ba782bee9060a401600060405180830381600087803b1580156120c357600080fd5b505af11580156120d7573d6000803e3d6000fd5b505050505b50505050505050505050505050565b6001611af9565b600082815260076020908152604080832033845260068101909252909120612119826120eb565b61212384836130b0565b5061212e81856134eb565b805481906001600160681b031680851115612175576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612182878686613116565b6004850180546bffffffffffffffffffffffff191690559050851580156121a7575080155b156121c5576040516324d0659d60e11b815260040160405180910390fd5b600385810180546001600160681b038082168a900381166cffffffffffffffffffffffffff19909216821780845587546001600160981b036d0100000000000000000000000000918290048116928290048116428e8b03818102928301959095038316840290961790965594909416909302908316178655918601805465ffffffffffff909316600160981b027fffffffffffffff0000000000000000000000000000000000000000000000000090931692909217909155600486015460018601556005860154600286015581156122cb576122cb6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611bac565b86156122e75785546122e7906001600160a01b03163389611bac565b86336001600160a01b0316897f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace8560405161232491815260200190565b60405180910390a460018601546001600160a01b031680156123b157604051635d3c15f760e11b8152600481018a90523360248201526001604482015260648101849052608481018390526001600160a01b0382169063ba782bee9060a401600060405180830381600087803b15801561239d57600080fd5b505af11580156120dc573d6000803e3d6000fd5b505050505050505050565b60606000610ed88361361f565b6123d161367b565b600380546000906123f59084906fffffffffffffffffffffffffffffffff166142ab565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600360106101000a81548165ffffffffffff021916908365ffffffffffff160217905550565b6000806124608360006136a7565b6003548454600160801b6fffffffffffffffffffffffffffffffff928316029116179093555090919050565b6000828152600760209081526040808320338452600681019092529091206124b3826120eb565b6124bd81856134eb565b8054600383019082906001600160681b031660008190036124f1576040516324d0659d60e11b815260040160405180910390fd5b82546001600160681b03808216839003166cffffffffffffffffffffffffff19909116811780855583546001600160981b036d01000000000000000000000000009182900481169282900481169290920390911602178355600087815260076020908152604080832033845260060190915281208181556001810182905560028101829055600381019190915560040180546bffffffffffffffffffffffff1916905585156126095784546125b9906001600160a01b0316336001600160681b038416611bac565b806001600160681b0316336001600160a01b0316887f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace600060405161260091815260200190565b60405180910390a45b60018581015460408051602481018b9052336044820152606481019390935260006084840181905260a48085018290528251808603909101815260c49094019091526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16635d3c15f760e11b17815283516001600160a01b039093169392829182865af150505050505050505050565b60408051808201909152600080825260208201526003830154600160981b900465ffffffffffff166000036126e4575060408051808201909152600080825260208201526127b3565b6001830160048501831561277a57600087815260026020526040812061270a90866136a7565b90506000806127198984613757565b915091506040518060400160405280866000015484876000015461273d91906141c9565b61274791906142d6565b8152602001866001015483876001015461276191906141c9565b61276b91906142d6565b815250955050505050506127b3565b60408051808201909152825482548291612793916142d6565b8152602001836001015483600101546127ac91906142d6565b9052925050505b949350505050565b6003810154600090600160981b900465ffffffffffff1680156128675760038301546020850151600160801b916127fd916001600160981b0390911690614254565b845460208701516001600160681b039091169061281b908590614254565b875161282791906142d6565b6128319190614254565b61283b91906141c9565b6128459190614273565b600484015461286291906bffffffffffffffffffffffff166141c9565b6127b3565b6000949350505050565b60006040517f23b872dd0000000000000000000000000000000000000000000000000000000081528460048201528360248201528260448201526020600060648360008a5af13d15601f3d11600160005114161716915050806129165760405162461bcd60e51b815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152606401610cc1565b5050505050565b6000828152600760209081526040808320338452600681019092528220612943826120eb565b60028201546001600160a01b03161561296f5760405163c1ab6dc160e01b815260040160405180910390fd5b61297985836130b0565b5061298485856137ba565b61298f858383613116565b6004820180546bffffffffffffffffffffffff19169055925060008390036129ca576040516324d0659d60e11b815260040160405180910390fd5b805460038201546001600160681b03909116906129f690600160981b900465ffffffffffff16426142d6565b612a009082614254565b600383018054600090612a1d9084906001600160981b03166142ed565b92506101000a8154816001600160981b0302191690836001600160981b03160217905550612a9a838360038101805465ffffffffffff4216600160981b027fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff90911617905560048201546001820155600590910154600290910155565b6000336001600160a01b0316877f1c84cc0f96161bdafea718a9094dd21c21d1fb2f9ca2ebb9bd4e39918efbaace87604051612ad891815260200190565b60405180910390a460018301546001600160a01b03168015612b6a57604051635d3c15f760e11b8152600481018890523360248201526000604482015260648101869052608481018390526001600160a01b0382169063ba782bee9060a401600060405180830381600087803b158015612b5157600080fd5b505af1158015612b65573d6000803e3d6000fd5b505050505b5050505092915050565b80546000906001600160981b036d010000000000000000000000000082041690612ba7906001600160681b031642614254565b610b3391906142d6565b6000610ed88383613888565b6000610b33825490565b6009805460009182612bd88361430f565b9091555060008181526007602052604090209091506001600160a01b0384161580612c1457506000836002811115612c1257612c12613f5e565b145b15612c4b576040517f4a0bd98600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80546001600160a01b03851673ffffffffffffffffffffffffffffffffffffffff19821681178355849183917fffffffffffffffffffffff0000000000000000000000000000000000000000009091161774010000000000000000000000000000000000000000836002811115612cc457612cc4613f5e565b02179055506001836002811115612cdd57612cdd613f5e565b03612f1e57836001600160a01b03163b600003612d0d5760405163c1ab6dc160e01b815260040160405180910390fd5b600a546040517fedcc0f900000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529091169063edcc0f90906024016040805180830381865afa925050508015612d8b575060408051601f3d908101601f19168201909252612d8891810190614329565b60015b15612f1e576040517fe6a439050000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528281166024830152808816917f00000000000000000000000000000000000000000000000000000000000000009091169063e6a4390590604401602060405180830381865afa158015612e1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e419190614358565b6001600160a01b031603612f1b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603612eb75760028301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316179055612f1b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603612f1b5760028301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384161790555b50505b6040516001600160a01b0385169083907f3d82013e0d368d05bfb8b953d35bffd6eec15520773228de41146f306a241aec90600090a350505050565b6000818152600183016020526040812054612fa157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b33565b506000610b33565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610cd457612fda816138b2565b612fe58360206138c4565b604051602001612ff69291906143a1565b60408051601f198184030181529082905262461bcd60e51b8252610cc191600401614422565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610cd4576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610ed8836001600160a01b038416613aed565b6000806130bc84611b5e565b90506000806130cb8584613757565b915091506000856004019050828160000160008282546130eb91906141c9565b925050819055508181600101600082825461310691906141c9565b9091555093979650505050505050565b600080613126858585600061269b565b905061313281846127bb565b95945050505050565b825460028401546000916001600160a01b03908116911680613189576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156131ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ee9190614478565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000836001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161061326857816132598985614254565b6132639190614273565b61327d565b826132738984614254565b61327d9190614273565b905086602001518111156132bd576040517f4c9b2c5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86518110156132f8576040517f4c9b2c5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415613412577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146133505760405163c1ab6dc160e01b815260040160405180910390fd5b8660200151341461338d576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156133c857600080fd5b505af11580156133dc573d6000803e3d6000fd5b506133f7935050506001600160a01b03861690508683611bac565b3481810390821461340c5761340c3382613be0565b50613427565b6134276001600160a01b038516338784612871565b61345b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868a611bac565b6040517f6a6278420000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03861690636a627842906024016020604051808303816000875af11580156134ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134de91906144bf565b9998505050505050505050565b6003820154600160c81b900466ffffffffffffff1615613537576040517f0f2e5b6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600860209081526040808320338452909152812061355990612bbd565b90505b8015610c4257600082815260086020908152604080832033845290915281206000199092019161358c9083612bb1565b600084815260086020908152604080832033845290915290209091506135b29082613c3b565b15613619576000818152600760209081526040808320338452600601909152902060030180546019906135f490600160c81b900466ffffffffffffff166144d8565b91906101000a81548166ffffffffffffff021916908366ffffffffffffff1602179055505b5061355c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561366f57602002820191906000526020600020905b81548152602001906001019080831161365b575b50505050509050919050565b600080613686613c47565b60045463ffffffff600160901b909104166401000000009091020492915050565b600080826136c9576003546fffffffffffffffffffffffffffffffff166136e8565b6136d161367b565b6003546fffffffffffffffffffffffffffffffff16015b84546fffffffffffffffffffffffffffffffff9182169250600160801b81049091168203906401000000009063ffffffff16820286546bffffffffffffffffffffffff64010000000090910481169290910491909101935083111561374f5761374f614295565b505092915050565b600080600061376885600301612b74565b905080156137b25780600160801b6137804287614254565b61378a9190614254565b6137949190614273565b9250806137a5600160801b86614254565b6137af9190614273565b91505b509250929050565b600082815260086020908152604080832033845290915290206137dd9082613cab565b156138445760008181526007602090815260408083203384526006019091529020600301805460199061381f90600160c81b900466ffffffffffffff166144fb565b91906101000a81548166ffffffffffffff021916908366ffffffffffffff1602179055505b60008281526008602090815260408083203384529091529020600a9061386990612bbd565b1115610cd457604051632d0483c560e21b815260040160405180910390fd5b600082600001828154811061389f5761389f614056565b9060005260206000200154905092915050565b6060610b336001600160a01b03831660145b606060006138d3836002614254565b6138de9060026141c9565b67ffffffffffffffff8111156138f6576138f66141e1565b6040519080825280601f01601f191660200182016040528015613920576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061395757613957614056565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106139ba576139ba614056565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006139f6846002614254565b613a019060016141c9565b90505b6001811115613a9e577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613a4257613a42614056565b1a60f81b828281518110613a5857613a58614056565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93613a9781614521565b9050613a04565b508315610ed85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610cc1565b60008181526001830160205260408120548015613bd6576000613b116001836142d6565b8554909150600090613b25906001906142d6565b9050818114613b8a576000866000018281548110613b4557613b45614056565b9060005260206000200154905080876000018481548110613b6857613b68614056565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613b9b57613b9b614538565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b33565b6000915050610b33565b600080600080600085875af1905080610c425760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610cc1565b6000610ed88383613aed565b60045460009065ffffffffffff1681428210613c635742613c65565b815b600354909150600160801b900465ffffffffffff1680821115613ca157600354600160b01b900469ffffffffffffffffffff1691030292915050565b6000935050505090565b6000610ed88383612f5a565b604080516101008101909152600060c0820181815260e083019190915281908152602001613cf8604051806040016040528060008152602001600081525090565b8152600060208201819052604082018190526060820181905260809091015290565b600060208284031215613d2c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610ed857600080fd5b600060208284031215613d6e57600080fd5b5035919050565b6001600160a01b03811681146118a757600080fd5b60008060408385031215613d9d57600080fd5b823591506020830135613daf81613d75565b809150509250929050565b600080600060608486031215613dcf57600080fd5b833592506020840135613de181613d75565b929592945050506040919091013590565b60008060408385031215613e0557600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015613e4c57835183529284019291840191600101613e30565b50909695505050505050565b60008083601f840112613e6a57600080fd5b50813567ffffffffffffffff811115613e8257600080fd5b6020830191508360208260051b8501011115613e9d57600080fd5b9250929050565b60008060008060408587031215613eba57600080fd5b843567ffffffffffffffff80821115613ed257600080fd5b613ede88838901613e58565b90965094506020870135915080821115613ef757600080fd5b50613f0487828801613e58565b95989497509550505050565b600060408284031215613f2257600080fd5b50919050565b600080600060808486031215613f3d57600080fd5b8335925060208401359150613f558560408601613f10565b90509250925092565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03878116825261010082019060038810613fa557634e487b7160e01b600052602160045260246000fd5b602083810198909852958616604083015293909416606085015281516001600160681b03166080850152908401516001600160981b031660a0840152805160c08401529092015160e090910152919050565b6000806040838503121561400a57600080fd5b823561401581613d75565b9150602083013560038110613daf57600080fd5b6000806060838503121561403c57600080fd5b8235915061404d8460208501613f10565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b63ffffffff811681146118a757600080fd5b60006020828403121561409057600080fd5b8135610ed88161406c565b634e487b7160e01b600052601160045260246000fd5b6000808312837f8000000000000000000000000000000000000000000000000000000000000000018312811516156140eb576140eb61409b565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01831381161561411f5761411f61409b565b50500390565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561415f5761415f61409b565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156141935761419361409b565b50500190565b60006bffffffffffffffffffffffff8083168185168083038211156141c0576141c061409b565b01949350505050565b600082198211156141dc576141dc61409b565b500190565b634e487b7160e01b600052604160045260246000fd5b60006040828403121561420957600080fd5b6040516040810181811067ffffffffffffffff8211171561423a57634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b600081600019048311821515161561426e5761426e61409b565b500290565b60008261429057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052600160045260246000fd5b60006fffffffffffffffffffffffffffffffff8083168185168083038211156141c0576141c061409b565b6000828210156142e8576142e861409b565b500390565b60006001600160981b038083168185168083038211156141c0576141c061409b565b600060001982036143225761432261409b565b5060010190565b6000806040838503121561433c57600080fd5b825161434781613d75565b6020840151909250613daf81613d75565b60006020828403121561436a57600080fd5b8151610ed881613d75565b60005b83811015614390578181015183820152602001614378565b83811115611c4b5750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516143d9816017850160208801614375565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614416816028840160208801614375565b01602801949350505050565b6020815260008251806020840152614441816040850160208701614375565b601f01601f19169190910160400192915050565b80516dffffffffffffffffffffffffffff8116811461447357600080fd5b919050565b60008060006060848603121561448d57600080fd5b61449684614455565b92506144a460208501614455565b915060408401516144b48161406c565b809150509250925092565b6000602082840312156144d157600080fd5b5051919050565b600066ffffffffffffff8216806144f1576144f161409b565b6000190192915050565b600066ffffffffffffff8083168181036145175761451761409b565b6001019392505050565b6000816145305761453061409b565b506000190190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220c54ca783d2ac4b2f2501d59ab077dc4f5ec2d943421f01e891bbcadf49fa934f64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B0A47EE GT PUSH2 0x179 JUMPI DUP1 PUSH4 0xC0463711 GT PUSH2 0xD6 JUMPI DUP1 PUSH4 0xD61F0680 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xEBE2B12B GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xEBE2B12B EQ PUSH2 0xA7E JUMPI DUP1 PUSH4 0xF2D1E1CD EQ PUSH2 0xA9D JUMPI DUP1 PUSH4 0xF851844B EQ PUSH2 0xABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD61F0680 EQ PUSH2 0xA2B JUMPI DUP1 PUSH4 0xD97F8ED6 EQ PUSH2 0xA4B JUMPI DUP1 PUSH4 0xDDC63262 EQ PUSH2 0xA5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA15C873 GT PUSH2 0xBB JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x9B7 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0x9D7 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0xA0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC0463711 EQ PUSH2 0x946 JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x983 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x12D JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x112 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x84B JUMPI DUP1 PUSH4 0xAC4AFA38 EQ PUSH2 0x860 JUMPI DUP1 PUSH4 0xB470AADE EQ PUSH2 0x930 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x7CE JUMPI DUP1 PUSH4 0x96C82E57 EQ PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x80754B28 GT PUSH2 0x15E JUMPI DUP1 PUSH4 0x80754B28 EQ PUSH2 0x77B JUMPI DUP1 PUSH4 0x82F084D3 EQ PUSH2 0x78E JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x7AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B0A47EE EQ PUSH2 0x746 JUMPI DUP1 PUSH4 0x7C2D6E01 EQ PUSH2 0x75B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x43D5599E GT PUSH2 0x232 JUMPI DUP1 PUSH4 0x562D12D7 GT PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x6BC9F703 GT PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x6BC9F703 EQ PUSH2 0x660 JUMPI DUP1 PUSH4 0x74DE4EC4 EQ PUSH2 0x706 JUMPI DUP1 PUSH4 0x7B0472F0 EQ PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x562D12D7 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0x59B02EB3 EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0x5FAA65FF EQ PUSH2 0x64B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x441A3E70 GT PUSH2 0x217 JUMPI DUP1 PUSH4 0x441A3E70 EQ PUSH2 0x59E JUMPI DUP1 PUSH4 0x47DF36C0 EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0x54F8C475 EQ PUSH2 0x5EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x43D5599E EQ PUSH2 0x55E JUMPI DUP1 PUSH4 0x43DE3207 EQ PUSH2 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2716AE66 GT PUSH2 0x289 JUMPI DUP1 PUSH4 0x3228DD59 GT PUSH2 0x26E JUMPI DUP1 PUSH4 0x3228DD59 EQ PUSH2 0x4D4 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0x379607F5 EQ PUSH2 0x53E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2716AE66 EQ PUSH2 0x49D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x17FCB39B GT PUSH2 0x2BA JUMPI DUP1 PUSH4 0x17FCB39B EQ PUSH2 0x357 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0x257664A4 EQ PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x98B8858 EQ PUSH2 0x30B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F6 PUSH2 0x2F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1A JUMP JUMPDEST PUSH2 0xADD JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x33A SWAP1 PUSH7 0x1000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x363 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x3BE CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x401 PUSH2 0x3FC CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xB39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP2 SWAP1 DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP2 ADD PUSH1 0x20 DUP4 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x40 DUP6 ADD MSTORE SWAP1 DUP2 ADD MLOAD PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH1 0x40 DUP5 ADD MLOAD AND PUSH1 0x80 DUP4 ADD MSTORE PUSH6 0xFFFFFFFFFFFF PUSH1 0x60 DUP5 ADD MLOAD AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH7 0xFFFFFFFFFFFFFF PUSH1 0x80 DUP5 ADD MLOAD AND PUSH1 0xC0 DUP4 ADD MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0xA0 DUP5 ADD MLOAD AND PUSH1 0xE0 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x3D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xC1D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x4FD SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x539 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xC47 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x559 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0xCD8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x579 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DBA JUMP JUMPDEST PUSH2 0xDCD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x599 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xDF9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0xE98 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5DE PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0xEAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP2 SWAP1 PUSH2 0x3E14 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EA4 JUMP JUMPDEST PUSH2 0xEDF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x617 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x626 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0x1184 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x646 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0x1260 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x12AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x66C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C5 PUSH2 0x67B CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH4 0xFFFFFFFF DUP2 AND SWAP1 PUSH5 0x100000000 DUP2 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP5 AND DUP5 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP5 ADD MSTORE PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x712 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x721 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x13E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x741 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0x15E4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x1610 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x767 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0x776 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x1655 JUMP JUMPDEST PUSH2 0x4D2 PUSH2 0x789 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F28 JUMP JUMPDEST PUSH2 0x172B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x7A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0x176D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH2 0x7C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DF2 JUMP JUMPDEST PUSH2 0x17E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F6 PUSH2 0x7E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x836 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x86C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x91E PUSH2 0x87B CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD DUP6 MLOAD DUP1 DUP8 ADD DUP8 MSTORE PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP2 AND DUP3 MSTORE PUSH14 0x100000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND DUP2 DUP8 ADD MSTORE DUP7 MLOAD DUP1 DUP9 ADD SWAP1 SWAP8 MSTORE PUSH1 0x4 DUP6 ADD SLOAD DUP8 MSTORE PUSH1 0x5 SWAP1 SWAP5 ADD SLOAD SWAP5 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP6 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP4 DIV PUSH1 0xFF AND SWAP5 SWAP2 DUP2 AND SWAP4 SWAP2 AND SWAP2 DUP7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x302 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F74 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x93C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x96C SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x302 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x98F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0x9D2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x17FF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xA26 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D8A JUMP JUMPDEST PUSH2 0x1816 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xA46 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FF7 JUMP JUMPDEST PUSH2 0x183B JUMP JUMPDEST PUSH2 0x4D2 PUSH2 0xA59 CALLDATASIZE PUSH1 0x4 PUSH2 0x4029 JUMP JUMPDEST PUSH2 0x186F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xA79 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x96C SWAP1 PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D3 PUSH2 0xAB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x18AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4D2 PUSH2 0xAD8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D5C JUMP JUMPDEST PUSH2 0x1900 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB33 JUMPI POP PUSH2 0xB33 DUP3 PUSH2 0x19D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB41 PUSH2 0x3CB7 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x6 ADD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP2 AND PUSH1 0xC0 DUP4 ADD SWAP1 DUP2 MSTORE PUSH14 0x100000000000000000000000000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB SWAP1 DUP2 AND PUSH1 0xE0 DUP5 ADD MSTORE SWAP1 DUP3 MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE PUSH1 0x1 DUP5 ADD SLOAD DUP2 MSTORE PUSH1 0x2 DUP5 ADD SLOAD DUP2 DUP7 ADD MSTORE SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP3 ADD SLOAD SWAP3 DUP4 AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 PUSH1 0x98 SHL DUP3 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 SWAP2 DIV PUSH7 0xFFFFFFFFFFFFFF AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x4 ADD SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC38 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 PUSH2 0x1A74 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCD4 DUP3 DUP3 PUSH2 0x1A96 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCE2 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xCF9 DUP2 PUSH2 0x1AF6 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD3C JUMPI PUSH1 0x40 MLOAD PUSH32 0x38C5856200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD45 DUP4 PUSH2 0x1B5E JUMP JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0xD81 JUMPI PUSH2 0xD81 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP5 PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE DUP6 PUSH1 0x40 MLOAD PUSH2 0xDBF SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDD5 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 DUP4 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1C51 JUMP JUMPDEST PUSH32 0x6077685936C8169D09204A1D97DB12E41713588C38E1D29A61867D3DCEE98AFF PUSH2 0xE23 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE3A DUP2 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD DUP6 SWAP1 PUSH32 0x865FDCFD963A9E21F0DBB101FECEE79DDA3ECC602D0FE55E29268C843F2A3B7C SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH2 0xEA0 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0xCD4 DUP3 DUP3 PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x60 SWAP1 PUSH2 0xED8 SWAP1 PUSH2 0x23BC JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6077685936C8169D09204A1D97DB12E41713588C38E1D29A61867D3DCEE98AFF PUSH2 0xF09 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xF11 PUSH2 0x23C9 JUMP JUMPDEST DUP4 DUP3 DUP2 EQ PUSH2 0xF4B JUMPI PUSH1 0x40 MLOAD PUSH32 0x568EFCE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF56 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10D7 JUMPI PUSH1 0x0 DUP10 DUP10 DUP4 DUP2 DUP2 LT PUSH2 0xF78 JUMPI PUSH2 0xF78 PUSH2 0x4056 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP PUSH1 0x0 DUP9 DUP9 DUP5 DUP2 DUP2 LT PUSH2 0xF95 JUMPI PUSH2 0xF95 PUSH2 0x4056 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xFAA SWAP2 SWAP1 PUSH2 0x407E JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 POP DUP5 DUP3 LT PUSH2 0xFD2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH4 0xFFFFFFFF AND DUP1 DUP4 SUB PUSH2 0x1008 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1012 DUP2 DUP5 PUSH2 0x40B1 JUMP JUMPDEST PUSH2 0x101C SWAP1 DUP8 PUSH2 0x4125 JUMP JUMPDEST SWAP6 POP PUSH2 0x1027 DUP3 PUSH2 0x2452 JUMP JUMPDEST DUP3 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 AND PUSH5 0x100000000 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 AND OR PUSH4 0xFFFFFFFF DUP5 AND OR DUP3 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 SWAP1 PUSH32 0x645B3DC30FBDCC9749F62868AE25C191FF0090B1C21905C2793EC7159856E438 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP5 PUSH1 0x1 ADD SWAP5 POP POP POP POP POP PUSH2 0xF5C JUMP JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x10F6 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x4125 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SGT PUSH2 0x1119 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT ISZERO PUSH2 0x113E JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x90 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x118C PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x4920616D20726561647920746F206C6F73652065766572797468696E6720696E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x207468697320706F6F6C2E204C6574206D6520676F2E00000000000000000000 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT CALLER PUSH1 0x60 SHL AND PUSH1 0x56 DUP3 ADD MSTORE PUSH1 0x6A ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP2 EQ PUSH2 0x124C JUMPI PUSH1 0x40 MLOAD PUSH32 0x38C5856200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1257 DUP3 PUSH1 0x0 PUSH2 0x248C JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP3 PUSH2 0x1294 DUP7 DUP5 DUP5 PUSH1 0x1 PUSH2 0x269B JUMP JUMPDEST SWAP1 POP PUSH2 0x12A0 DUP2 DUP4 PUSH2 0x27BB JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP LT PUSH2 0x12F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0xECDD1C2900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x4 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000 DUP2 AND PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 SWAP4 DIV PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND TIMESTAMP PUSH6 0xFFFFFFFFFFFF DUP1 DUP5 AND DUP3 SWAP1 SUB SWAP3 SWAP1 SWAP3 MUL PUSH7 0x1000000000000 SWAP4 DUP5 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND DUP3 SWAP1 SUB AND SWAP1 SWAP4 MUL PUSH6 0xFFFFFFFFFFFF NOT AND SWAP5 SWAP1 SWAP5 OR SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SSTORE PUSH2 0x13B4 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP4 PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xAC02D07D013AE7C7E3EE940F8DF0877C2AB1103BF87AB258CE31665F7111F092 SWAP1 PUSH1 0x0 SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH2 0x140B DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0x1413 PUSH2 0x23C9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x145C JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x4 PUSH1 0x6 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x4199 JUMP JUMPDEST DUP3 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH2 0x100 SWAP4 SWAP1 SWAP4 EXP SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP3 MUL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE POP PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP LT PUSH2 0x14CA JUMPI POP DUP1 DUP4 DIV PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND SUB PUSH10 0xFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 SWAP3 DIV SWAP2 SWAP1 SWAP2 AND MUL DUP4 ADD DUP2 SWAP1 DIV JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x151C JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xB0 SHL PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP5 AND MUL OR SWAP1 SSTORE PUSH2 0x1558 DUP3 TIMESTAMP PUSH2 0x41C9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x15AB PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER ADDRESS DUP8 PUSH2 0x2871 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xDE88A922E0D3B88B24E9623EFEB464919C6BF9F66857A65E2BFCF2CE87A9433D SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0x15EC PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0xCD4 DUP3 CALLER DUP4 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1C51 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT PUSH2 0x1641 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1644 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1660 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH1 0x4 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND GT ISZERO PUSH2 0x16A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x85DE62500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x10001 DUP3 LT ISZERO PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x16EF JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD6EB9CF4D6E2902587C57E3163AAAFDB46E3B3F2086BDFA75C790228930A9D7 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1733 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH1 0x0 PUSH2 0x1744 DUP5 DUP5 PUSH2 0x291D JUMP JUMPDEST SWAP1 POP PUSH2 0x1762 DUP4 CALLER DUP4 PUSH1 0x2 PUSH2 0x175D CALLDATASIZE DUP9 SWAP1 SUB DUP9 ADD DUP9 PUSH2 0x41F7 JUMP JUMPDEST PUSH2 0x1C51 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x6 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 PUSH2 0x1788 PUSH1 0x3 DUP4 ADD PUSH2 0x2B74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH2 0x17AF SWAP1 PUSH2 0x2B74 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x17DB JUMPI DUP2 DUP2 PUSH2 0x17C2 DUP9 PUSH2 0x18AA JUMP JUMPDEST PUSH2 0x17CC SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x17D6 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH2 0x12A0 JUMP JUMPDEST POP PUSH1 0x0 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xED8 SWAP1 DUP4 PUSH2 0x2BB1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xB33 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x1831 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 PUSH2 0x1A96 JUMP JUMPDEST PUSH32 0x6077685936C8169D09204A1D97DB12E41713588C38E1D29A61867D3DCEE98AFF PUSH2 0x1865 DUP2 PUSH2 0x1A6A JUMP JUMPDEST PUSH2 0xC42 DUP4 DUP4 PUSH2 0x2BC7 JUMP JUMPDEST PUSH2 0x1877 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH2 0x1257 DUP3 CALLER PUSH1 0x0 PUSH1 0x1 PUSH2 0x175D CALLDATASIZE DUP8 SWAP1 SUB DUP8 ADD DUP8 PUSH2 0x41F7 JUMP JUMPDEST PUSH2 0x189C PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x18A7 DUP2 PUSH1 0x0 PUSH2 0x20F2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH4 0xFFFFFFFF AND DUP1 ISZERO PUSH2 0x18F7 JUMPI PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x90 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 PUSH2 0x18DE PUSH2 0x1610 JUMP JUMPDEST PUSH2 0x18E8 SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x18F2 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1908 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x6 SSTORE PUSH2 0x1918 DUP2 PUSH1 0x1 PUSH2 0x248C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCD4 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x197A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x2F5A JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB33 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0xB33 JUMP JUMPDEST PUSH2 0x18A7 DUP2 CALLER PUSH2 0x2FA9 JUMP JUMPDEST PUSH2 0x1A7E DUP3 DUP3 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC42 SWAP1 DUP3 PUSH2 0x19BE JUMP JUMPDEST PUSH2 0x1AA0 DUP3 DUP3 PUSH2 0x301C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC42 SWAP1 DUP3 PUSH2 0x309B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SUB PUSH2 0x1AF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xAB143C0600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x2 JUMPDEST DUP2 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH2 0x1B27 PUSH2 0x3F5E JUMP JUMPDEST EQ PUSH2 0x18A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB968846100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B68 PUSH2 0x23C9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1B7F DUP2 PUSH2 0x2452 JUMP JUMPDEST DUP2 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFF AND SWAP1 SWAP2 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP4 PUSH1 0x4 DUP3 ADD MSTORE DUP3 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 PUSH1 0x44 DUP4 PUSH1 0x0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1F RETURNDATASIZE GT PUSH1 0x1 PUSH1 0x0 MLOAD EQ AND OR AND SWAP2 POP POP DUP1 PUSH2 0x1C4B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5452414E534645525F4641494C45440000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x1C81 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND DUP1 ISZERO PUSH2 0x1CA2 JUMPI PUSH2 0x1CA0 DUP10 DUP6 PUSH2 0x30B0 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x1CAF DUP11 DUP7 DUP7 PUSH2 0x3116 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1CC6 JUMPI PUSH2 0x1CC6 PUSH2 0x3F5E JUMP JUMPDEST SUB PUSH2 0x1D00 JUMPI POP PUSH1 0x4 DUP5 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x0 DUP8 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x2 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1D14 JUMPI PUSH2 0x1D14 PUSH2 0x3F5E JUMP JUMPDEST SUB PUSH2 0x1D5C JUMPI PUSH2 0x1D24 DUP7 DUP11 DUP10 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE SWAP1 SWAP8 POP PUSH1 0x0 SWAP1 PUSH2 0x1DB0 JUMP JUMPDEST PUSH1 0x1 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1D70 JUMPI PUSH2 0x1D70 PUSH2 0x3F5E JUMP JUMPDEST EQ PUSH2 0x1D7D JUMPI PUSH2 0x1D7D PUSH2 0x4295 JUMP JUMPDEST DUP9 ISZERO PUSH2 0x1D8B JUMPI PUSH2 0x1D8B PUSH2 0x4295 JUMP JUMPDEST PUSH2 0x1D96 DUP7 DUP4 DUP10 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE SWAP9 POP JUMPDEST DUP9 PUSH1 0x0 SUB PUSH2 0x1DD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1DDE DUP12 DUP7 PUSH2 0x41C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP2 GT ISZERO PUSH2 0x1E21 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP12 TIMESTAMP MUL SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD PUSH1 0xD DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP2 DUP8 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP9 PUSH1 0x0 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND SWAP1 POP DUP14 DUP2 ADD SWAP5 POP DUP5 DUP3 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP3 DUP3 PUSH1 0x0 ADD PUSH1 0xD DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP DUP10 PUSH1 0x3 ADD PUSH1 0x13 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP SUB DUP2 MUL DUP11 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP POP POP POP POP PUSH2 0x1FEE DUP8 DUP8 PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF TIMESTAMP AND PUSH1 0x1 PUSH1 0x98 SHL MUL PUSH32 0xFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x5 SWAP1 SWAP2 ADD SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST DUP2 ISZERO PUSH2 0x200B JUMPI DUP7 SLOAD PUSH2 0x200B SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER ADDRESS DUP6 PUSH2 0x2871 JUMP JUMPDEST DUP10 DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP14 PUSH32 0x17700CEB1658B18206F427C1578048E87504106B14EC69E9B4586D9A95174A32 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2048 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 DUP8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x20DC JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND SWAP1 PUSH4 0xBA782BEE SWAP1 PUSH1 0xA4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x1AF9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x2119 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH2 0x2123 DUP5 DUP4 PUSH2 0x30B0 JUMP JUMPDEST POP PUSH2 0x212E DUP2 DUP6 PUSH2 0x34EB JUMP JUMPDEST DUP1 SLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND DUP1 DUP6 GT ISZERO PUSH2 0x2175 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2182 DUP8 DUP7 DUP7 PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE SWAP1 POP DUP6 ISZERO DUP1 ISZERO PUSH2 0x21A7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x21C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP6 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP1 DUP3 AND DUP11 SWAP1 SUB DUP2 AND PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP3 AND DUP3 OR DUP1 DUP5 SSTORE DUP8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH14 0x100000000000000000000000000 SWAP2 DUP3 SWAP1 DIV DUP2 AND SWAP3 DUP3 SWAP1 DIV DUP2 AND TIMESTAMP DUP15 DUP12 SUB DUP2 DUP2 MUL SWAP3 DUP4 ADD SWAP6 SWAP1 SWAP6 SUB DUP4 AND DUP5 MUL SWAP1 SWAP7 OR SWAP1 SWAP7 SSTORE SWAP5 SWAP1 SWAP5 AND SWAP1 SWAP4 MUL SWAP1 DUP4 AND OR DUP7 SSTORE SWAP2 DUP7 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x98 SHL MUL PUSH32 0xFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH1 0x4 DUP7 ADD SLOAD PUSH1 0x1 DUP7 ADD SSTORE PUSH1 0x5 DUP7 ADD SLOAD PUSH1 0x2 DUP7 ADD SSTORE DUP2 ISZERO PUSH2 0x22CB JUMPI PUSH2 0x22CB PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND CALLER DUP5 PUSH2 0x1BAC JUMP JUMPDEST DUP7 ISZERO PUSH2 0x22E7 JUMPI DUP6 SLOAD PUSH2 0x22E7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP10 PUSH2 0x1BAC JUMP JUMPDEST DUP7 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE DUP6 PUSH1 0x40 MLOAD PUSH2 0x2324 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 DUP7 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x23B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x84 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBA782BEE SWAP1 PUSH1 0xA4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x239D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xED8 DUP4 PUSH2 0x361F JUMP JUMPDEST PUSH2 0x23D1 PUSH2 0x367B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x23F5 SWAP1 DUP5 SWAP1 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x42AB JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x3 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2460 DUP4 PUSH1 0x0 PUSH2 0x36A7 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP5 SLOAD PUSH1 0x1 PUSH1 0x80 SHL PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND MUL SWAP2 AND OR SWAP1 SWAP4 SSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x24B3 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH2 0x24BD DUP2 DUP6 PUSH2 0x34EB JUMP JUMPDEST DUP1 SLOAD PUSH1 0x3 DUP4 ADD SWAP1 DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND PUSH1 0x0 DUP2 SWAP1 SUB PUSH2 0x24F1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP1 DUP3 AND DUP4 SWAP1 SUB AND PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP2 AND DUP2 OR DUP1 DUP6 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH14 0x100000000000000000000000000 SWAP2 DUP3 SWAP1 DIV DUP2 AND SWAP3 DUP3 SWAP1 DIV DUP2 AND SWAP3 SWAP1 SWAP3 SUB SWAP1 SWAP2 AND MUL OR DUP4 SSTORE PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 ADD SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x3 DUP2 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x4 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE DUP6 ISZERO PUSH2 0x2609 JUMPI DUP5 SLOAD PUSH2 0x25B9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB DUP5 AND PUSH2 0x1BAC JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP9 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x2600 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST PUSH1 0x1 DUP6 DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE CALLER PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x0 PUSH1 0x84 DUP5 ADD DUP2 SWAP1 MSTORE PUSH1 0xA4 DUP1 DUP6 ADD DUP3 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC4 SWAP1 SWAP5 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP4 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL OR DUP2 MSTORE DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP4 SWAP3 DUP3 SWAP2 DUP3 DUP7 GAS CALL POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0x98 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x26E4 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x27B3 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD PUSH1 0x4 DUP6 ADD DUP4 ISZERO PUSH2 0x277A JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x270A SWAP1 DUP7 PUSH2 0x36A7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2719 DUP10 DUP5 PUSH2 0x3757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH1 0x0 ADD SLOAD DUP5 DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x273D SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x2747 SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH1 0x1 ADD SLOAD DUP4 DUP8 PUSH1 0x1 ADD SLOAD PUSH2 0x2761 SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x276B SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST DUP2 MSTORE POP SWAP6 POP POP POP POP POP POP PUSH2 0x27B3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP3 SLOAD DUP3 SLOAD DUP3 SWAP2 PUSH2 0x2793 SWAP2 PUSH2 0x42D6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x1 ADD SLOAD PUSH2 0x27AC SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST SWAP1 MSTORE SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x98 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP1 ISZERO PUSH2 0x2867 JUMPI PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP2 PUSH2 0x27FD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x4254 JUMP JUMPDEST DUP5 SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x281B SWAP1 DUP6 SWAP1 PUSH2 0x4254 JUMP JUMPDEST DUP8 MLOAD PUSH2 0x2827 SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST PUSH2 0x2831 SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x283B SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x2845 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH1 0x4 DUP5 ADD SLOAD PUSH2 0x2862 SWAP2 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x27B3 JUMP JUMPDEST PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP5 PUSH1 0x4 DUP3 ADD MSTORE DUP4 PUSH1 0x24 DUP3 ADD MSTORE DUP3 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 PUSH1 0x64 DUP4 PUSH1 0x0 DUP11 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1F RETURNDATASIZE GT PUSH1 0x1 PUSH1 0x0 MLOAD EQ AND OR AND SWAP2 POP POP DUP1 PUSH2 0x2916 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5452414E534645525F46524F4D5F4641494C4544000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 KECCAK256 PUSH2 0x2943 DUP3 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x296F JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2979 DUP6 DUP4 PUSH2 0x30B0 JUMP JUMPDEST POP PUSH2 0x2984 DUP6 DUP6 PUSH2 0x37BA JUMP JUMPDEST PUSH2 0x298F DUP6 DUP4 DUP4 PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE SWAP3 POP PUSH1 0x0 DUP4 SWAP1 SUB PUSH2 0x29CA JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x29F6 SWAP1 PUSH1 0x1 PUSH1 0x98 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND TIMESTAMP PUSH2 0x42D6 JUMP JUMPDEST PUSH2 0x2A00 SWAP1 DUP3 PUSH2 0x4254 JUMP JUMPDEST PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2A1D SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND PUSH2 0x42ED JUMP JUMPDEST SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x2A9A DUP4 DUP4 PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF TIMESTAMP AND PUSH1 0x1 PUSH1 0x98 SHL MUL PUSH32 0xFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x5 SWAP1 SWAP2 ADD SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH32 0x1C84CC0F96161BDAFEA718A9094DD21C21D1FB2F9CA2EBB9BD4E39918EFBAACE DUP8 PUSH1 0x40 MLOAD PUSH2 0x2AD8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x2B6A JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D3C15F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x84 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBA782BEE SWAP1 PUSH1 0xA4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB PUSH14 0x100000000000000000000000000 DUP3 DIV AND SWAP1 PUSH2 0x2BA7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND TIMESTAMP PUSH2 0x4254 JUMP JUMPDEST PUSH2 0xB33 SWAP2 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 DUP4 PUSH2 0x3888 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB33 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x2BD8 DUP4 PUSH2 0x430F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 PUSH2 0x2C14 JUMPI POP PUSH1 0x0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2C12 JUMPI PUSH2 0x2C12 PUSH2 0x3F5E JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x2C4B JUMPI PUSH1 0x40 MLOAD PUSH32 0x4A0BD98600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP3 AND DUP2 OR DUP4 SSTORE DUP5 SWAP2 DUP4 SWAP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000 SWAP1 SWAP2 AND OR PUSH21 0x10000000000000000000000000000000000000000 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2CC4 JUMPI PUSH2 0x2CC4 PUSH2 0x3F5E JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2CDD JUMPI PUSH2 0x2CDD PUSH2 0x3F5E JUMP JUMPDEST SUB PUSH2 0x2F1E JUMPI DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x2D0D JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH32 0xEDCC0F9000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xEDCC0F90 SWAP1 PUSH1 0x24 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2D8B JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2D88 SWAP2 DUP2 ADD SWAP1 PUSH2 0x4329 JUMP JUMPDEST PUSH1 0x1 JUMPDEST ISZERO PUSH2 0x2F1E JUMPI PUSH1 0x40 MLOAD PUSH32 0xE6A4390500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP3 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP1 DUP9 AND SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0xE6A43905 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E41 SWAP2 SWAP1 PUSH2 0x4358 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x2F1B JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x2EB7 JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH2 0x2F1B JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x2F1B JUMPI PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE JUMPDEST POP POP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 DUP4 SWAP1 PUSH32 0x3D82013E0D368D05BFB8B953D35BFFD6EEC15520773228DE41146F306A241AEC SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2FA1 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xB33 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xCD4 JUMPI PUSH2 0x2FDA DUP2 PUSH2 0x38B2 JUMP JUMPDEST PUSH2 0x2FE5 DUP4 PUSH1 0x20 PUSH2 0x38C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2FF6 SWAP3 SWAP2 SWAP1 PUSH2 0x43A1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0xCC1 SWAP2 PUSH1 0x4 ADD PUSH2 0x4422 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x3AED JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30BC DUP5 PUSH2 0x1B5E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x30CB DUP6 DUP5 PUSH2 0x3757 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP6 PUSH1 0x4 ADD SWAP1 POP DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x30EB SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3106 SWAP2 SWAP1 PUSH2 0x41C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP SWAP4 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3126 DUP6 DUP6 DUP6 PUSH1 0x0 PUSH2 0x269B JUMP JUMPDEST SWAP1 POP PUSH2 0x3132 DUP2 DUP5 PUSH2 0x27BB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP3 SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP2 AND DUP1 PUSH2 0x3189 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB968846100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31EE SWAP2 SWAP1 PUSH2 0x4478 JUMP JUMPDEST POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP PUSH1 0x0 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND LT PUSH2 0x3268 JUMPI DUP2 PUSH2 0x3259 DUP10 DUP6 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x3263 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST PUSH2 0x327D JUMP JUMPDEST DUP3 PUSH2 0x3273 DUP10 DUP5 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x327D SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST SWAP1 POP DUP7 PUSH1 0x20 ADD MLOAD DUP2 GT ISZERO PUSH2 0x32BD JUMPI PUSH1 0x40 MLOAD PUSH32 0x4C9B2C5900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x32F8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4C9B2C5900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE ISZERO PUSH2 0x3412 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3350 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP7 PUSH1 0x20 ADD MLOAD CALLVALUE EQ PUSH2 0x338D JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD0E30DB0 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33DC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x33F7 SWAP4 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 POP DUP7 DUP4 PUSH2 0x1BAC JUMP JUMPDEST CALLVALUE DUP2 DUP2 SUB SWAP1 DUP3 EQ PUSH2 0x340C JUMPI PUSH2 0x340C CALLER DUP3 PUSH2 0x3BE0 JUMP JUMPDEST POP PUSH2 0x3427 JUMP JUMPDEST PUSH2 0x3427 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND CALLER DUP8 DUP5 PUSH2 0x2871 JUMP JUMPDEST PUSH2 0x345B PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND DUP7 DUP11 PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x6A62784200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x6A627842 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x34BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34DE SWAP2 SWAP1 PUSH2 0x44BF JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH7 0xFFFFFFFFFFFFFF AND ISZERO PUSH2 0x3537 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF2E5B6C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH2 0x3559 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST SWAP1 POP JUMPDEST DUP1 ISZERO PUSH2 0xC42 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH1 0x0 NOT SWAP1 SWAP3 ADD SWAP2 PUSH2 0x358C SWAP1 DUP4 PUSH2 0x2BB1 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x35B2 SWAP1 DUP3 PUSH2 0x3C3B JUMP JUMPDEST ISZERO PUSH2 0x3619 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x19 SWAP1 PUSH2 0x35F4 SWAP1 PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH7 0xFFFFFFFFFFFFFF AND PUSH2 0x44D8 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH7 0xFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH7 0xFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST POP PUSH2 0x355C JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x366F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x365B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3686 PUSH2 0x3C47 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x90 SHL SWAP1 SWAP2 DIV AND PUSH5 0x100000000 SWAP1 SWAP2 MUL DIV SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0x36C9 JUMPI PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x36E8 JUMP JUMPDEST PUSH2 0x36D1 PUSH2 0x367B JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ADD JUMPDEST DUP5 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP3 POP PUSH1 0x1 PUSH1 0x80 SHL DUP2 DIV SWAP1 SWAP2 AND DUP3 SUB SWAP1 PUSH5 0x100000000 SWAP1 PUSH4 0xFFFFFFFF AND DUP3 MUL DUP7 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH5 0x100000000 SWAP1 SWAP2 DIV DUP2 AND SWAP3 SWAP1 SWAP2 DIV SWAP2 SWAP1 SWAP2 ADD SWAP4 POP DUP4 GT ISZERO PUSH2 0x374F JUMPI PUSH2 0x374F PUSH2 0x4295 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x3768 DUP6 PUSH1 0x3 ADD PUSH2 0x2B74 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x37B2 JUMPI DUP1 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x3780 TIMESTAMP DUP8 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x378A SWAP2 SWAP1 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x3794 SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST SWAP3 POP DUP1 PUSH2 0x37A5 PUSH1 0x1 PUSH1 0x80 SHL DUP7 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x37AF SWAP2 SWAP1 PUSH2 0x4273 JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x37DD SWAP1 DUP3 PUSH2 0x3CAB JUMP JUMPDEST ISZERO PUSH2 0x3844 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x6 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x19 SWAP1 PUSH2 0x381F SWAP1 PUSH1 0x1 PUSH1 0xC8 SHL SWAP1 DIV PUSH7 0xFFFFFFFFFFFFFF AND PUSH2 0x44FB JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH7 0xFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH7 0xFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0xA SWAP1 PUSH2 0x3869 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST GT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x389F JUMPI PUSH2 0x389F PUSH2 0x4056 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xB33 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x38D3 DUP4 PUSH1 0x2 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x38DE SWAP1 PUSH1 0x2 PUSH2 0x41C9 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38F6 JUMPI PUSH2 0x38F6 PUSH2 0x41E1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3920 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3957 JUMPI PUSH2 0x3957 PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x39BA JUMPI PUSH2 0x39BA PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x39F6 DUP5 PUSH1 0x2 PUSH2 0x4254 JUMP JUMPDEST PUSH2 0x3A01 SWAP1 PUSH1 0x1 PUSH2 0x41C9 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3A9E JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x3A42 JUMPI PUSH2 0x3A42 PUSH2 0x4056 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3A58 JUMPI PUSH2 0x3A58 PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3A97 DUP2 PUSH2 0x4521 JUMP JUMPDEST SWAP1 POP PUSH2 0x3A04 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xED8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x3BD6 JUMPI PUSH1 0x0 PUSH2 0x3B11 PUSH1 0x1 DUP4 PUSH2 0x42D6 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3B25 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x42D6 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x3B8A JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3B45 JUMPI PUSH2 0x3B45 PUSH2 0x4056 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x3B68 JUMPI PUSH2 0x3B68 PUSH2 0x4056 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x3B9B JUMPI PUSH2 0x3B9B PUSH2 0x4538 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xB33 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP8 GAS CALL SWAP1 POP DUP1 PUSH2 0xC42 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4554485F5452414E534645525F4641494C454400000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 DUP4 PUSH2 0x3AED JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 SWAP1 PUSH6 0xFFFFFFFFFFFF AND DUP2 TIMESTAMP DUP3 LT PUSH2 0x3C63 JUMPI TIMESTAMP PUSH2 0x3C65 JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0x3 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP1 DUP3 GT ISZERO PUSH2 0x3CA1 JUMPI PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP2 SUB MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xED8 DUP4 DUP4 PUSH2 0x2F5A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0xC0 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0xE0 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3CF8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0xED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3DAF DUP2 PUSH2 0x3D75 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3DCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3DE1 DUP2 PUSH2 0x3D75 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3E4C JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3E30 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3E6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x3E9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3EBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3ED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3EDE DUP9 DUP4 DUP10 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3EF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F04 DUP8 DUP3 DUP9 ADD PUSH2 0x3E58 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3F3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x3F55 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x3F10 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE PUSH2 0x100 DUP3 ADD SWAP1 PUSH1 0x3 DUP9 LT PUSH2 0x3FA5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP4 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE SWAP6 DUP7 AND PUSH1 0x40 DUP4 ADD MSTORE SWAP4 SWAP1 SWAP5 AND PUSH1 0x60 DUP6 ADD MSTORE DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x68 SHL SUB AND PUSH1 0x80 DUP6 ADD MSTORE SWAP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB AND PUSH1 0xA0 DUP5 ADD MSTORE DUP1 MLOAD PUSH1 0xC0 DUP5 ADD MSTORE SWAP1 SWAP3 ADD MLOAD PUSH1 0xE0 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x400A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x4015 DUP2 PUSH2 0x3D75 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x3 DUP2 LT PUSH2 0x3DAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x404D DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x3F10 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4090 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xED8 DUP2 PUSH2 0x406C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 SLT DUP4 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 ADD DUP4 SLT DUP2 ISZERO AND ISZERO PUSH2 0x40EB JUMPI PUSH2 0x40EB PUSH2 0x409B JUMP JUMPDEST DUP4 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP4 SGT DUP2 AND ISZERO PUSH2 0x411F JUMPI PUSH2 0x411F PUSH2 0x409B JUMP JUMPDEST POP POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP5 SGT DUP2 ISZERO AND ISZERO PUSH2 0x415F JUMPI PUSH2 0x415F PUSH2 0x409B JUMP JUMPDEST DUP3 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SUB DUP5 SLT DUP2 AND ISZERO PUSH2 0x4193 JUMPI PUSH2 0x4193 PUSH2 0x409B JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x41C0 JUMPI PUSH2 0x41C0 PUSH2 0x409B JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x41DC JUMPI PUSH2 0x41DC PUSH2 0x409B JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x423A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD CALLDATALOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x426E JUMPI PUSH2 0x426E PUSH2 0x409B JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4290 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x41C0 JUMPI PUSH2 0x41C0 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x42E8 JUMPI PUSH2 0x42E8 PUSH2 0x409B JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x98 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x41C0 JUMPI PUSH2 0x41C0 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x4322 JUMPI PUSH2 0x4322 PUSH2 0x409B JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x433C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x4347 DUP2 PUSH2 0x3D75 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x3DAF DUP2 PUSH2 0x3D75 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x436A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xED8 DUP2 PUSH2 0x3D75 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4390 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4378 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1C4B JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x43D9 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4375 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4416 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x4375 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4441 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4375 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x4473 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x448D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4496 DUP5 PUSH2 0x4455 JUMP JUMPDEST SWAP3 POP PUSH2 0x44A4 PUSH1 0x20 DUP6 ADD PUSH2 0x4455 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x44B4 DUP2 PUSH2 0x406C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH7 0xFFFFFFFFFFFFFF DUP3 AND DUP1 PUSH2 0x44F1 JUMPI PUSH2 0x44F1 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x0 NOT ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH7 0xFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 SUB PUSH2 0x4517 JUMPI PUSH2 0x4517 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x4530 JUMPI PUSH2 0x4530 PUSH2 0x409B JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 0x4C 0xA7 DUP4 0xD2 0xAC 0x4B 0x2F 0x25 ADD 0xD5 SWAP11 0xB0 PUSH24 0xDC4F5EC2D943421F01E891BBCADF49FA934F64736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"820:48126:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;;;;;-1:-1:-1;634:212:1;;;;;:::i;:::-;;:::i;:::-;;;516:14:60;;509:22;491:41;;479:2;464:18;634:212:1;;;;;;;;2177:30:48;;;;;;;;;;-1:-1:-1;2177:30:48;;;;;;;;;;;;;;717:26:60;705:39;;;687:58;;675:2;660:18;2177:30:48;543:208:60;6566:43:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:55:60;;;902:74;;890:2;875:18;6566:43:47;756:226:60;4378:129:0;;;;;;;;;;-1:-1:-1;4378:129:0;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;;;;1318:25:60;;;1306:2;1291:18;4378:129:0;1172:177:60;16712:138:47;;;;;;;;;;-1:-1:-1;16712:138:47;;;;;:::i;:::-;;:::i;:::-;;;;;;2463:13:60;;1917:12;;-1:-1:-1;;;;;1913:47:60;1901:60;;2014:4;2003:16;;;1997:23;-1:-1:-1;;;;;1993:70:60;1977:14;;;1970:94;2417:3;2402:19;;2535:4;2523:17;;;2517:24;2157:12;;2614:4;2599:20;;2145:25;2208:16;;;2202:23;2186:14;;;2179:47;2550:70;-1:-1:-1;;;;;2680:4:60;2672:6;2668:17;2662:24;2658:71;2651:4;2640:9;2636:20;2629:101;2798:14;2790:4;2782:6;2778:17;2772:24;2768:45;2761:4;2750:9;2746:20;2739:75;2882:16;2874:4;2866:6;2862:17;2856:24;2852:47;2845:4;2834:9;2830:20;2823:77;2968:26;2960:4;2952:6;2948:17;2942:24;2938:57;2931:4;2920:9;2916:20;2909:87;2237:765;;;;;19646:100:47;;;;;;;;;;-1:-1:-1;19726:12:47;;19646:100;;4803:145:0;;;;;;;;;;-1:-1:-1;4803:145:0;;;;;:::i;:::-;;:::i;:::-;;1706:36:48;;;;;;;;;;-1:-1:-1;1706:36:48;;;;;;;;;;;3685:34:60;3673:47;;;3655:66;;3643:2;3628:18;1706:36:48;3509:218:60;5912:214:0;;;;;;;;;;-1:-1:-1;5912:214:0;;;;;:::i;:::-;;:::i;15710:694:47:-;;;;;;;;;;-1:-1:-1;15710:694:47;;;;;:::i;:::-;;:::i;11178:203::-;;;;;;;;;;-1:-1:-1;11178:203:47;;;;;:::i;:::-;;:::i;9513:266::-;;;;;;;;;;-1:-1:-1;9513:266:47;;;;;:::i;:::-;;:::i;12531:114::-;;;;;;;;;;-1:-1:-1;12531:114:47;;;;;:::i;:::-;;:::i;17166:184::-;;;;;;;;;;-1:-1:-1;17166:184:47;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8688:2034:48:-;;;;;;;;;;-1:-1:-1;8688:2034:48;;;;;:::i;:::-;;:::i;15064:397:47:-;;;;;;;;;;-1:-1:-1;15064:397:47;;;;;:::i;:::-;;:::i;18889:709::-;;;;;;;;;;-1:-1:-1;18889:709:47;;;;;:::i;:::-;;:::i;5829:745:48:-;;;;;;;;;;;;;:::i;1517:57::-;;;;;;;;;;-1:-1:-1;1517:57:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1517:57:48;;;;;;;;;;6825:10:60;6813:23;;;6795:42;;6885:26;6873:39;;;6868:2;6853:18;;6846:67;6961:34;6949:47;6929:18;;;6922:75;6783:2;6768:18;1517:57:48;6597:406:60;6741:1625:48;;;;;;;;;;-1:-1:-1;6741:1625:48;;;;;:::i;:::-;;:::i;10737:155:47:-;;;;;;;;;;-1:-1:-1;10737:155:47;;;;;:::i;:::-;;:::i;11386:126:48:-;;;;;;;;;;;;;:::i;5139:584::-;;;;;;;;;;-1:-1:-1;5139:584:48;;;;;:::i;:::-;;:::i;13531:814:47:-;;;;;;:::i;:::-;;:::i;17983:494::-;;;;;;;;;;-1:-1:-1;17983:494:47;;;;;:::i;:::-;;:::i;1431:151:1:-;;;;;;;;;;-1:-1:-1;1431:151:1;;;;;:::i;:::-;;:::i;2895:145:0:-;;;;;;;;;;-1:-1:-1;2895:145:0;;;;;:::i;:::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145;2269:25:48;;;;;;;;;;-1:-1:-1;2269:25:48;;;;-1:-1:-1;;;2269:25:48;;;;;;;;;7979:10:60;7967:23;;;7949:42;;7937:2;7922:18;2269:25:48;7805:192:60;2027:49:0;;;;;;;;;;-1:-1:-1;2027:49:0;2072:4;2027:49;;6158:37:47;;;;;;;;;;-1:-1:-1;6158:37:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6158:37:47;;;;;;;-1:-1:-1;;;;;6158:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6158:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2399:38:48:-;;;;;;;;;;;;;;;;1840:24;;;;;;;;;;-1:-1:-1;1840:24:48;;;;-1:-1:-1;;;1840:24:48;;;;;;;;;9424:14:60;9412:27;;;9394:46;;9382:2;9367:18;1840:24:48;9250:196:60;6420:41:47;;;;;;;;;;;;;;;1750:140:1;;;;;;;;;;-1:-1:-1;1750:140:1;;;;;:::i;:::-;;:::i;3655:35:48:-;;;;;;;;;;;;;;;5228:147:0;;;;;;;;;;-1:-1:-1;5228:147:0;;;;;:::i;:::-;;:::i;10346:191:47:-;;;;;;;;;;-1:-1:-1;10346:191:47;;;;;:::i;:::-;;:::i;12124:170::-;;;;;;:::i;:::-;;:::i;12803:92::-;;;;;;;;;;-1:-1:-1;12803:92:47;;;;;:::i;:::-;;:::i;2087:26:48:-;;;;;;;;;;-1:-1:-1;2087:26:48;;;;;;;;10950:268;;;;;;;;;;-1:-1:-1;10950:268:48;;;;;:::i;:::-;;:::i;14509:114:47:-;;;;;;;;;;-1:-1:-1;14509:114:47;;;;;:::i;:::-;;:::i;634:212:1:-;719:4;742:57;;;757:42;742:57;;:97;;;803:36;827:11;803:23;:36::i;:::-;735:104;634:212;-1:-1:-1;;634:212:1:o;16712:138:47:-;16784:11;;:::i;:::-;-1:-1:-1;16815:13:47;;;;:5;:13;;;;;;;;-1:-1:-1;;;;;16815:27:47;;;;:19;;:27;;;;;;16808:34;;;;;;;;;-1:-1:-1;;;;;16808:34:47;;;;;;;;;;;;-1:-1:-1;;;;;16808:34:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16808:34:47;;;;;;;;-1:-1:-1;;;16808:34:47;;;;;-1:-1:-1;;;16808:34:47;;;;;;-1:-1:-1;;;16808:34:47;16712:138;;;;:::o;4803:145:0:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;:::-;4803:145:::0;;;:::o;5912:214::-;-1:-1:-1;;;;;6007:23:0;;719:10:24;6007:23:0;5999:83;;;;-1:-1:-1;;;5999:83:0;;10885:2:60;5999:83:0;;;10867:21:60;10924:2;10904:18;;;10897:30;10963:34;10943:18;;;10936:62;11034:17;11014:18;;;11007:45;11069:19;;5999:83:0;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;15710:694:47:-;15770:14;613:13:51;:11;:13::i;:::-;15848:17:47::1;15868:13:::0;;;:5:::1;:13;::::0;;;;15935:22:::1;15868:13:::0;15935:16:::1;:22::i;:::-;16050:21:::0;;-1:-1:-1;;;;;16050:21:47::1;16036:10;:35;16032:68;;16080:20;;;;;;;;;;;;;;16032:68;16160:14;16167:6;16160;:14::i;:::-;16151:23:::0;-1:-1:-1;16282:11:47;;16278:62:::1;;16295:45;-1:-1:-1::0;;;;;16295:12:47::1;:25;16321:10;16333:6:::0;16295:25:::1;:45::i;:::-;16386:1;16374:10;-1:-1:-1::0;;;;;16356:40:47::1;16366:6;16356:40;16389:6;16356:40;;;;1318:25:60::0;;1306:2;1291:18;;1172:177;16356:40:47::1;;;;;;;;15786:618;15710:694:::0;;;:::o;11178:203::-;613:13:51;:11;:13::i;:::-;11308:65:47::1;11315:6;11323;11331;11339:17;11358:14;;;;;;;;11367:1;11358:14;;;;11370:1;11358:14;;::::0;11308:6:::1;:65::i;9513:266::-:0;3547:30:48;2505:16:0;2516:4;2505:10;:16::i;:::-;9616:17:47::1;9636:13:::0;;;:5:::1;:13;::::0;;;;9660:20:::1;9636:13:::0;9660:14:::1;:20::i;:::-;9691:13;::::0;::::1;:35:::0;;-1:-1:-1;;9691:35:47::1;-1:-1:-1::0;;;;;9691:35:47;::::1;::::0;;::::1;::::0;;;9742:29:::1;::::0;9754:6;;9742:29:::1;::::0;-1:-1:-1;;9742:29:47::1;9605:174;9513:266:::0;;;:::o;12531:114::-;613:13:51;:11;:13::i;:::-;12612:25:47::1;12622:6;12630;12612:9;:25::i;17166:184::-:0;17306:19;;;;:11;:19;;;;;;;;-1:-1:-1;;;;;17306:27:47;;;;;;;;;17270:16;;17306:36;;:34;:36::i;:::-;17299:43;17166:184;-1:-1:-1;;;17166:184:47:o;8688:2034:48:-;3547:30;2505:16:0;2516:4;2505:10;:16::i;:::-;8834:30:48::1;:28;:30::i;:::-;8964:7:::0;8993:24;;::::1;8989:61;;9026:24;;;;;;;;;;;;;;8989:61;9149:22;9174:13;19726:12:47::0;;;19646:100;9174:13:48::1;9149:38:::0;-1:-1:-1;9284:19:48::1;::::0;9314:1038:::1;9338:6;9334:1;:10;9314:1038;;;9363:14;9380:7;;9388:1;9380:10;;;;;;;:::i;:::-;;;;;;;9363:27;;9405:14;9422:7;;9430:1;9422:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9405:27;;;;9530:14;9520:6;:24;9516:50;;9553:13;;-1:-1:-1::0;;;9553:13:48::1;;;;;;;;;;;9516:50;9636:27;9666:23:::0;;;:15:::1;:23;::::0;;;;9768:11;;::::1;;9798:19:::0;;;9794:42:::1;;9826:10;;-1:-1:-1::0;;;9826:10:48::1;;;;;;;;;;;9794:42;9926:34;9950:9:::0;9933:6;9926:34:::1;:::i;:::-;9909:52;::::0;;::::1;:::i;:::-;;;10100:32;10127:4;10100:26;:32::i;:::-;10071:62:::0;;10148:28;;10071:62;::::1;::::0;;;::::1;::::0;;;::::1;10148:28:::0;;;::::1;::::0;::::1;;::::0;;10196:25:::1;::::0;1318::60;;;10206:6:48;;10196:25:::1;::::0;1306:2:60;1291:18;10196:25:48::1;;;;;;;10322:3;;;;;9348:1004;;;;9314:1038;;;-1:-1:-1::0;10495:11:48::1;::::0;10456:21:::1;::::0;10480:43:::1;::::0;10511:12;;-1:-1:-1;;;10495:11:48;::::1;;;10480:43;:::i;:::-;10456:67;;10556:1;10538:14;:19;10534:45;;10566:13;;-1:-1:-1::0;;;10566:13:48::1;;;;;;;;;;;10534:45;2970:16;10594:42:::0;::::1;10590:68;;;10645:13;;-1:-1:-1::0;;;10645:13:48::1;;;;;;;;;;;10590:68;10669:11;:45:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;10669:45:48::1;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;;;8688:2034:48:o;15064:397:47:-;497:13:51;:11;:13::i;:::-;530:1;521:6;:10;15212:147:47::1;::::0;;12841:34:60;15212:147:47::1;::::0;::::1;12829:47:60::0;12906:24;12892:12;;;12885:46;;;;-1:-1:-1;;15330:10:47::1;12969:2:60::0;12965:15;12961:88;12947:12;;;12940:110;13066:12;;15212:147:47::1;;;;;;;;;;;;15184:190;;;;;;15168:12;:206;15164:249;;15393:20;;;;;;;;;;;;;;15164:249;15424:29;15439:6;15447:5;15424:14;:29::i;:::-;-1:-1:-1::0;;563:1:51;554:6;:10;15064:397:47:o;18889:709::-;18972:7;19067:13;;;:5;:13;;;;;;;;-1:-1:-1;;;;;19111:18:47;;;;:10;;;:18;;;;;18972:7;19324:114;19073:6;19067:13;19111:18;19423:4;19324:25;:114::i;:::-;19276:162;;19554:36;19562:21;19585:4;19554:7;:36::i;:::-;19547:43;18889:709;-1:-1:-1;;;;;;18889:709:47:o;5829:745:48:-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;5971:12:48::1;::::0;::::1;;5952:15;:31;5948:53;;5992:9;;;;;;;;;;;;;;5948:53;6154:11;::::0;6120:12:::1;::::0;;6346:38;;;-1:-1:-1;;;6154:11:48;;::::1;;;6135:15;6120:12;::::0;;::::1;:30:::0;;::::1;6119:46:::0;;;::::1;6256:36:::0;;;;::::1;;::::0;;::::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;6346:38:48;;;;;;::::1;::::0;;;::::1;::::0;;6475:47:::1;:12;-1:-1:-1::0;;;;;6475:25:48::1;6501:10;6119:46:::0;6475:25:::1;:47::i;:::-;6542:13;::::0;::::1;::::0;;;::::1;6014:553;5829:745:::0;:::o;6741:1625::-;3398:24;2505:16:0;2516:4;2505:10;:16::i;:::-;6818:30:48::1;:28;:30::i;:::-;6952:14;::::0;3119:16:::1;7023:25:::0;::::1;7019:48;;;7057:10;;;;;;;;;;;;;;7019:48;7196:6;7169:16;;:34;;;;;;;;;;;;;;;;:::i;:::-;::::0;;::::1;::::0;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;::::1;;::::0;;-1:-1:-1;7371:12:48::1;::::0;-1:-1:-1;;7371:12:48::1;;7352:15;:31;7348:426;;-1:-1:-1::0;7445:30:48;;::::1;7348:426;;;-1:-1:-1::0;7605:11:48::1;::::0;7571:12:::1;::::0;7586:15:::1;7571:12;::::0;;::::1;:30;7605:11;-1:-1:-1::0;;;7605:11:48;;::::1;::::0;;;::::1;7570:46;7688:21:::0;::::1;7684:45:::0;;::::1;7348:426;7870:13;7887:1;7870:18:::0;7866:41:::1;;7897:10;;-1:-1:-1::0;;;7897:10:48::1;;;;;;;;;;;7866:41;8039:11;:35:::0;;;::::1;-1:-1:-1::0;;;8039:35:48::1;::::0;::::1;;;::::0;;8142::::1;8160:17:::0;8142:15:::1;:35;:::i;:::-;8120:12;:58:::0;;-1:-1:-1;;8120:58:48::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8259:64:::1;:12;-1:-1:-1::0;;;;;8259:29:48::1;8289:10;8309:4;8316:6:::0;8259:29:::1;:64::i;:::-;8339:19;::::0;1318:25:60;;;8339:19:48::1;::::0;1306:2:60;1291:18;8339:19:48::1;;;;;;;6807:1559;;6741:1625:::0;;:::o;10737:155:47:-;613:13:51;:11;:13::i;:::-;10815:69:47::1;10822:6;10830:10;10842:6;10850:17;10869:14;;;;;;;;10878:1;10869:14;;;;10881:1;10869:14;;::::0;10815:6:::1;:69::i;11386:126:48:-:0;11456:12;;11429:7;;11471:15;11456:12;;;;:30;:48;;11493:11;;-1:-1:-1;;;11493:11:48;;;;11456:48;;;11489:1;11456:48;11449:55;;;;11386:126;:::o;5139:584::-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;5287:12:48::1;::::0;5302:15:::1;5287:12;::::0;;::::1;:30;5283:53;;;5326:10;;;;;;;;;;;;;;5283:53;2553:9;5409:11;:33;5405:59;;;5451:13;;-1:-1:-1::0;;;5451:13:48::1;;;;;;;;;;;5405:59;2678:16;5479:33:::0;::::1;5475:59;;;5521:13;;-1:-1:-1::0;;;5521:13:48::1;;;;;;;;;;;5475:59;5637:14;:28:::0;;;5681:34:::1;::::0;1318:25:60;;;5681:34:48::1;::::0;1306:2:60;1291:18;5681:34:48::1;;;;;;;5139:584:::0;;:::o;13531:814:47:-;497:13:51;:11;:13::i;:::-;530:1;521:6;:10;14023:14:47::1;14040:51;14061:13:::0;14076:14;14040:20:::1;:51::i;:::-;14023:68:::0;-1:-1:-1;14262:75:47::1;14269:14:::0;14285:10:::1;14023:68:::0;14305:21:::1;14262:75;;::::0;;::::1;::::0;::::1;14328:8:::0;14262:75:::1;:::i;:::-;:6;:75::i;:::-;-1:-1:-1::0;;563:1:51;554:6;:10;-1:-1:-1;;13531:814:47:o;17983:494::-;18062:7;18148:13;;;:5;:13;;;;;18062:7;18192:30;18202:19;;;18192:9;:30::i;:::-;-1:-1:-1;;;;;18263:18:47;;18233:17;18263:18;;;:10;;;:18;;;;;18172:50;;-1:-1:-1;18233:17:47;18253:44;;:9;:44::i;:::-;18233:64;-1:-1:-1;18400:14:47;;:69;;18460:9;18447;18422:22;18437:6;18422:14;:22::i;:::-;:34;;;;:::i;:::-;18421:48;;;;:::i;:::-;18400:69;;;-1:-1:-1;18417:1:47;;17983:494;-1:-1:-1;;;;;17983:494:47:o;1431:151:1:-;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;1750:140::-;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;5228:147:0:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;10346:191:47:-:0;3547:30:48;2505:16:0;2516:4;2505:10;:16::i;:::-;10486:43:47::1;10502:16;10520:8;10486:15;:43::i;12124:170::-:0;497:13:51;:11;:13::i;:::-;530:1;521:6;:10;12227:59:47::1;12234:6:::0;12242:10:::1;12254:1;12257:18;12227:59;;::::0;;::::1;::::0;::::1;12277:8:::0;12227:59:::1;:::i;12803:92::-:0;613:13:51;:11;:13::i;:::-;12867:20:47::1;12877:6;12885:1;12867:9;:20::i;:::-;12803:92:::0;:::o;10950:268:48:-;11011:7;11099:23;;;:15;:23;;;;;:30;;;11147:15;;:63;;11199:11;;-1:-1:-1;;;11199:11:48;;;;11185:10;11170:12;:10;:12::i;:::-;:25;;;;:::i;:::-;11169:41;;;;:::i;:::-;11147:63;;;11165:1;11140:70;10950:268;-1:-1:-1;;;10950:268:48:o;14509:114:47:-;497:13:51;:11;:13::i;:::-;530:1;521:6;:10;14587:28:47::1;14602:6:::0;14610:4:::1;14587:14;:28::i;:::-;-1:-1:-1::0;563:1:51;554:6;:10;14509:114:47:o;7461:233:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;2606:202:0:-;2691:4;2714:47;;;2729:32;2714:47;;:87;;-1:-1:-1;952:25:30;937:40;;;;2765:36:0;829:155:30;3334:103:0;3400:30;3411:4;719:10:24;3400::0;:30::i;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;362:92:51:-;414:6;;424:1;414:11;410:36;;434:12;;;;;;;;;;;;;;410:36;362:92::o;40341:141:47:-;40431:21;40414:38;:13;;;;;;;:38;;;;;;;;:::i;:::-;;40410:64;;40461:13;;;;;;;;;;;;;;12206:265:48;12256:14;12283:30;:28;:30::i;:::-;12324:27;12354:23;;;:15;:23;;;;;12397:32;12354:23;12397:26;:32::i;:::-;12440:23;;;;;;;12388:41;12206:265;-1:-1:-1;;12206:265:48:o;2861:1456:36:-;2973:12;3100:4;3094:11;3242:66;3223:17;3216:93;3356:2;3352:1;3333:17;3329:25;3322:37;3436:6;3431:2;3412:17;3408:26;3401:42;4238:2;4235:1;4231:2;4212:17;4209:1;4202:5;4195;4190:51;3759:16;3752:24;3746:2;3728:16;3725:24;3721:1;3717;3711:8;3708:15;3704:46;3701:76;3501:754;3490:765;;;4283:7;4275:35;;;;-1:-1:-1;;;4275:35:36;;15228:2:60;4275:35:36;;;15210:21:60;15267:2;15247:18;;;15240:30;15306:17;15286:18;;;15279:45;15341:18;;4275:35:36;15026:339:60;4275:35:36;2963:1354;2861:1456;;;:::o;20435:4489:47:-;20682:17;20702:13;;;:5;:13;;;;;;;;-1:-1:-1;;;;;20746:18:47;;;;:10;;;:18;;;;;;20816:20;20702:13;20816:14;:20::i;:::-;20984:19;;;21036:26;;-1:-1:-1;;;;;21036:26:47;21077:16;;21073:59;;21095:37;21119:6;21127:4;21095:23;:37::i;:::-;;21073:59;21344:14;21361:39;21381:6;21389:4;21395;21361:19;:39::i;:::-;21344:56;-1:-1:-1;21413:22:47;;21483:9;:30;;;;;;;;:::i;:::-;;21479:1251;;-1:-1:-1;21731:19:47;;;:36;;-1:-1:-1;;21731:36:47;;;;;;;;;;;;-1:-1:-1;21636:6:47;21479:1251;;;21921:21;21908:9;:34;;;;;;;;:::i;:::-;;21904:826;;22033:37;22047:4;22053:6;22061:8;22033:13;:37::i;:::-;22265:19;;;:36;;-1:-1:-1;;22265:36:47;;;;;;;;;;;;;;;-1:-1:-1;;;21904:826:47;;;22408:18;22395:9;:31;;;;;;;;:::i;:::-;;22388:39;;;;:::i;:::-;22449:11;;22442:19;;;;:::i;:::-;22549:37;22563:4;22569:6;22577:8;22549:13;:37::i;:::-;22695:19;;;:23;;-1:-1:-1;;22695:23:47;;;22540:46;-1:-1:-1;21904:826:47;22815:6;22825:1;22815:11;22811:34;;22835:10;;-1:-1:-1;;;22835:10:47;;;;;;;;;;;22811:34;22909:18;;23072:20;23086:6;23072:11;:20;:::i;:::-;23047:45;-1:-1:-1;;;;;;23111:42:47;;23107:65;;;23162:10;;;;;;;;;;;;;;23107:65;23308:23;23360:6;23342:15;:24;23308:59;;23424:15;23386:18;:34;;;:53;;;;;;;;;;-1:-1:-1;;;;;23386:53:47;;;;;;;;;-1:-1:-1;;;;;23386:53:47;;;;;-1:-1:-1;;;;;23386:53:47;;;;;;23495:14;23458:18;:26;;;:52;;;;;-1:-1:-1;;;;;23458:52:47;;;;;-1:-1:-1;;;;;23458:52:47;;;;;;23613:41;23657:4;:19;;23613:63;;23695:18;23716;:26;;;;;;;;;;-1:-1:-1;;;;;23716:26:47;-1:-1:-1;;;;;23695:47:47;;;23787:6;23774:10;:19;23761:32;;23849:10;23812:18;:26;;;:48;;;;;-1:-1:-1;;;;;23812:48:47;;;;;-1:-1:-1;;;;;23812:48:47;;;;;;23917:15;23879:18;:34;;;:53;;;;;;;;;;-1:-1:-1;;;;;23879:53:47;;;;;;;;;-1:-1:-1;;;;;23879:53:47;;;;;-1:-1:-1;;;;;23879:53:47;;;;;;24168:4;:15;;;;;;;;;;;;24150:33;;:15;:33;24136:10;:48;24105:4;:19;;;:80;;;;;;;;;;-1:-1:-1;;;;;24105:80:47;;;;;;;;;-1:-1:-1;;;;;24105:80:47;;;;;-1:-1:-1;;;;;24105:80:47;;;;;;23187:1014;;;22938:1274;24276:37;24302:4;24308;42095:15;;;:41;;;42120:15;42095:41;-1:-1:-1;;;42095:41:47;;;;;;;;42175:27;;;42147:55;-1:-1:-1;42147:25:47;;:55;;;;;;-1:-1:-1;42147:55:47;;;;42003:207;24276:37;24422:19;;24418:206;;24464:21;;24458:154;;-1:-1:-1;;;;;24464:21:47;24522:10;24559:4;24583:14;24458:45;:154::i;:::-;24662:6;24654;-1:-1:-1;;;;;24639:38:47;24646:6;24639:38;24670:6;24639:38;;;;1318:25:60;;1306:2;1291:18;;1172:177;24639:38:47;;;;;;;;24769:13;;;;-1:-1:-1;;;;;24769:13:47;24797:31;;24793:124;;24845:60;;-1:-1:-1;;;24845:60:47;;;;;15812:25:60;;;-1:-1:-1;;;;;15873:55:60;;;15853:18;;;15846:83;24879:5:47;15945:18:60;;;15938:50;16004:18;;;15997:34;;;16047:19;;;16040:35;;;24845:17:47;;;;;15784:19:60;;24845:60:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24793:124;20606:4318;;;;;;;;20435:4489;;;;;:::o;40052:137::-;40140:19;40123:36;;25178:2910;25312:17;25332:13;;;:5;:13;;;;;;;;25387:10;25376:22;;:10;;;:22;;;;;;25450:20;25332:13;25450:14;:20::i;:::-;25574:37;25598:6;25606:4;25574:23;:37::i;:::-;;25759:28;25774:4;25780:6;25759:14;:28::i;:::-;25966:26;;25915:4;;-1:-1:-1;;;;;25966:26:47;26007:19;;;26003:53;;;26035:21;;;;;;;;;;;;;;26003:53;26170:14;26187:39;26207:6;26215:4;26221;26187:19;:39::i;:::-;26237:19;;;:23;;-1:-1:-1;;26237:23:47;;;26170:56;-1:-1:-1;26353:11:47;;:26;;;;-1:-1:-1;26368:11:47;;26353:26;26349:49;;;26388:10;;-1:-1:-1;;;26388:10:47;;;;;;;;;;;26349:49;26680:19;;;;26714:45;;-1:-1:-1;;;;;26714:45:47;;;;;;;;-1:-1:-1;;26714:45:47;;;;;;;;27040:34;;-1:-1:-1;;;;;27040:34:47;;;;;;;26945;;;;;;26840:15;26535:19;;;26840:27;;;26945:71;;;:129;;;;26882:207;;;;;;;;;;27267:59;;;;;;;27205:47;;;27267:59;;;27432:19;;;:23;;42095:41;;;;-1:-1:-1;;;42095:41:47;;;;;;;;;;;;42175:27;;;42147:55;-1:-1:-1;42147:25:47;;:55;;;;;-1:-1:-1;42147:55:47;;;27613:11;;27609:62;;27626:45;-1:-1:-1;;;;;27626:12:47;:25;27652:10;27664:6;27626:25;:45::i;:::-;27686:11;;27682:78;;27705:21;;27699:61;;-1:-1:-1;;;;;27705:21:47;27741:10;27753:6;27699:41;:61::i;:::-;27806:6;27794:10;-1:-1:-1;;;;;27776:45:47;27786:6;27776:45;27814:6;27776:45;;;;1318:25:60;;1306:2;1291:18;;1172:177;27776:45:47;;;;;;;;27931:13;;;;-1:-1:-1;;;;;27931:13:47;27959:31;;27955:126;;28007:62;;-1:-1:-1;;;28007:62:47;;;;;15812:25:60;;;28033:10:47;15853:18:60;;;15846:83;28045:4:47;15945:18:60;;;15938:50;16004:18;;;15997:34;;;16047:19;;;16040:35;;;-1:-1:-1;;;;;28007:17:47;;;;;15784:19:60;;28007:62:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27955:126;25237:2851;;;;;;;25178:2910;;:::o;12652:297:34:-;12712:16;12740:22;12765:19;12773:3;12765:7;:19::i;14047:174:48:-;14131:35;:33;:35::i;:::-;14106:21;:60;;:21;;:60;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14197:15;14177:10;;:36;;;;;;;;;;;;;;;;;;14047:174::o;13716:244::-;13798:7;13818:15;13836:32;13856:4;13862:5;13836:19;:32::i;:::-;13906:21;;13879:48;;-1:-1:-1;;;13906:21:48;;;;13879:48;;;;;;;-1:-1:-1;13818:50:48;;13716:244;-1:-1:-1;13716:244:48:o;34212:2123:47:-;34354:17;34374:13;;;:5;:13;;;;;;;;34429:10;34418:22;;:10;;;:22;;;;;;34492:20;34374:13;34492:14;:20::i;:::-;34608:28;34623:4;34629:6;34608:14;:28::i;:::-;34959:26;;34754:19;;;;34828:4;;-1:-1:-1;;;;;34959:26:47;34710:41;35000:12;;;34996:35;;35021:10;;-1:-1:-1;;;35021:10:47;;;;;;;;;;;34996:35;35067:37;;-1:-1:-1;;;;;35067:37:47;;;;;;;-1:-1:-1;;35067:37:47;;;;;;;;35157:34;;-1:-1:-1;;;;;35157:34:47;;;;;;;35119:72;;;;;;;;;;;;;;;;;35067:26;35270:13;;;:5;:13;;;;;;;;35290:10;35270:31;;:19;;:31;;;;;35263:38;;;35067:37;35263:38;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;35263:38:47;;;35394:169;;;;35434:21;;35428:62;;-1:-1:-1;;;;;35434:21:47;35470:10;-1:-1:-1;;;;;35428:62:47;;:41;:62::i;:::-;35540:7;-1:-1:-1;;;;;35510:41:47;35528:10;-1:-1:-1;;;;;35510:41:47;35520:6;35510:41;35549:1;35510:41;;;;1318:25:60;;1306:2;1291:18;;1172:177;35510:41:47;;;;;;;;35394:169;35884:13;;;;;35937:172;;;;;;16799:25:60;;;36037:10:47;16840:18:60;;;16833:83;16932:18;;;16925:50;;;;-1:-1:-1;16991:18:60;;;16984:45;;;17045:19;;;;17038:46;;;35937:172:47;;;;;;;;;;16771:19:60;;;;35937:172:47;;;;;;;;;;-1:-1:-1;;;35937:172:47;;;36290:19;;-1:-1:-1;;;;;35884:13:47;;;;35937:172;-1:-1:-1;;;35884:13:47;36245:5;36240:76;36236:81;36221:107;;;;;;;34212:2123;;:::o;43967:1986::-;-1:-1:-1;;;;;;;;;;;;;;;;;44247:15:47;;;;-1:-1:-1;;;44247:15:47;;;;44266:1;44247:20;44243:55;;-1:-1:-1;44276:22:47;;;;;;;;;-1:-1:-1;44276:22:47;;;;;;;44269:29;;44243:55;44436:25;;;44522:27;;;44637:960;;;;44754:15;44792:23;;;:15;:23;;;;;44772:55;;44817:9;44772:19;:55::i;:::-;44754:73;;44927:35;44981:36;45035:50;45071:4;45077:7;45035:35;:50::i;:::-;44908:177;;;;45195:390;;;;;;;;45353:20;:34;;;45298:27;45234:22;:36;;;:91;;;;:::i;:::-;:153;;;;:::i;:::-;45195:390;;;;45531:20;:35;;;45475:28;45410:22;:37;;;:93;;;;:::i;:::-;:156;;;;:::i;:::-;45195:390;;;45171:414;;;;;;;;;44637:960;45728:217;;;;;;;;;45802:34;;45763:36;;45728:217;;45763:73;;;:::i;:::-;45728:217;;;;45895:20;:35;;;45855:22;:37;;;:75;;;;:::i;:::-;45728:217;;45708:237;-1:-1:-1;;;43967:1986:47;;;;;;;:::o;48223:720::-;48505:15;;;;48355:7;;-1:-1:-1;;;48505:15:47;;;;48551:19;;:384;;48901:19;;;;48862:36;;;;-1:-1:-1;;;6982:6:47;48862:58;;-1:-1:-1;;;;;48901:19:47;;;;48862:58;:::i;:::-;48805:27;;48722:36;;;;-1:-1:-1;;;;;48805:27:47;;;;48722:53;;48761:14;;48722:53;:::i;:::-;48658:35;;:118;;;;:::i;:::-;48657:175;;;;:::i;:::-;48656:265;;;;:::i;:::-;48655:279;;;;:::i;:::-;48611:19;;;;:324;;;:19;;:324;:::i;:::-;48551:384;;;48590:1;48531:404;48223:720;-1:-1:-1;;;;48223:720:47:o;1282:1573:36:-;1420:12;1547:4;1541:11;1689:66;1670:17;1663:93;1803:4;1799:1;1780:17;1776:25;1769:39;1887:2;1882;1863:17;1859:26;1852:38;1967:6;1962:2;1943:17;1939:26;1932:42;2771:2;2768:1;2763:3;2744:17;2741:1;2734:5;2727;2722:52;2290:16;2283:24;2277:2;2259:16;2256:24;2252:1;2248;2242:8;2239:15;2235:46;2232:76;2032:756;2021:767;;;2816:7;2808:40;;;;-1:-1:-1;;;2808:40:36;;17427:2:60;2808:40:36;;;17409:21:60;17466:2;17446:18;;;17439:30;17505:22;17485:18;;;17478:50;17545:18;;2808:40:36;17225:344:60;2808:40:36;1410:1445;1282:1573;;;;:::o;28532:2307:47:-;28651:14;28762:20;;;:5;:20;;;;;;;;28824:10;28813:22;;:10;;;:22;;;;;28887:20;28762;28887:14;:20::i;:::-;29165:15;;;;-1:-1:-1;;;;;29165:15:47;:29;29161:56;;29203:14;;-1:-1:-1;;;29203:14:47;;;;;;;;;;;29161:56;29321:44;29345:13;29360:4;29321:23;:44::i;:::-;;29473:45;29488:13;29503:14;29473;:45::i;:::-;29617:46;29637:13;29652:4;29658;29617:19;:46::i;:::-;29674:19;;;:23;;-1:-1:-1;;29674:23:47;;;29608:55;-1:-1:-1;29696:1:47;29785:11;;;29781:34;;29805:10;;-1:-1:-1;;;29805:10:47;;;;;;;;;;;29781:34;30219:27;;30321:15;;;;-1:-1:-1;;;;;30219:27:47;;;;30303:33;;-1:-1:-1;;;30321:15:47;;;;30303;:33;:::i;:::-;30288:49;;:11;:49;:::i;:::-;30257:19;;;:81;;:19;;:81;;;;-1:-1:-1;;;;;30257:81:47;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;30257:81:47;;;;;-1:-1:-1;;;;;30257:81:47;;;;;;30403:37;30429:4;30435;42095:15;;;:41;;;42120:15;42095:41;-1:-1:-1;;;42095:41:47;;;;;;;;42175:27;;;42147:55;-1:-1:-1;42147:25:47;;:55;;;;;;-1:-1:-1;42147:55:47;;;;42003:207;30403:37;30583:1;30571:10;-1:-1:-1;;;;;30546:47:47;30556:13;30546:47;30586:6;30546:47;;;;1318:25:60;;1306:2;1291:18;;1172:177;30546:47:47;;;;;;;;30672:13;;;;-1:-1:-1;;;;;30672:13:47;30700:31;;30696:136;;30748:72;;-1:-1:-1;;;30748:72:47;;;;;15812:25:60;;;30781:10:47;15853:18:60;;;15846:83;30793:5:47;15945:18:60;;;15938:50;16004:18;;;15997:34;;;16047:19;;;16040:35;;;-1:-1:-1;;;;;30748:17:47;;;;;15784:19:60;;30748:72:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30696:136;28667:2172;;;;28532:2307;;;;:::o;47694:188::-;47844:30;;47774:7;;-1:-1:-1;;;;;47844:30:47;;;;;47801:40;;-1:-1:-1;;;;;47819:22:47;47801:15;:40;:::i;:::-;:73;;;;:::i;9555:156:34:-;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;9098:115::-;9161:7;9187:19;9195:3;4537:18;;4455:107;38385:1517:47;38577:12;:14;;38560;;;38577;;;:::i;:::-;;;;-1:-1:-1;38602:17:47;38622:13;;;:5;:13;;;;;38560:31;;-1:-1:-1;;;;;;38708:30:47;;;;:65;;-1:-1:-1;38754:19:47;38742:8;:31;;;;;;;;:::i;:::-;;38708:65;38704:89;;;38782:11;;;;;;;;;;;;;;38704:89;38900:40;;-1:-1:-1;;;;;38900:40:47;;-1:-1:-1;;38900:40:47;;;;;;38967:8;;38900:4;;38951:24;;;;;;38967:8;38951:24;;;;;;;;:::i;:::-;;;;;-1:-1:-1;39106:19:47;39094:8;:31;;;;;;;;:::i;:::-;;39090:746;;39146:16;-1:-1:-1;;;;;39146:28:47;;39178:1;39146:33;39142:60;;39188:14;;-1:-1:-1;;;39188:14:47;;;;;;;;;;;39142:60;39319:17;;:92;;;;;-1:-1:-1;;;;;920:55:60;;;39319:92:47;;;902:74:60;39319:17:47;;;;:42;;875:18:60;;39319:92:47;;;;;;;;;;;;;;;;;;-1:-1:-1;39319:92:47;;;;;;;;-1:-1:-1;;39319:92:47;;;;;;;;;;;;:::i;:::-;;;39315:510;;;39476:31;;;;;-1:-1:-1;;;;;18681:15:60;;;39476:31:47;;;18663:34:60;18733:15;;;18713:18;;;18706:43;39476:51:47;;;;:7;:15;;;;;;18575:18:60;;39476:31:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;39476:51:47;;39472:329;;39574:12;-1:-1:-1;;;;;39556:31:47;:6;-1:-1:-1;;;;;39556:31:47;;39552:230;;39616:15;;;:24;;-1:-1:-1;;39616:24:47;-1:-1:-1;;;;;39616:24:47;;;;;39552:230;;;39692:12;-1:-1:-1;;;;;39674:31:47;:6;-1:-1:-1;;;;;39674:31:47;;39670:112;;39734:15;;;:24;;-1:-1:-1;;39734:24:47;-1:-1:-1;;;;;39734:24:47;;;;;39670:112;39412:404;;39315:510;39853:41;;-1:-1:-1;;;;;39853:41:47;;;39869:6;;39853:41;;;;;38463:1439;;38385:1517;;:::o;2206:404:34:-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;3718:479:0;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:0;;;;;;;;;;-1:-1:-1;;;3844:336:0;;;;;;;:::i;7865:234::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7944:149;;;8018:5;7986:12;;;;;;;;;;;-1:-1:-1;;;;;7986:29:0;;;;;;;;;;:37;;-1:-1:-1;;7986:37:0;;;8042:40;719:10:24;;7986:12:0;;8042:40;;8018:5;8042:40;7865:234;;:::o;8615:156:34:-;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:34;;8711:7;:53::i;40897:827:47:-;40982:7;41073:15;41091:14;41098:6;41091;:14::i;:::-;41073:32;;41193:35;41243:36;41293:50;41329:4;41335:7;41293:35;:50::i;:::-;41178:165;;;;41394:47;41444:4;:27;;41394:77;;41522:27;41482:22;:36;;;:67;;;;;;;:::i;:::-;;;;;;;;41601:28;41560:22;:37;;;:69;;;;;;;:::i;:::-;;;;-1:-1:-1;41709:7:47;;40897:827;-1:-1:-1;;;;;;;40897:827:47:o;42661:682::-;42800:7;43064:45;43112:115;43152:6;43173:4;43192;43211:5;43112:25;:115::i;:::-;43064:163;;43299:36;43307:21;43330:4;43299:7;:36::i;:::-;43292:43;42661:682;-1:-1:-1;;;;;42661:682:47:o;31608:2359::-;31805:21;;31858:15;;;;31749:23;;-1:-1:-1;;;;;31805:21:47;;;;31858:15;;31981:50;;32018:13;;;;;;;;;;;;;;31981:50;32090:16;32108;32144:9;-1:-1:-1;;;;;32130:36:47;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32089:79;;;;;;;;;32253:18;32298:10;-1:-1:-1;;;;;32274:34:47;32282:12;-1:-1:-1;;;;;32274:34:47;;:138;;32404:8;32377:23;32388:12;32377:8;:23;:::i;:::-;32376:36;;;;:::i;:::-;32274:138;;;32352:8;32325:23;32336:12;32325:8;:23;:::i;:::-;32324:36;;;;:::i;:::-;32253:159;;32494:8;:22;;;32481:10;:35;32477:62;;;32525:14;;;;;;;;;;;;;;32477:62;32567:22;;32554:35;;32550:62;;;32598:14;;;;;;;;;;;;;;32550:62;32705:9;:13;32701:965;;32805:18;-1:-1:-1;;;;;32791:32:47;:10;-1:-1:-1;;;;;32791:32:47;;32787:59;;32832:14;;-1:-1:-1;;;32832:14:47;;;;;;;;;;;32787:59;32932:8;:22;;;32919:9;:35;32915:63;;32963:15;;;;;;;;;;;;;;32915:63;33041:10;-1:-1:-1;;;;;33034:26:47;;33069:10;33034:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33185:53:47;;-1:-1:-1;;;;;;;;33185:30:47;;;-1:-1:-1;33216:9:47;33227:10;33185:30;:53::i;:::-;33336:9;:22;;;;33381:17;;33377:80;;33400:57;33432:10;33444:12;33400:31;:57::i;:::-;33284:189;32701:965;;;33585:69;-1:-1:-1;;;;;33585:34:47;;33620:10;33632:9;33643:10;33585:34;:69::i;:::-;33753:50;-1:-1:-1;;;;;33753:12:47;:25;33779:9;33790:12;33753:25;:50::i;:::-;33915:44;;;;;33953:4;33915:44;;;902:74:60;-1:-1:-1;;;;;33915:29:47;;;;;875:18:60;;33915:44:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33897:62;31608:2359;-1:-1:-1;;;;;;;;;31608:2359:47:o;37400:633::-;37490:14;;;;-1:-1:-1;;;37490:14:47;;;;:19;37486:40;;37518:8;;;;;;;;;;;;;;37486:40;37556:17;37576:27;;;:11;:27;;;;;;;;37604:10;37576:39;;;;;;;:48;;:46;:48::i;:::-;37556:68;;37537:489;37639:14;;37537:489;;37751:20;37774:27;;;:11;:27;;;;;;;;37802:10;37774:39;;;;;;;-1:-1:-1;;37710:11:47;;;;37774:53;;37710:11;37774:42;:53::i;:::-;37846:27;;;;:11;:27;;;;;;;;37874:10;37846:39;;;;;;;37751:76;;-1:-1:-1;37846:60:47;;37751:76;37846:46;:60::i;:::-;37842:173;;;37929:19;;;;:5;:19;;;;;;;;37955:10;37929:37;;:25;;:37;;;;;:47;;37927:49;;37929:47;;37927:49;;-1:-1:-1;;;37927:49:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;37842:173;37666:360;37537:489;;5562:109:34;5618:16;5653:3;:11;;5646:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5562:109;;;:::o;14430:436:48:-;14497:22;14532:28;14563:23;:21;:23::i;:::-;14622:11;;;-1:-1:-1;;;14622:11:48;;;;14814:16;14788:43;;;14784:64;;14430:436;-1:-1:-1;;14430:436:48:o;12829:619::-;12953:15;13011:23;13037:9;:129;;13145:21;;;;13037:129;;;13090:35;:33;:35::i;:::-;13066:21;;;;:59;13037:129;13232:24;;13011:155;;;;;-1:-1:-1;;;;13232:24:48;;;;;13214:42;;;2836:5;;13322:11;;:36;;13298:19;;;;;;;;;13321:57;;;;13298:81;;;;;-1:-1:-1;13401:27:48;;;13394:35;;;;:::i;:::-;12986:455;;12829:619;;;;:::o;46462:594:47:-;46592:35;46629:36;46777:18;46798:30;46808:4;:19;;46798:9;:30::i;:::-;46777:51;-1:-1:-1;46843:15:47;;46839:210;;46947:10;-1:-1:-1;;;46906:25:47;46916:15;46906:7;:25;:::i;:::-;:37;;;;:::i;:::-;46905:52;;;;:::i;:::-;46875:82;-1:-1:-1;47027:10:47;47004:19;-1:-1:-1;;;47004:7:47;:19;:::i;:::-;47003:34;;;;:::i;:::-;46972:65;;46839:210;46672:384;46462:594;;;;;:::o;36635:406::-;36806:26;;;;:11;:26;;;;;;;;36833:10;36806:38;;;;;;;:58;;36849:14;36806:42;:58::i;:::-;36802:128;;;36881:21;;;;:5;:21;;;;;;;;36909:10;36881:39;;:27;;:39;;;;;:49;;36879:51;;36881:49;;36879:51;;-1:-1:-1;;;36879:51:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;36802:128;36947:26;;;;:11;:26;;;;;;;;36974:10;36947:38;;;;;;;7137:2;;36947:47;;:45;:47::i;:::-;:64;36943:90;;;37020:13;;-1:-1:-1;;;37020:13:47;;;;;;;;;;;4904:118:34;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;2102:149:26:-;2160:13;2192:52;-1:-1:-1;;;;;2204:22:26;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:26;;1613:47;;1670:15;:6;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1695;:6;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1725:9:26;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;1791:8;1800:5;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;;;;;;;;;;-1:-1:-1;1836:1:26;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:26;;1857:55;;;;-1:-1:-1;;;1857:55:26;;22194:2:60;1857:55:26;;;22176:21:60;;;22213:18;;;22206:30;22272:34;22252:18;;;22245:62;22324:18;;1857:55:26;21992:356:60;2778:1388:34;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:34;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;796:296:36;868:12;1024:1;1021;1018;1015;1007:6;1003:2;996:5;991:35;980:46;;1054:7;1046:39;;;;-1:-1:-1;;;1046:39:36;;22744:2:60;1046:39:36;;;22726:21:60;22783:2;22763:18;;;22756:30;22822:21;22802:18;;;22795:49;22861:18;;1046:39:36;22542:343:60;11082:135:34;11152:4;11175:35;11183:3;11203:5;11175:7;:35::i;15112:1195:48:-;15280:12;;15167:7;;15280:12;;15167:7;15582:15;15564:33;;:95;;15644:15;15564:95;;;15613:15;15564:95;15870:10;;15529:130;;-1:-1:-1;;;;15870:10:48;;;;16026:40;;;16022:180;;;16164:11;;-1:-1:-1;;;16164:11:48;;;;16120:40;;16119:56;;;-1:-1:-1;;15112:1195:48:o;16022:180::-;16298:1;16291:8;;;;;15112:1195;:::o;10785:129:34:-;10852:4;10875:32;10880:3;10900:5;10875:4;:32::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:332:60:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;987:180;1046:6;1099:2;1087:9;1078:7;1074:23;1070:32;1067:52;;;1115:1;1112;1105:12;1067:52;-1:-1:-1;1138:23:60;;987:180;-1:-1:-1;987:180:60:o;1354:154::-;-1:-1:-1;;;;;1433:5:60;1429:54;1422:5;1419:65;1409:93;;1498:1;1495;1488:12;1513:315;1581:6;1589;1642:2;1630:9;1621:7;1617:23;1613:32;1610:52;;;1658:1;1655;1648:12;1610:52;1694:9;1681:23;1671:33;;1754:2;1743:9;1739:18;1726:32;1767:31;1792:5;1767:31;:::i;:::-;1817:5;1807:15;;;1513:315;;;;;:::o;3917:383::-;3994:6;4002;4010;4063:2;4051:9;4042:7;4038:23;4034:32;4031:52;;;4079:1;4076;4069:12;4031:52;4115:9;4102:23;4092:33;;4175:2;4164:9;4160:18;4147:32;4188:31;4213:5;4188:31;:::i;:::-;3917:383;;4238:5;;-1:-1:-1;;;4290:2:60;4275:18;;;;4262:32;;3917:383::o;4305:248::-;4373:6;4381;4434:2;4422:9;4413:7;4409:23;4405:32;4402:52;;;4450:1;4447;4440:12;4402:52;-1:-1:-1;;4473:23:60;;;4543:2;4528:18;;;4515:32;;-1:-1:-1;4305:248:60:o;4558:632::-;4729:2;4781:21;;;4851:13;;4754:18;;;4873:22;;;4700:4;;4729:2;4952:15;;;;4926:2;4911:18;;;4700:4;4995:169;5009:6;5006:1;5003:13;4995:169;;;5070:13;;5058:26;;5139:15;;;;5104:12;;;;5031:1;5024:9;4995:169;;;-1:-1:-1;5181:3:60;;4558:632;-1:-1:-1;;;;;;4558:632:60:o;5195:367::-;5258:8;5268:6;5322:3;5315:4;5307:6;5303:17;5299:27;5289:55;;5340:1;5337;5330:12;5289:55;-1:-1:-1;5363:20:60;;5406:18;5395:30;;5392:50;;;5438:1;5435;5428:12;5392:50;5475:4;5467:6;5463:17;5451:29;;5535:3;5528:4;5518:6;5515:1;5511:14;5503:6;5499:27;5495:38;5492:47;5489:67;;;5552:1;5549;5542:12;5489:67;5195:367;;;;;:::o;5567:772::-;5688:6;5696;5704;5712;5765:2;5753:9;5744:7;5740:23;5736:32;5733:52;;;5781:1;5778;5771:12;5733:52;5821:9;5808:23;5850:18;5891:2;5883:6;5880:14;5877:34;;;5907:1;5904;5897:12;5877:34;5946:70;6008:7;5999:6;5988:9;5984:22;5946:70;:::i;:::-;6035:8;;-1:-1:-1;5920:96:60;-1:-1:-1;6123:2:60;6108:18;;6095:32;;-1:-1:-1;6139:16:60;;;6136:36;;;6168:1;6165;6158:12;6136:36;;6207:72;6271:7;6260:8;6249:9;6245:24;6207:72;:::i;:::-;5567:772;;;;-1:-1:-1;6298:8:60;-1:-1:-1;;;;5567:772:60:o;7008:156::-;7069:5;7114:2;7105:6;7100:3;7096:16;7092:25;7089:45;;;7130:1;7127;7120:12;7089:45;-1:-1:-1;7152:6:60;7008:156;-1:-1:-1;7008:156:60:o;7169:378::-;7275:6;7283;7291;7344:3;7332:9;7323:7;7319:23;7315:33;7312:53;;;7361:1;7358;7351:12;7312:53;7397:9;7384:23;7374:33;;7454:2;7443:9;7439:18;7426:32;7416:42;;7477:64;7533:7;7528:2;7517:9;7513:18;7477:64;:::i;:::-;7467:74;;7169:378;;;;;:::o;8002:184::-;-1:-1:-1;;;8051:1:60;8044:88;8151:4;8148:1;8141:15;8175:4;8172:1;8165:15;8191:1054;-1:-1:-1;;;;;8724:15:60;;;8706:34;;8632:3;8617:19;;;8770:1;8759:13;;8749:201;;-1:-1:-1;;;8803:1:60;8796:88;8907:4;8904:1;8897:15;8935:4;8932:1;8925:15;8749:201;8981:2;8966:18;;;8959:34;;;;9029:15;;;9024:2;9009:18;;9002:43;9081:15;;;;9076:2;9061:18;;9054:43;1917:12;;-1:-1:-1;;;;;1913:47:60;9162:3;9147:19;;1901:60;2003:16;;;1997:23;-1:-1:-1;;;;;1993:70:60;1977:14;;;1970:94;2157:12;;9234:3;9219:19;;2145:25;2208:16;;;2202:23;2186:14;;;;2179:47;8191:1054;;-1:-1:-1;8191:1054:60:o;9953:411::-;10035:6;10043;10096:2;10084:9;10075:7;10071:23;10067:32;10064:52;;;10112:1;10109;10102:12;10064:52;10151:9;10138:23;10170:31;10195:5;10170:31;:::i;:::-;10220:5;-1:-1:-1;10277:2:60;10262:18;;10249:32;10312:1;10300:14;;10290:42;;10328:1;10325;10318:12;10369:309;10466:6;10474;10527:2;10515:9;10506:7;10502:23;10498:32;10495:52;;;10543:1;10540;10533:12;10495:52;10579:9;10566:23;10556:33;;10608:64;10664:7;10659:2;10648:9;10644:18;10608:64;:::i;:::-;10598:74;;10369:309;;;;;:::o;11099:184::-;-1:-1:-1;;;11148:1:60;11141:88;11248:4;11245:1;11238:15;11272:4;11269:1;11262:15;11288:121;11373:10;11366:5;11362:22;11355:5;11352:33;11342:61;;11399:1;11396;11389:12;11414:245;11472:6;11525:2;11513:9;11504:7;11500:23;11496:32;11493:52;;;11541:1;11538;11531:12;11493:52;11580:9;11567:23;11599:30;11623:5;11599:30;:::i;11664:184::-;-1:-1:-1;;;11713:1:60;11706:88;11813:4;11810:1;11803:15;11837:4;11834:1;11827:15;11853:369;11892:4;11928:1;11925;11921:9;12037:1;11969:66;11965:74;11962:1;11958:82;11953:2;11946:10;11942:99;11939:125;;;12044:18;;:::i;:::-;12163:1;12095:66;12091:74;12088:1;12084:82;12080:2;12076:91;12073:117;;;12170:18;;:::i;:::-;-1:-1:-1;;12207:9:60;;11853:369::o;12227:367::-;12266:3;12301:1;12298;12294:9;12410:1;12342:66;12338:74;12335:1;12331:82;12326:2;12319:10;12315:99;12312:125;;;12417:18;;:::i;:::-;12536:1;12468:66;12464:74;12461:1;12457:82;12453:2;12449:91;12446:117;;;12543:18;;:::i;:::-;-1:-1:-1;;12579:9:60;;12227:367::o;13089:244::-;13128:3;13156:26;13209:2;13206:1;13202:10;13239:2;13236:1;13232:10;13270:3;13266:2;13262:12;13257:3;13254:21;13251:47;;;13278:18;;:::i;:::-;13314:13;;13089:244;-1:-1:-1;;;;13089:244:60:o;13338:128::-;13378:3;13409:1;13405:6;13402:1;13399:13;13396:39;;;13415:18;;:::i;:::-;-1:-1:-1;13451:9:60;;13338:128::o;13471:184::-;-1:-1:-1;;;13520:1:60;13513:88;13620:4;13617:1;13610:15;13644:4;13641:1;13634:15;13660:660;13746:6;13799:2;13787:9;13778:7;13774:23;13770:32;13767:52;;;13815:1;13812;13805:12;13767:52;13848:2;13842:9;13890:2;13882:6;13878:15;13959:6;13947:10;13944:22;13923:18;13911:10;13908:34;13905:62;13902:242;;;-1:-1:-1;;;13997:1:60;13990:88;14101:4;14098:1;14091:15;14129:4;14126:1;14119:15;13902:242;14160:2;14153:22;14199:23;;14184:39;;14284:2;14269:18;;;14256:32;14239:15;;;14232:57;;;;-1:-1:-1;14191:6:60;13660:660;-1:-1:-1;13660:660:60:o;14325:228::-;14365:7;14491:1;-1:-1:-1;;14419:74:60;14416:1;14413:81;14408:1;14401:9;14394:17;14390:105;14387:131;;;14498:18;;:::i;:::-;-1:-1:-1;14538:9:60;;14325:228::o;14747:274::-;14787:1;14813;14803:189;;-1:-1:-1;;;14845:1:60;14838:88;14949:4;14946:1;14939:15;14977:4;14974:1;14967:15;14803:189;-1:-1:-1;15006:9:60;;14747:274::o;15370:184::-;-1:-1:-1;;;15419:1:60;15412:88;15519:4;15516:1;15509:15;15543:4;15540:1;15533:15;16086:253;16126:3;16154:34;16215:2;16212:1;16208:10;16245:2;16242:1;16238:10;16276:3;16272:2;16268:12;16263:3;16260:21;16257:47;;;16284:18;;:::i;17095:125::-;17135:4;17163:1;17160;17157:8;17154:34;;;17168:18;;:::i;:::-;-1:-1:-1;17205:9:60;;17095:125::o;17574:259::-;17614:3;-1:-1:-1;;;;;17709:2:60;17706:1;17702:10;17739:2;17736:1;17732:10;17770:3;17766:2;17762:12;17757:3;17754:21;17751:47;;;17778:18;;:::i;17838:195::-;17877:3;-1:-1:-1;;17901:5:60;17898:77;17895:103;;17978:18;;:::i;:::-;-1:-1:-1;18025:1:60;18014:13;;17838:195::o;18038:385::-;18117:6;18125;18178:2;18166:9;18157:7;18153:23;18149:32;18146:52;;;18194:1;18191;18184:12;18146:52;18226:9;18220:16;18245:31;18270:5;18245:31;:::i;:::-;18345:2;18330:18;;18324:25;18295:5;;-1:-1:-1;18358:33:60;18324:25;18358:33;:::i;18760:251::-;18830:6;18883:2;18871:9;18862:7;18858:23;18854:32;18851:52;;;18899:1;18896;18889:12;18851:52;18931:9;18925:16;18950:31;18975:5;18950:31;:::i;19016:258::-;19088:1;19098:113;19112:6;19109:1;19106:13;19098:113;;;19188:11;;;19182:18;19169:11;;;19162:39;19134:2;19127:10;19098:113;;;19229:6;19226:1;19223:13;19220:48;;;-1:-1:-1;;19264:1:60;19246:16;;19239:27;19016:258::o;19279:786::-;19690:25;19685:3;19678:38;19660:3;19745:6;19739:13;19761:62;19816:6;19811:2;19806:3;19802:12;19795:4;19787:6;19783:17;19761:62;:::i;:::-;19887:19;19882:2;19842:16;;;19874:11;;;19867:40;19932:13;;19954:63;19932:13;20003:2;19995:11;;19988:4;19976:17;;19954:63;:::i;:::-;20037:17;20056:2;20033:26;;19279:786;-1:-1:-1;;;;19279:786:60:o;20070:442::-;20219:2;20208:9;20201:21;20182:4;20251:6;20245:13;20294:6;20289:2;20278:9;20274:18;20267:34;20310:66;20369:6;20364:2;20353:9;20349:18;20344:2;20336:6;20332:15;20310:66;:::i;:::-;20428:2;20416:15;-1:-1:-1;;20412:88:60;20397:104;;;;20503:2;20393:113;;20070:442;-1:-1:-1;;20070:442:60:o;20517:188::-;20596:13;;20649:30;20638:42;;20628:53;;20618:81;;20695:1;20692;20685:12;20618:81;20517:188;;;:::o;20710:419::-;20797:6;20805;20813;20866:2;20854:9;20845:7;20841:23;20837:32;20834:52;;;20882:1;20879;20872:12;20834:52;20905:40;20935:9;20905:40;:::i;:::-;20895:50;;20964:49;21009:2;20998:9;20994:18;20964:49;:::i;:::-;20954:59;;21056:2;21045:9;21041:18;21035:25;21069:30;21093:5;21069:30;:::i;:::-;21118:5;21108:15;;;20710:419;;;;;:::o;21134:184::-;21204:6;21257:2;21245:9;21236:7;21232:23;21228:32;21225:52;;;21273:1;21270;21263:12;21225:52;-1:-1:-1;21296:16:60;;21134:184;-1:-1:-1;21134:184:60:o;21323:251::-;21361:3;21405:16;21398:5;21394:28;21441:7;21431:41;;21452:18;;:::i;:::-;-1:-1:-1;;21488:80:60;;21323:251;-1:-1:-1;;21323:251:60:o;21579:207::-;21617:3;21645:16;21696:2;21689:5;21685:14;21723:2;21714:7;21711:15;21708:41;;21729:18;;:::i;:::-;21778:1;21765:15;;21579:207;-1:-1:-1;;;21579:207:60:o;21791:196::-;21830:3;21858:5;21848:39;;21867:18;;:::i;:::-;-1:-1:-1;;;21903:78:60;;21791:196::o;22353:184::-;-1:-1:-1;;;22402:1:60;22395:88;22502:4;22499:1;22492:15;22526:4;22523:1;22516:15"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","addReward(uint256)":"74de4ec4","claim(uint256)":"379607f5","compound(uint256,(uint256,uint256))":"d97f8ed6","compoundTo(uint256,uint256,(uint256,uint256))":"80754b28","emergencyExitLevel1(uint256)":"f851844b","emergencyExitLevel2(uint256,bytes32)":"562d12d7","endPeriod()":"5faa65ff","factory()":"c45a0155","getLockedPools(uint256,address)":"47df36c0","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getUser(uint256,address)":"257664a4","grantRole(bytes32,address)":"2f2ff15d","harvest(uint256)":"ddc63262","hasRole(bytes32,address)":"91d14854","initializePool(address,uint8)":"d61f0680","lastUpdate()":"c0463711","periodDuration()":"b470aade","periodFinish()":"ebe2b12b","poolRewardInfos(uint256)":"6bc9f703","poolRewardRate(uint256)":"f2d1e1cd","pools(uint256)":"ac4afa38","poolsLength()":"2716ae66","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rewardPerWeightStored()":"3228dd59","rewardRate()":"7b0a47ee","rewardsToken()":"d1af0c7d","setPeriodDuration(uint256)":"7c2d6e01","setRewarder(uint256,address)":"43de3207","setWeights(uint256[],uint32[])":"54f8c475","stake(uint256,uint256)":"7b0472f0","stakeTo(uint256,address,uint256)":"43d5599e","supportsInterface(bytes4)":"01ffc9a7","totalRewardAdded()":"098b8858","totalWeight()":"96c82e57","userPendingRewards(uint256,address)":"59b02eb3","userRewardRate(uint256,address)":"82f084d3","withdraw(uint256,uint256)":"441a3e70","wrappedNativeToken()":"17fcb39b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRewardsToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"contract IPangolinFactory\",\"name\":\"newFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newWrappedNativeToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"FailedTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HighSlippage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Locked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedArrayLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEffect\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooLate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Underflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnprivilegedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"PeriodDurationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenOrRecipient\",\"type\":\"address\"}],\"name\":\"PoolInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewarder\",\"type\":\"address\"}],\"name\":\"RewarderSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"WeightSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minPairAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPairAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct PangoChef.Slippage\",\"name\":\"slippage\",\"type\":\"tuple\"}],\"name\":\"compound\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"harvestPoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"compoundPoolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minPairAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPairAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct PangoChef.Slippage\",\"name\":\"slippage\",\"type\":\"tuple\"}],\"name\":\"compoundTo\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"emergencyExitLevel1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"confirmation\",\"type\":\"bytes32\"}],\"name\":\"emergencyExitLevel2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IPangolinFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userId\",\"type\":\"address\"}],\"name\":\"getLockedPools\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userId\",\"type\":\"address\"}],\"name\":\"getUser\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint104\",\"name\":\"balance\",\"type\":\"uint104\"},{\"internalType\":\"uint152\",\"name\":\"sumOfEntryTimes\",\"type\":\"uint152\"}],\"internalType\":\"struct PangoChef.ValueVariables\",\"name\":\"valueVariables\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"idealPosition\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerValue\",\"type\":\"uint256\"}],\"internalType\":\"struct PangoChef.RewardSummations\",\"name\":\"rewardSummationsPaid\",\"type\":\"tuple\"},{\"internalType\":\"uint152\",\"name\":\"previousValues\",\"type\":\"uint152\"},{\"internalType\":\"uint48\",\"name\":\"lastUpdate\",\"type\":\"uint48\"},{\"internalType\":\"uint56\",\"name\":\"lockCount\",\"type\":\"uint56\"},{\"internalType\":\"uint96\",\"name\":\"stashedRewards\",\"type\":\"uint96\"}],\"internalType\":\"struct PangoChef.User\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"harvest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenOrRecipient\",\"type\":\"address\"},{\"internalType\":\"enum PangoChef.PoolType\",\"name\":\"poolType\",\"type\":\"uint8\"}],\"name\":\"initializePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdate\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"poolRewardInfos\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"weight\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stashedRewards\",\"type\":\"uint96\"},{\"internalType\":\"uint128\",\"name\":\"rewardPerWeightPaid\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"poolRewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pools\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"tokenOrRecipient\",\"type\":\"address\"},{\"internalType\":\"enum PangoChef.PoolType\",\"name\":\"poolType\",\"type\":\"uint8\"},{\"internalType\":\"contract IRewarder\",\"name\":\"rewarder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rewardPair\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint104\",\"name\":\"balance\",\"type\":\"uint104\"},{\"internalType\":\"uint152\",\"name\":\"sumOfEntryTimes\",\"type\":\"uint152\"}],\"internalType\":\"struct PangoChef.ValueVariables\",\"name\":\"valueVariables\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"idealPosition\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerValue\",\"type\":\"uint256\"}],\"internalType\":\"struct PangoChef.RewardSummations\",\"name\":\"rewardSummationsStored\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerWeightStored\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"setPeriodDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rewarder\",\"type\":\"address\"}],\"name\":\"setRewarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint32[]\",\"name\":\"weights\",\"type\":\"uint32[]\"}],\"name\":\"setWeights\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stakeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRewardAdded\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userId\",\"type\":\"address\"}],\"name\":\"userPendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userId\",\"type\":\"address\"}],\"name\":\"userRewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedNativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Shung for Pangolin\",\"kind\":\"dev\",\"methods\":{\"addReward(uint256)\":{\"params\":{\"amount\":\"The amount of reward tokens to add to the contract.\"}},\"claim(uint256)\":{\"params\":{\"poolId\":\"The identifier of the pool to claim the rewards of.\"},\"returns\":{\"reward\":\"The amount of rewards that was harvested.\"}},\"compound(uint256,(uint256,uint256))\":{\"details\":\"This function only works if the staking token is a Pangolin liquidity token (PGL), and      one of its reserves is the rewardsToken (PNG). The user must supply sufficient amount      of the other reserve to be combined with PNG. The rewards and the user supplied pair      token is then used to mint a liquidity pool token, which must be the same token as the      staking token.\",\"params\":{\"poolId\":\"The identifier of the pool to compound.\",\"slippage\":\"A struct defining the minimum and maximum amounts of tokens that can be                 paired with reward token.\"}},\"compoundTo(uint256,uint256,(uint256,uint256))\":{\"details\":\"The user must supply sufficient amount of the gas token (e.g.: AVAX/WAVAX) to be      paired with the rewardsToken (e.g.:PNG).\",\"params\":{\"compoundPoolId\":\"The identifier of the pool to stake the rewards into.\",\"harvestPoolId\":\"The identifier of the pool to harvest the rewards from.\",\"slippage\":\"A struct defining the minimum and maximum amounts of tokens that can be                 paired with reward token.\"}},\"constructor\":{\"params\":{\"newAdmin\":\"The initial owner of the contract.\",\"newFactory\":\"The Pangolin factory that creates and records AMM pairs.\",\"newRewardsToken\":\"The token distributed as reward (i.e.: PNG).\",\"newWrappedNativeToken\":\"The contract for wrapping and unwrapping the native gas token.\"}},\"emergencyExitLevel1(uint256)\":{\"params\":{\"poolId\":\"The identifier of the pool to exit from.\"}},\"emergencyExitLevel2(uint256,bytes32)\":{\"details\":\"This is an extreme emergency function, used only to save compoundable pool from      perpetually remaining locked if there is a DOS on the staking token.\",\"params\":{\"confirmation\":\"Prevents naive users from calling this function by mistake.\",\"poolId\":\"The identifier of the pool to exit from.\"}},\"getLockedPools(uint256,address)\":{\"params\":{\"poolId\":\"The identifier of the pool the user is in.\",\"userId\":\"The address of the user in the pool.\"},\"returns\":{\"_0\":\"The pool identifier array of the pools locked by the user.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getUser(uint256,address)\":{\"params\":{\"poolId\":\"The identifier of the pool the user is in.\",\"userId\":\"The address of the user in the pool.\"},\"returns\":{\"_0\":\"The user struct that contains all the information of the user.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"harvest(uint256)\":{\"params\":{\"poolId\":\"The identifier of the pool to harvest from.\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initializePool(address,uint8)\":{\"params\":{\"poolType\":\"The pool type, which should either be ERC20_POOL, or RELAYER_POOL.                 ERC20_POOL is a regular staking pool, in which anyone can stake the token                 to receive rewards. In RELAYER_POOL, there is only one recipient of the                 rewards. RELAYER_POOL is used for diverting token emissions.\",\"tokenOrRecipient\":\"The token used in staking, or the sole recipient of the rewards.\"}},\"poolRewardRate(uint256)\":{\"params\":{\"poolId\":\"The identifier of the pool to check the reward rate of.\"},\"returns\":{\"_0\":\"The rewards per second of the pool.\"}},\"poolsLength()\":{\"details\":\"This function must be overridden by the parent contract.\",\"returns\":{\"_0\":\"The number of pools created.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"rewardRate()\":{\"returns\":{\"_0\":\"The rewards per second distributed to all pools combined.\"}},\"setPeriodDuration(uint256)\":{\"params\":{\"newDuration\":\"The duration the feature periods will last.\"}},\"setRewarder(uint256,address)\":{\"params\":{\"poolId\":\"The identifier of the pool to change the rewarder of.\",\"rewarder\":\"The address of the new rewarder.\"}},\"setWeights(uint256[],uint32[])\":{\"details\":\"It requires that pool is created by the parent contract.\",\"params\":{\"poolIds\":\"The identifiers of the pools to change the weights of.\",\"weights\":\"The new weights to set the respective pools to.\"}},\"stake(uint256,uint256)\":{\"params\":{\"amount\":\"The amount of pool tokens to stake.\",\"poolId\":\"The identifier of the pool to stake to.\"}},\"stakeTo(uint256,address,uint256)\":{\"params\":{\"amount\":\"The amount of pool tokens to stake.\",\"poolId\":\"The identifier of the pool to stake to.\",\"userId\":\"The address of the pool to stake for.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"userPendingRewards(uint256,address)\":{\"params\":{\"poolId\":\"The identifier of the pool the user is in.\",\"userId\":\"The address of the user in the pool.\"},\"returns\":{\"_0\":\"The amount of rewards that have been accrued in the position.\"}},\"userRewardRate(uint256,address)\":{\"details\":\"In SAR, users have different APRs, unlike other staking algorithms. This external      function clearly demonstrates how the SAR algorithm is supposed to distribute the      rewards based on \\u201cvalue\\u201d, which is balance times staking duration. This external      function can be considered as a specification.\",\"params\":{\"poolId\":\"The identifier of the pool the user is in.\",\"userId\":\"The address of the user in the pool.\"},\"returns\":{\"_0\":\"The rewards per second of the user.\"}},\"withdraw(uint256,uint256)\":{\"params\":{\"amount\":\"The amount of pool tokens to withdraw.\",\"poolId\":\"The identifier of the pool to withdraw and harvest from.\"}}},\"title\":\"PangoChef\",\"version\":1},\"userdoc\":{\"events\":{\"PeriodDurationUpdated(uint256)\":{\"notice\":\"The event emitted when the period duration is changed. \"},\"PeriodEnded()\":{\"notice\":\"The event emitted when a period is manually cut short. \"},\"PoolInitialized(uint256,address)\":{\"notice\":\"The event emitted when a pool is created. \"},\"RewardAdded(uint256)\":{\"notice\":\"The event emitted when a period is started or extended through funding. \"},\"RewarderSet(uint256,address)\":{\"notice\":\"The event emitted when the rewarder of a pool is changed. \"},\"Staked(uint256,address,uint256,uint256)\":{\"notice\":\"The event emitted when staking to, minting, or compounding a position. \"},\"WeightSet(uint256,uint256)\":{\"notice\":\"The event emitted when the weight of a pool changes. \"},\"Withdrawn(uint256,address,uint256,uint256)\":{\"notice\":\"The event emitted when withdrawing or harvesting from a position. \"}},\"kind\":\"user\",\"methods\":{\"addReward(uint256)\":{\"notice\":\"External restricted function to fund the contract.\"},\"claim(uint256)\":{\"notice\":\"External function to claim/harvest the rewards from a RELAYER_POOL.\"},\"compound(uint256,(uint256,uint256))\":{\"notice\":\"External function to stake to a pool using the rewards of the pool.\"},\"compoundTo(uint256,uint256,(uint256,uint256))\":{\"notice\":\"External function to stake to a compoundable pool (e.g.: PNG-WAVAX PGL) using the         rewards of any other ERC20_POOL.\"},\"constructor\":{\"notice\":\"Constructor to create and initialize PangoChef contract.\"},\"emergencyExitLevel1(uint256)\":{\"notice\":\"External function to exit from a pool by forgoing rewards.\"},\"emergencyExitLevel2(uint256,bytes32)\":{\"notice\":\"External function to exit from a pool by forgoing the stake and rewards.\"},\"endPeriod()\":{\"notice\":\"External restricted function to end the period and withdraw leftover rewards. \"},\"factory()\":{\"notice\":\"The UNI-V2 factory that creates pair tokens. \"},\"getLockedPools(uint256,address)\":{\"notice\":\"External view function to get the pools locked by user in a specific pool.\"},\"getUser(uint256,address)\":{\"notice\":\"External view function to get the info about a user of a pool.\"},\"harvest(uint256)\":{\"notice\":\"External function to harvest rewards from a pool.\"},\"initializePool(address,uint8)\":{\"notice\":\"External restricted function to initialize/create a pool.\"},\"lastUpdate()\":{\"notice\":\"The timestamp when the last time the rewards were claimed by a pool. \"},\"periodDuration()\":{\"notice\":\"The duration of how long the rewards will last after `addReward` is called. \"},\"periodFinish()\":{\"notice\":\"The timestamp when the current period will end or the latest period has ended. \"},\"poolRewardInfos(uint256)\":{\"notice\":\"The mapping from poolId to the struct that stores variables for determining pools\\u2019 shares of the global rewards.\"},\"poolRewardRate(uint256)\":{\"notice\":\"External view function to get the reward rate of a pool\"},\"pools(uint256)\":{\"notice\":\"The mapping from poolIds to the pool infos. \"},\"poolsLength()\":{\"notice\":\"Public view function to return the number of pools created by parent contract.\"},\"rewardPerWeightStored()\":{\"notice\":\"The variable representing how much rewards are distributed per weight. It stores in fixed denominator. \"},\"rewardRate()\":{\"notice\":\"Public view function to get the global reward rate.\"},\"rewardsToken()\":{\"notice\":\"The reward token that is distributed to stakers. \"},\"setPeriodDuration(uint256)\":{\"notice\":\"External restricted function to change the reward period duration.\"},\"setRewarder(uint256,address)\":{\"notice\":\"External restricted function to change the rewarder of a pool.\"},\"setWeights(uint256[],uint32[])\":{\"notice\":\"External restricted function to change the weights of pools.\"},\"stake(uint256,uint256)\":{\"notice\":\"External function to stake to a pool.\"},\"stakeTo(uint256,address,uint256)\":{\"notice\":\"External function to stake to a pool on behalf of another user.\"},\"totalRewardAdded()\":{\"notice\":\"The amount of total rewards added. \"},\"totalWeight()\":{\"notice\":\"The sum of all pools\\u2019 weights. \"},\"userPendingRewards(uint256,address)\":{\"notice\":\"External view function to get the accrued rewards of a user. It calculates all the         pending rewards from user\\u2019s last update until the block timestamp.\"},\"userRewardRate(uint256,address)\":{\"notice\":\"External view function to get the reward rate of a user of a pool.\"},\"withdraw(uint256,uint256)\":{\"notice\":\"External function to withdraw and harvest from a pool.\"},\"wrappedNativeToken()\":{\"notice\":\"The contract for wrapping and unwrapping the native gas token (e.g.: WETH). \"}},\"notice\":\"PangoChef is a MiniChef alternative that utilizes the Sunshine and Rainbows algorithm         for distributing rewards from pools to stakers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/PangoChef.sol\":\"PangoChef\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]},\"@rari-capital/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xa28a1515702793c6b56b97272f75e05890fd82aa2e7ec47b41d4d56a81023f69\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7bb0229ba04ab021f31ecb002c162fe1db2e2cf36c76c403801013dda8bd1124\",\"dweb:/ipfs/QmPRLj9LkGGxNuXf66srwNSrYpcbnzH1JtrpMFukTEnoEx\"]},\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]},\"contracts/staking-positions/PangoChef.sol\":{\"keccak256\":\"0x540b516cd86781e6a3d1272dea8113a68ac8d8127308a0eef50c0a39306617c2\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://7237e9c1892c6d8ada7bf2fedcf8b77ca3ac708ff638f06f79ada988edfbd36c\",\"dweb:/ipfs/QmUeVVUP9TKANA5GShKxMLYCy6JBKRcJAQfTmrZnqytuTu\"]},\"contracts/staking-positions/PangoChefFunding.sol\":{\"keccak256\":\"0x6c0928fa279c848e130381bb078c99f0277412c68cf54563d1bbba083b2fec54\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://7dca7be740c5df273b2708b85262acb807baf98cdfa0c51c813fc5b35ed679af\",\"dweb:/ipfs/QmYjYZ5Rsdh3FBT98GjaqX2wnxjQef6uXjKbyfdZgSSkW4\"]},\"contracts/staking-positions/ReentrancyGuard.sol\":{\"keccak256\":\"0x77a8bd6a27ca0173cf07e52ad5c905be1128bfdb9140b7552370698e023ed9f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://459d9e8fa4ec115394c008002310e98071346cee67eb4f1a550c2edf4006d47d\",\"dweb:/ipfs/QmRACbAwiucFy3QELqctZw4MqcUqCvoDMem5XVeo137zW3\"]},\"contracts/staking-positions/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb78e477d342058ea93a54118552a4a134474d8aaad49468864b087aebd592138\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://222678d46a13b6fbfb83f62842c1eabdc310af0e1ebd57a2ae98461cea2b5923\",\"dweb:/ipfs/QmcKQrjaBAZDyNaGg9LAax6S3Eb59fnCpPWtDvybSorouC\"]},\"contracts/staking-positions/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0xd25b4ab4887a1524128c210992825fa179b51febee83238e31da8cb9a18e53e1\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://c895bad22d84e202cf0a9e44f9f1afd44a046d1059e2a4b0f13fc37613a4aab1\",\"dweb:/ipfs/QmVaa8madApaVSPUnpCeNJUSv7z67GtnMXNPjGkYUJQ11v\"]},\"contracts/staking-positions/interfaces/IRewarder.sol\":{\"keccak256\":\"0x3ffb03c3b5a5be2552835f292ef747c27fbb347b7ffa932525ecc048b317e7ad\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://af2d0ee60041eacbd2b974ae91de21911f2f3f0f55f915d8bbbd8998e3fb2913\",\"dweb:/ipfs/QmXLB7YeYjdwqNqTHQXEYbfGjDwQC6PNw7Gdj5ztDC3jYi\"]},\"contracts/staking-positions/interfaces/IWAVAX.sol\":{\"keccak256\":\"0xb4c14b219795e5bd1145dd2d2f3e0ee8b41280afd24302d784063c427fdc2e33\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://5a8cf75bbdaa9a61f9dffc132d69d811d666eb188df39f575d608f5e01023543\",\"dweb:/ipfs/Qmb5sw9ZySsbdZYn2Jjih6iFHxx3PFeRBmvG1akRuifcPW\"]}},\"version\":1}"},"SafeExternalCalls":{"abi":[{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"getReserveTokenAddresses","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506101fa806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063edcc0f9014610030575b600080fd5b61004361003e366004610183565b610074565b6040805173ffffffffffffffffffffffffffffffffffffffff93841681529290911660208301520160405180910390f35b6000808273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e691906101a7565b8373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015591906101a7565b91509150915091565b73ffffffffffffffffffffffffffffffffffffffff8116811461018057600080fd5b50565b60006020828403121561019557600080fd5b81356101a08161015e565b9392505050565b6000602082840312156101b957600080fd5b81516101a08161015e56fea264697066735822122014fa7d9d3ee9fa5ab29bc69556bfcd9bededc44946d2ae245867adab447317f464736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FA DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xEDCC0F90 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP3 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x1A7 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x131 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x1A7 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A0 DUP2 PUSH2 0x15E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1A0 DUP2 PUSH2 0x15E JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ STATICCALL PUSH30 0x9D3EE9FA5AB29BC69556BFCD9BEDEDC44946D2AE245867ADAB447317F464 PUSH20 0x6F6C634300080F00330000000000000000000000 ","sourceMap":"384:212:47:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getReserveTokenAddresses_12065":{"entryPoint":116,"id":12065,"parameterSlots":1,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":423,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"validator_revert_address":{"entryPoint":350,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1010:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"146:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"155:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"158:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"148:6:60"},"nodeType":"YulFunctionCall","src":"148:12:60"},"nodeType":"YulExpressionStatement","src":"148:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"100:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:60"},"nodeType":"YulFunctionCall","src":"89:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:60"},"nodeType":"YulFunctionCall","src":"79:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:60"},"nodeType":"YulFunctionCall","src":"72:73:60"},"nodeType":"YulIf","src":"69:93:60"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:60","type":""}],"src":"14:154:60"},{"body":{"nodeType":"YulBlock","src":"243:177:60","statements":[{"body":{"nodeType":"YulBlock","src":"289:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"298:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"301:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"291:6:60"},"nodeType":"YulFunctionCall","src":"291:12:60"},"nodeType":"YulExpressionStatement","src":"291:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"264:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"273:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"260:3:60"},"nodeType":"YulFunctionCall","src":"260:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"285:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"256:3:60"},"nodeType":"YulFunctionCall","src":"256:32:60"},"nodeType":"YulIf","src":"253:52:60"},{"nodeType":"YulVariableDeclaration","src":"314:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"340:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"327:12:60"},"nodeType":"YulFunctionCall","src":"327:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"318:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"384:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"359:24:60"},"nodeType":"YulFunctionCall","src":"359:31:60"},"nodeType":"YulExpressionStatement","src":"359:31:60"},{"nodeType":"YulAssignment","src":"399:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"409:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"399:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"209:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"220:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"232:6:60","type":""}],"src":"173:247:60"},{"body":{"nodeType":"YulBlock","src":"554:198:60","statements":[{"nodeType":"YulAssignment","src":"564:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"576:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"587:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"572:3:60"},"nodeType":"YulFunctionCall","src":"572:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"564:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"599:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"609:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"603:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"667:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"682:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"690:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"678:3:60"},"nodeType":"YulFunctionCall","src":"678:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"660:6:60"},"nodeType":"YulFunctionCall","src":"660:34:60"},"nodeType":"YulExpressionStatement","src":"660:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"714:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"725:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"710:3:60"},"nodeType":"YulFunctionCall","src":"710:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"734:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"742:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"730:3:60"},"nodeType":"YulFunctionCall","src":"730:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"703:6:60"},"nodeType":"YulFunctionCall","src":"703:43:60"},"nodeType":"YulExpressionStatement","src":"703:43:60"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"515:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"526:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"534:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"545:4:60","type":""}],"src":"425:327:60"},{"body":{"nodeType":"YulBlock","src":"838:170:60","statements":[{"body":{"nodeType":"YulBlock","src":"884:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"893:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"896:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"886:6:60"},"nodeType":"YulFunctionCall","src":"886:12:60"},"nodeType":"YulExpressionStatement","src":"886:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"859:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"868:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"855:3:60"},"nodeType":"YulFunctionCall","src":"855:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"880:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"851:3:60"},"nodeType":"YulFunctionCall","src":"851:32:60"},"nodeType":"YulIf","src":"848:52:60"},{"nodeType":"YulVariableDeclaration","src":"909:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"928:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"922:5:60"},"nodeType":"YulFunctionCall","src":"922:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"913:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"972:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"947:24:60"},"nodeType":"YulFunctionCall","src":"947:31:60"},"nodeType":"YulExpressionStatement","src":"947:31:60"},{"nodeType":"YulAssignment","src":"987:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"997:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"987:6:60"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"804:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"815:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"827:6:60","type":""}],"src":"757:251:60"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063edcc0f9014610030575b600080fd5b61004361003e366004610183565b610074565b6040805173ffffffffffffffffffffffffffffffffffffffff93841681529290911660208301520160405180910390f35b6000808273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e691906101a7565b8373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015591906101a7565b91509150915091565b73ffffffffffffffffffffffffffffffffffffffff8116811461018057600080fd5b50565b60006020828403121561019557600080fd5b81356101a08161015e565b9392505050565b6000602082840312156101b957600080fd5b81516101a08161015e56fea264697066735822122014fa7d9d3ee9fa5ab29bc69556bfcd9bededc44946d2ae245867adab447317f464736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xEDCC0F90 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x74 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE SWAP3 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDFE1681 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x1A7 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD21220A7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x131 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x1A7 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A0 DUP2 PUSH2 0x15E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1A0 DUP2 PUSH2 0x15E JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ STATICCALL PUSH30 0x9D3EE9FA5AB29BC69556BFCD9BEDEDC44946D2AE245867ADAB447317F464 PUSH20 0x6F6C634300080F00330000000000000000000000 ","sourceMap":"384:212:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;418:175;;;;;;:::i;:::-;;:::i;:::-;;;;609:42:60;678:15;;;660:34;;730:15;;;;725:2;710:18;;703:43;572:18;418:175:47;;;;;;;;489:7;498;540:4;526:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;570:4;556:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;518:67;;;;418:175;;;:::o;14:154:60:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:247::-;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:60:o;757:251::-;827:6;880:2;868:9;859:7;855:23;851:32;848:52;;;896:1;893;886:12;848:52;928:9;922:16;947:31;972:5;947:31;:::i"},"methodIdentifiers":{"getReserveTokenAddresses(address)":"edcc0f90"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"name\":\"getReserveTokenAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"We call this contract with try/catch to figure out if pair is an actual pair. \",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/PangoChef.sol\":\"SafeExternalCalls\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]},\"@rari-capital/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xa28a1515702793c6b56b97272f75e05890fd82aa2e7ec47b41d4d56a81023f69\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7bb0229ba04ab021f31ecb002c162fe1db2e2cf36c76c403801013dda8bd1124\",\"dweb:/ipfs/QmPRLj9LkGGxNuXf66srwNSrYpcbnzH1JtrpMFukTEnoEx\"]},\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]},\"contracts/staking-positions/PangoChef.sol\":{\"keccak256\":\"0x540b516cd86781e6a3d1272dea8113a68ac8d8127308a0eef50c0a39306617c2\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://7237e9c1892c6d8ada7bf2fedcf8b77ca3ac708ff638f06f79ada988edfbd36c\",\"dweb:/ipfs/QmUeVVUP9TKANA5GShKxMLYCy6JBKRcJAQfTmrZnqytuTu\"]},\"contracts/staking-positions/PangoChefFunding.sol\":{\"keccak256\":\"0x6c0928fa279c848e130381bb078c99f0277412c68cf54563d1bbba083b2fec54\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://7dca7be740c5df273b2708b85262acb807baf98cdfa0c51c813fc5b35ed679af\",\"dweb:/ipfs/QmYjYZ5Rsdh3FBT98GjaqX2wnxjQef6uXjKbyfdZgSSkW4\"]},\"contracts/staking-positions/ReentrancyGuard.sol\":{\"keccak256\":\"0x77a8bd6a27ca0173cf07e52ad5c905be1128bfdb9140b7552370698e023ed9f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://459d9e8fa4ec115394c008002310e98071346cee67eb4f1a550c2edf4006d47d\",\"dweb:/ipfs/QmRACbAwiucFy3QELqctZw4MqcUqCvoDMem5XVeo137zW3\"]},\"contracts/staking-positions/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb78e477d342058ea93a54118552a4a134474d8aaad49468864b087aebd592138\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://222678d46a13b6fbfb83f62842c1eabdc310af0e1ebd57a2ae98461cea2b5923\",\"dweb:/ipfs/QmcKQrjaBAZDyNaGg9LAax6S3Eb59fnCpPWtDvybSorouC\"]},\"contracts/staking-positions/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0xd25b4ab4887a1524128c210992825fa179b51febee83238e31da8cb9a18e53e1\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://c895bad22d84e202cf0a9e44f9f1afd44a046d1059e2a4b0f13fc37613a4aab1\",\"dweb:/ipfs/QmVaa8madApaVSPUnpCeNJUSv7z67GtnMXNPjGkYUJQ11v\"]},\"contracts/staking-positions/interfaces/IRewarder.sol\":{\"keccak256\":\"0x3ffb03c3b5a5be2552835f292ef747c27fbb347b7ffa932525ecc048b317e7ad\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://af2d0ee60041eacbd2b974ae91de21911f2f3f0f55f915d8bbbd8998e3fb2913\",\"dweb:/ipfs/QmXLB7YeYjdwqNqTHQXEYbfGjDwQC6PNw7Gdj5ztDC3jYi\"]},\"contracts/staking-positions/interfaces/IWAVAX.sol\":{\"keccak256\":\"0xb4c14b219795e5bd1145dd2d2f3e0ee8b41280afd24302d784063c427fdc2e33\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://5a8cf75bbdaa9a61f9dffc132d69d811d666eb188df39f575d608f5e01023543\",\"dweb:/ipfs/Qmb5sw9ZySsbdZYn2Jjih6iFHxx3PFeRBmvG1akRuifcPW\"]}},\"version\":1}"}},"contracts/staking-positions/PangoChefFunding.sol":{"PangoChefFunding":{"abi":[{"inputs":[],"name":"FailedTransfer","type":"error"},{"inputs":[],"name":"HighSlippage","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"InvalidType","type":"error"},{"inputs":[],"name":"Locked","type":"error"},{"inputs":[],"name":"MismatchedArrayLengths","type":"error"},{"inputs":[],"name":"NoEffect","type":"error"},{"inputs":[],"name":"NonExistentToken","type":"error"},{"inputs":[],"name":"NullInput","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"},{"inputs":[],"name":"Overflow","type":"error"},{"inputs":[],"name":"TooEarly","type":"error"},{"inputs":[],"name":"TooLate","type":"error"},{"inputs":[],"name":"Underflow","type":"error"},{"inputs":[],"name":"UnprivilegedCaller","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"PeriodDurationUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"PeriodEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"poolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newWeight","type":"uint256"}],"name":"WeightSet","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolRewardInfos","outputs":[{"internalType":"uint32","name":"weight","type":"uint32"},{"internalType":"uint96","name":"stashedRewards","type":"uint96"},{"internalType":"uint128","name":"rewardPerWeightPaid","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"name":"poolRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerWeightStored","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"setPeriodDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"poolIds","type":"uint256[]"},{"internalType":"uint32[]","name":"weights","type":"uint32[]"}],"name":"setWeights","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardAdded","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","addReward(uint256)":"74de4ec4","endPeriod()":"5faa65ff","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","lastUpdate()":"c0463711","periodDuration()":"b470aade","periodFinish()":"ebe2b12b","poolRewardInfos(uint256)":"6bc9f703","poolRewardRate(uint256)":"f2d1e1cd","poolsLength()":"2716ae66","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rewardPerWeightStored()":"3228dd59","rewardRate()":"7b0a47ee","rewardsToken()":"d1af0c7d","setPeriodDuration(uint256)":"7c2d6e01","setWeights(uint256[],uint32[])":"54f8c475","supportsInterface(bytes4)":"01ffc9a7","totalRewardAdded()":"098b8858","totalWeight()":"96c82e57"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HighSlippage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Locked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedArrayLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEffect\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooLate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Underflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnprivilegedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"PeriodDurationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"WeightSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdate\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"poolRewardInfos\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"weight\",\"type\":\"uint32\"},{\"internalType\":\"uint96\",\"name\":\"stashedRewards\",\"type\":\"uint96\"},{\"internalType\":\"uint128\",\"name\":\"rewardPerWeightPaid\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"poolRewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardPerWeightStored\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"setPeriodDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint32[]\",\"name\":\"weights\",\"type\":\"uint32[]\"}],\"name\":\"setWeights\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRewardAdded\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Shung for Pangolin\",\"details\":\"The pools of the inheriting contract must call `_claim()` to check their rewards since the      last time they made the same call. Then, based on the reward amount, the pool shall      determine the distribution to stakers. It uses the same algorithm as Synthetix\\u2019      StakingRewards, but instead of distributing rewards to stakers based on their staked      amount, it distributes rewards to pools based on arbitrary weights.\",\"kind\":\"dev\",\"methods\":{\"addReward(uint256)\":{\"params\":{\"amount\":\"The amount of reward tokens to add to the contract.\"}},\"constructor\":{\"params\":{\"newAdmin\":\"The initial owner of the contract.\",\"newRewardsToken\":\"The token that is distributed as reward.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"poolRewardRate(uint256)\":{\"params\":{\"poolId\":\"The identifier of the pool to check the reward rate of.\"},\"returns\":{\"_0\":\"The rewards per second of the pool.\"}},\"poolsLength()\":{\"details\":\"This function must be overridden by the parent contract.\",\"returns\":{\"_0\":\"The number of pools created.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"rewardRate()\":{\"returns\":{\"_0\":\"The rewards per second distributed to all pools combined.\"}},\"setPeriodDuration(uint256)\":{\"params\":{\"newDuration\":\"The duration the feature periods will last.\"}},\"setWeights(uint256[],uint32[])\":{\"details\":\"It requires that pool is created by the parent contract.\",\"params\":{\"poolIds\":\"The identifiers of the pools to change the weights of.\",\"weights\":\"The new weights to set the respective pools to.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"PangoChef Funding\",\"version\":1},\"userdoc\":{\"events\":{\"PeriodDurationUpdated(uint256)\":{\"notice\":\"The event emitted when the period duration is changed. \"},\"PeriodEnded()\":{\"notice\":\"The event emitted when a period is manually cut short. \"},\"RewardAdded(uint256)\":{\"notice\":\"The event emitted when a period is started or extended through funding. \"},\"WeightSet(uint256,uint256)\":{\"notice\":\"The event emitted when the weight of a pool changes. \"}},\"kind\":\"user\",\"methods\":{\"addReward(uint256)\":{\"notice\":\"External restricted function to fund the contract.\"},\"constructor\":{\"notice\":\"Constructor to create PangoChefFunding contract.\"},\"endPeriod()\":{\"notice\":\"External restricted function to end the period and withdraw leftover rewards. \"},\"lastUpdate()\":{\"notice\":\"The timestamp when the last time the rewards were claimed by a pool. \"},\"periodDuration()\":{\"notice\":\"The duration of how long the rewards will last after `addReward` is called. \"},\"periodFinish()\":{\"notice\":\"The timestamp when the current period will end or the latest period has ended. \"},\"poolRewardInfos(uint256)\":{\"notice\":\"The mapping from poolId to the struct that stores variables for determining pools\\u2019 shares of the global rewards.\"},\"poolRewardRate(uint256)\":{\"notice\":\"External view function to get the reward rate of a pool\"},\"poolsLength()\":{\"notice\":\"Public view function to return the number of pools created by parent contract.\"},\"rewardPerWeightStored()\":{\"notice\":\"The variable representing how much rewards are distributed per weight. It stores in fixed denominator. \"},\"rewardRate()\":{\"notice\":\"Public view function to get the global reward rate.\"},\"rewardsToken()\":{\"notice\":\"The reward token that is distributed to stakers. \"},\"setPeriodDuration(uint256)\":{\"notice\":\"External restricted function to change the reward period duration.\"},\"setWeights(uint256[],uint32[])\":{\"notice\":\"External restricted function to change the weights of pools.\"},\"totalRewardAdded()\":{\"notice\":\"The amount of total rewards added. \"},\"totalWeight()\":{\"notice\":\"The sum of all pools\\u2019 weights. \"}},\"notice\":\"A contract that is only the reward funding part of `PangoChef`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/PangoChefFunding.sol\":\"PangoChefFunding\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]},\"@rari-capital/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xa28a1515702793c6b56b97272f75e05890fd82aa2e7ec47b41d4d56a81023f69\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7bb0229ba04ab021f31ecb002c162fe1db2e2cf36c76c403801013dda8bd1124\",\"dweb:/ipfs/QmPRLj9LkGGxNuXf66srwNSrYpcbnzH1JtrpMFukTEnoEx\"]},\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]},\"contracts/staking-positions/PangoChefFunding.sol\":{\"keccak256\":\"0x6c0928fa279c848e130381bb078c99f0277412c68cf54563d1bbba083b2fec54\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://7dca7be740c5df273b2708b85262acb807baf98cdfa0c51c813fc5b35ed679af\",\"dweb:/ipfs/QmYjYZ5Rsdh3FBT98GjaqX2wnxjQef6uXjKbyfdZgSSkW4\"]}},\"version\":1}"}},"contracts/staking-positions/PangolinStakingPositions.sol":{"ITokenMetadata":{"abi":[{"inputs":[{"internalType":"contract PangolinStakingPositions","name":"pangolinStakingPositions","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"tokenURI(address,uint256)":"e9dc6375"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract PangolinStakingPositions\",\"name\":\"pangolinStakingPositions\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/PangolinStakingPositions.sol\":\"ITokenMetadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0xa8796bd16014cefb8c26449413981a49c510f92a98d6828494f5fd046223ced3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a5e0bb5a7d182e0d0eef87033f78115eab791de3626a929bc98c157087880a\",\"dweb:/ipfs/QmetkXAu2CJKS4qrZtEQPU8okAPwUwa6HL4XYwk8vrYMk8\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]},\"contracts/staking-positions/PangolinStakingPositions.sol\":{\"keccak256\":\"0xe4c6b5b2eaa8b5085381cb3475bbbc674778ae02ac7722969b98d9be29eb7ce2\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://ed60765a392e6f50ae8ef915ac64f362a9b25edb9ee2d8532f68c5f67df38b17\",\"dweb:/ipfs/QmT2EFZD3rmTezMpJepDGMuCtVLVLKiqMAWhymgEHR6M2g\"]},\"contracts/staking-positions/PangolinStakingPositionsFunding.sol\":{\"keccak256\":\"0xefcee662026897a273c4e6961f286c49d93e1e2e284faec89a9adca1b7915783\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://f9a6167411900d27c4c764127d283b63b109fdde912059c52fd664dd06bf3325\",\"dweb:/ipfs/QmSu7FSkt3oX4eckdnHCVyGczLFBJP9u3DuLW8ZyjwCuUT\"]}},\"version\":1}"},"PangolinStakingPositions":{"abi":[{"inputs":[{"internalType":"address","name":"newRewardsToken","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"contract ITokenMetadata","name":"newTokenMetadata","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"FailedTransfer","type":"error"},{"inputs":[],"name":"HighSlippage","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"InvalidType","type":"error"},{"inputs":[],"name":"Locked","type":"error"},{"inputs":[],"name":"MismatchedArrayLengths","type":"error"},{"inputs":[],"name":"NoEffect","type":"error"},{"inputs":[],"name":"NonExistentToken","type":"error"},{"inputs":[],"name":"NullInput","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"},{"inputs":[],"name":"Overflow","type":"error"},{"inputs":[],"name":"TooEarly","type":"error"},{"inputs":[],"name":"TooLate","type":"error"},{"inputs":[],"name":"Underflow","type":"error"},{"inputs":[],"name":"UnprivilegedCaller","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newApprovalPauseDuration","type":"uint256"}],"name":"PauseDurationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"PeriodDurationUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"PeriodEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"positionId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract ITokenMetadata","name":"newTokenMetadata","type":"address"}],"name":"TokenMetadataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"positionId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approvalPauseDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"emergencyExit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"positionIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"positionIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"positionPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"positionRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"positions","outputs":[{"components":[{"internalType":"uint96","name":"balance","type":"uint96"},{"internalType":"uint160","name":"sumOfEntryTimes","type":"uint160"}],"internalType":"struct PangolinStakingPositions.ValueVariables","name":"valueVariables","type":"tuple"},{"components":[{"internalType":"uint256","name":"idealPosition","type":"uint256"},{"internalType":"uint256","name":"rewardPerValue","type":"uint256"}],"internalType":"struct PangolinStakingPositions.RewardSummations","name":"rewardSummationsPaid","type":"tuple"},{"internalType":"uint160","name":"previousValues","type":"uint160"},{"internalType":"uint48","name":"lastUpdate","type":"uint48"},{"internalType":"uint48","name":"lastDevaluation","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardSummationsStored","outputs":[{"internalType":"uint256","name":"idealPosition","type":"uint256"},{"internalType":"uint256","name":"rewardPerValue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newApprovalPauseDuration","type":"uint256"}],"name":"setApprovalPauseDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"setPeriodDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITokenMetadata","name":"newTokenMetadata","type":"address"}],"name":"setTokenMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenMetadata","outputs":[{"internalType":"contract ITokenMetadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"}],"name":"tokensOfOwnerByIndex","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardAdded","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalValueVariables","outputs":[{"internalType":"uint96","name":"balance","type":"uint96"},{"internalType":"uint160","name":"sumOfEntryTimes","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_15162":{"entryPoint":null,"id":15162,"parameterSlots":3,"returnSlots":0},"@_16375":{"entryPoint":null,"id":16375,"parameterSlots":2,"returnSlots":0},"@_2877":{"entryPoint":null,"id":2877,"parameterSlots":2,"returnSlots":0},"@_add_8447":{"entryPoint":649,"id":8447,"parameterSlots":2,"returnSlots":1},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_grantRole_283":{"entryPoint":452,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":385,"id":415,"parameterSlots":2,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@add_8747":{"entryPoint":617,"id":8747,"parameterSlots":2,"returnSlots":1},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_contract$_ITokenMetadata_$15030_fromMemory":{"entryPoint":756,"id":null,"parameterSlots":2,"returnSlots":3},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":922,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1004,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":862,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":840,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":731,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3416:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:60","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:60"},"nodeType":"YulFunctionCall","src":"125:12:60"},"nodeType":"YulExpressionStatement","src":"125:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:60"},"nodeType":"YulFunctionCall","src":"104:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:60"},"nodeType":"YulFunctionCall","src":"100:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:60"},"nodeType":"YulFunctionCall","src":"89:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:60"},"nodeType":"YulFunctionCall","src":"79:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:60"},"nodeType":"YulFunctionCall","src":"72:50:60"},"nodeType":"YulIf","src":"69:70:60"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:60","type":""}],"src":"14:131:60"},{"body":{"nodeType":"YulBlock","src":"289:404:60","statements":[{"body":{"nodeType":"YulBlock","src":"335:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"344:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"347:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"337:6:60"},"nodeType":"YulFunctionCall","src":"337:12:60"},"nodeType":"YulExpressionStatement","src":"337:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"310:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"319:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"306:3:60"},"nodeType":"YulFunctionCall","src":"306:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"331:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"302:3:60"},"nodeType":"YulFunctionCall","src":"302:32:60"},"nodeType":"YulIf","src":"299:52:60"},{"nodeType":"YulVariableDeclaration","src":"360:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"379:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"373:5:60"},"nodeType":"YulFunctionCall","src":"373:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"364:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"423:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"398:24:60"},"nodeType":"YulFunctionCall","src":"398:31:60"},"nodeType":"YulExpressionStatement","src":"398:31:60"},{"nodeType":"YulAssignment","src":"438:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"448:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"438:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"462:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"487:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"498:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"483:3:60"},"nodeType":"YulFunctionCall","src":"483:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"477:5:60"},"nodeType":"YulFunctionCall","src":"477:25:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"466:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"536:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"511:24:60"},"nodeType":"YulFunctionCall","src":"511:33:60"},"nodeType":"YulExpressionStatement","src":"511:33:60"},{"nodeType":"YulAssignment","src":"553:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"563:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"553:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"579:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"604:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"615:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"600:3:60"},"nodeType":"YulFunctionCall","src":"600:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"594:5:60"},"nodeType":"YulFunctionCall","src":"594:25:60"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"583:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"653:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"628:24:60"},"nodeType":"YulFunctionCall","src":"628:33:60"},"nodeType":"YulExpressionStatement","src":"628:33:60"},{"nodeType":"YulAssignment","src":"670:17:60","value":{"name":"value_2","nodeType":"YulIdentifier","src":"680:7:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"670:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_contract$_ITokenMetadata_$15030_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"239:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"250:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"262:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"270:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"278:6:60","type":""}],"src":"150:543:60"},{"body":{"nodeType":"YulBlock","src":"730:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"747:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"754:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"759:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"750:3:60"},"nodeType":"YulFunctionCall","src":"750:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"740:6:60"},"nodeType":"YulFunctionCall","src":"740:31:60"},"nodeType":"YulExpressionStatement","src":"740:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"787:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"790:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"780:6:60"},"nodeType":"YulFunctionCall","src":"780:15:60"},"nodeType":"YulExpressionStatement","src":"780:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"811:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"814:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"804:6:60"},"nodeType":"YulFunctionCall","src":"804:15:60"},"nodeType":"YulExpressionStatement","src":"804:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"698:127:60"},{"body":{"nodeType":"YulBlock","src":"885:325:60","statements":[{"nodeType":"YulAssignment","src":"895:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"909:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"912:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"905:3:60"},"nodeType":"YulFunctionCall","src":"905:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"895:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"926:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"956:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"962:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"952:3:60"},"nodeType":"YulFunctionCall","src":"952:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"930:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1003:31:60","statements":[{"nodeType":"YulAssignment","src":"1005:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1019:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1027:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1015:3:60"},"nodeType":"YulFunctionCall","src":"1015:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1005:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"983:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"976:6:60"},"nodeType":"YulFunctionCall","src":"976:26:60"},"nodeType":"YulIf","src":"973:61:60"},{"body":{"nodeType":"YulBlock","src":"1093:111:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1114:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1121:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1126:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1117:3:60"},"nodeType":"YulFunctionCall","src":"1117:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1107:6:60"},"nodeType":"YulFunctionCall","src":"1107:31:60"},"nodeType":"YulExpressionStatement","src":"1107:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1158:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1161:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1151:6:60"},"nodeType":"YulFunctionCall","src":"1151:15:60"},"nodeType":"YulExpressionStatement","src":"1151:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1186:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1189:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1179:6:60"},"nodeType":"YulFunctionCall","src":"1179:15:60"},"nodeType":"YulExpressionStatement","src":"1179:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1049:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1072:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1080:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1069:2:60"},"nodeType":"YulFunctionCall","src":"1069:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1046:2:60"},"nodeType":"YulFunctionCall","src":"1046:38:60"},"nodeType":"YulIf","src":"1043:161:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"865:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"874:6:60","type":""}],"src":"830:380:60"},{"body":{"nodeType":"YulBlock","src":"1271:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1288:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"1291:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1281:6:60"},"nodeType":"YulFunctionCall","src":"1281:14:60"},"nodeType":"YulExpressionStatement","src":"1281:14:60"},{"nodeType":"YulAssignment","src":"1304:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1322:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1325:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1312:9:60"},"nodeType":"YulFunctionCall","src":"1312:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"1304:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1254:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1262:4:60","type":""}],"src":"1215:121:60"},{"body":{"nodeType":"YulBlock","src":"1422:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"1455:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1469:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1479:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1473:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1500:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"1504:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1493:6:60"},"nodeType":"YulFunctionCall","src":"1493:17:60"},"nodeType":"YulExpressionStatement","src":"1493:17:60"},{"nodeType":"YulVariableDeclaration","src":"1523:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1545:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"1549:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1535:9:60"},"nodeType":"YulFunctionCall","src":"1535:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"1527:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1567:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1590:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1600:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1607:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1619:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1603:3:60"},"nodeType":"YulFunctionCall","src":"1603:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1596:3:60"},"nodeType":"YulFunctionCall","src":"1596:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1586:3:60"},"nodeType":"YulFunctionCall","src":"1586:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"1571:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1661:23:60","statements":[{"nodeType":"YulAssignment","src":"1663:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"1678:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"1663:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1643:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1655:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1640:2:60"},"nodeType":"YulFunctionCall","src":"1640:20:60"},"nodeType":"YulIf","src":"1637:47:60"},{"nodeType":"YulVariableDeclaration","src":"1697:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1711:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1721:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1728:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1733:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1724:3:60"},"nodeType":"YulFunctionCall","src":"1724:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1717:3:60"},"nodeType":"YulFunctionCall","src":"1717:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1707:3:60"},"nodeType":"YulFunctionCall","src":"1707:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1701:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1751:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1764:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1755:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1849:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1858:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1865:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1851:6:60"},"nodeType":"YulFunctionCall","src":"1851:17:60"},"nodeType":"YulExpressionStatement","src":"1851:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1799:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1806:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1796:2:60"},"nodeType":"YulFunctionCall","src":"1796:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1810:26:60","statements":[{"nodeType":"YulAssignment","src":"1812:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1825:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1832:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1821:3:60"},"nodeType":"YulFunctionCall","src":"1821:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1812:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1792:3:60","statements":[]},"src":"1788:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1438:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1443:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1435:2:60"},"nodeType":"YulFunctionCall","src":"1435:11:60"},"nodeType":"YulIf","src":"1432:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"1394:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"1401:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"1406:10:60","type":""}],"src":"1341:545:60"},{"body":{"nodeType":"YulBlock","src":"1976:81:60","statements":[{"nodeType":"YulAssignment","src":"1986:65:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2001:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2019:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2022:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2015:3:60"},"nodeType":"YulFunctionCall","src":"2015:11:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2032:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2028:3:60"},"nodeType":"YulFunctionCall","src":"2028:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2011:3:60"},"nodeType":"YulFunctionCall","src":"2011:24:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2007:3:60"},"nodeType":"YulFunctionCall","src":"2007:29:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1997:3:60"},"nodeType":"YulFunctionCall","src":"1997:40:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2043:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2046:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2039:3:60"},"nodeType":"YulFunctionCall","src":"2039:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1994:2:60"},"nodeType":"YulFunctionCall","src":"1994:57:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1986:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1953:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"1959:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1967:4:60","type":""}],"src":"1891:166:60"},{"body":{"nodeType":"YulBlock","src":"2158:1256:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2168:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2188:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2182:5:60"},"nodeType":"YulFunctionCall","src":"2182:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2172:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2235:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2237:16:60"},"nodeType":"YulFunctionCall","src":"2237:18:60"},"nodeType":"YulExpressionStatement","src":"2237:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2207:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2223:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2227:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2219:3:60"},"nodeType":"YulFunctionCall","src":"2219:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"2231:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2215:3:60"},"nodeType":"YulFunctionCall","src":"2215:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2204:2:60"},"nodeType":"YulFunctionCall","src":"2204:30:60"},"nodeType":"YulIf","src":"2201:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2310:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2348:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2342:5:60"},"nodeType":"YulFunctionCall","src":"2342:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"2316:25:60"},"nodeType":"YulFunctionCall","src":"2316:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"2356:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2266:43:60"},"nodeType":"YulFunctionCall","src":"2266:97:60"},"nodeType":"YulExpressionStatement","src":"2266:97:60"},{"nodeType":"YulVariableDeclaration","src":"2372:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2389:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"2376:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2399:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2418:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"2403:11:60","type":""}]},{"nodeType":"YulAssignment","src":"2431:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2444:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2431:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"2501:656:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2515:35:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2546:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2542:3:60"},"nodeType":"YulFunctionCall","src":"2542:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2530:3:60"},"nodeType":"YulFunctionCall","src":"2530:20:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"2519:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2563:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2607:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"2577:29:60"},"nodeType":"YulFunctionCall","src":"2577:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"2567:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2625:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2634:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2629:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2712:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2737:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2755:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2760:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2751:3:60"},"nodeType":"YulFunctionCall","src":"2751:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2745:5:60"},"nodeType":"YulFunctionCall","src":"2745:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2730:6:60"},"nodeType":"YulFunctionCall","src":"2730:42:60"},"nodeType":"YulExpressionStatement","src":"2730:42:60"},{"nodeType":"YulAssignment","src":"2789:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2803:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2811:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2799:3:60"},"nodeType":"YulFunctionCall","src":"2799:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2789:6:60"}]},{"nodeType":"YulAssignment","src":"2830:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2847:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2858:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2843:3:60"},"nodeType":"YulFunctionCall","src":"2843:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2830:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2659:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"2662:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2656:2:60"},"nodeType":"YulFunctionCall","src":"2656:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2671:28:60","statements":[{"nodeType":"YulAssignment","src":"2673:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2682:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2685:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2678:3:60"},"nodeType":"YulFunctionCall","src":"2678:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2673:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2652:3:60","statements":[]},"src":"2648:236:60"},{"body":{"nodeType":"YulBlock","src":"2932:166:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2950:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2977:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2982:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2973:3:60"},"nodeType":"YulFunctionCall","src":"2973:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2967:5:60"},"nodeType":"YulFunctionCall","src":"2967:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2954:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3017:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3029:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3056:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3059:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3052:3:60"},"nodeType":"YulFunctionCall","src":"3052:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"3068:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3048:3:60"},"nodeType":"YulFunctionCall","src":"3048:24:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3078:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3074:3:60"},"nodeType":"YulFunctionCall","src":"3074:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3044:3:60"},"nodeType":"YulFunctionCall","src":"3044:37:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3040:3:60"},"nodeType":"YulFunctionCall","src":"3040:42:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3025:3:60"},"nodeType":"YulFunctionCall","src":"3025:58:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3010:6:60"},"nodeType":"YulFunctionCall","src":"3010:74:60"},"nodeType":"YulExpressionStatement","src":"3010:74:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2903:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"2912:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2900:2:60"},"nodeType":"YulFunctionCall","src":"2900:19:60"},"nodeType":"YulIf","src":"2897:201:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3118:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3132:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3135:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3128:3:60"},"nodeType":"YulFunctionCall","src":"3128:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"3144:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3124:3:60"},"nodeType":"YulFunctionCall","src":"3124:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3111:6:60"},"nodeType":"YulFunctionCall","src":"3111:36:60"},"nodeType":"YulExpressionStatement","src":"3111:36:60"}]},"nodeType":"YulCase","src":"2494:663:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2499:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3174:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3188:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3201:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3192:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3237:67:60","statements":[{"nodeType":"YulAssignment","src":"3255:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3274:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3279:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3270:3:60"},"nodeType":"YulFunctionCall","src":"3270:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3264:5:60"},"nodeType":"YulFunctionCall","src":"3264:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3255:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3218:6:60"},"nodeType":"YulIf","src":"3215:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3324:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3383:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"3390:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"3330:52:60"},"nodeType":"YulFunctionCall","src":"3330:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3317:6:60"},"nodeType":"YulFunctionCall","src":"3317:81:60"},"nodeType":"YulExpressionStatement","src":"3317:81:60"}]},"nodeType":"YulCase","src":"3166:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2474:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2482:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2471:2:60"},"nodeType":"YulFunctionCall","src":"2471:14:60"},"nodeType":"YulSwitch","src":"2464:944:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2143:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"2149:3:60","type":""}],"src":"2062:1352:60"}]},"contents":"{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_contract$_ITokenMetadata_$15030_fromMemory(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := mload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405262127500600d55611c206013553480156200001e57600080fd5b5060405162004304380380620043048339810160408190526200004191620002f4565b82826040518060400160405280601a81526020017f50616e676f6c696e205374616b696e6720506f736974696f6e7300000000000081525060405180604001604052806007815260200166504e472d504f5360c81b8152508160009081620000aa9190620003ec565b506001620000b98282620003ec565b5050506001600160a01b038116620000e457604051632505ecc360e11b815260040160405180910390fd5b816001600160a01b03163b600003620001105760405163c1ab6dc160e01b815260040160405180910390fd5b6001600160a01b0382166080526200012a60008262000181565b620001567f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb8262000181565b5050600f80546001600160a01b0319166001600160a01b039290921691909117905550620004b89050565b620001988282620001c460201b620018f41760201c565b6000828152600b60209081526040909120620001bf9183906200199662000269821b17901c565b505050565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1662000265576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620002243390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000280836001600160a01b03841662000289565b90505b92915050565b6000818152600183016020526040812054620002d25750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000283565b50600062000283565b6001600160a01b0381168114620002f157600080fd5b50565b6000806000606084860312156200030a57600080fd5b83516200031781620002db565b60208501519093506200032a81620002db565b60408501519092506200033d81620002db565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200037357607f821691505b6020821081036200039457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001bf57600081815260208120601f850160051c81016020861015620003c35750805b601f850160051c820191505b81811015620003e457828155600101620003cf565b505050505050565b81516001600160401b0381111562000408576200040862000348565b62000420816200041984546200035e565b846200039a565b602080601f8311600181146200045857600084156200043f5750858301515b600019600386901b1c1916600185901b178555620003e4565b600085815260208120601f198616915b82811015620004895788860151825594840194600190910190840162000468565b5085821015620004a85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051613e22620004e2600039600081816108050152818161261901526127000152613e226000f3fe608060405234801561001057600080fd5b506004361061034c5760003560e01c80637b0472f0116101bd578063b88d4fde116100f9578063d547741f116100a2578063e985e9c51161007c578063e985e9c5146108ac578063ebe2b12b146108e8578063f5b2cad714610900578063f5c455001461091357600080fd5b8063d547741f14610827578063ddc632621461083a578063df3e1aa41461084d57600080fd5b8063ca15c873116100d3578063ca15c873146107cd578063ce9e2daa146107e0578063d1af0c7d1461080057600080fd5b8063b88d4fde14610772578063c046371114610785578063c87b56dd146107ba57600080fd5b806399fbab8811610166578063a22cb46511610140578063a22cb46514610730578063aa5f7e2614610743578063aea62e3f14610756578063b470aade1461076957600080fd5b806399fbab8814610615578063a0712d6814610715578063a217fddf1461072857600080fd5b80639010d07c116101975780639010d07c146105c157806391d14854146105d457806395d89b411461060d57600080fd5b80637b0472f0146105935780637b0a47ee146105a65780637c2d6e01146105ae57600080fd5b806342842e0e1161028c5780635e4c911f116102355780636fdff40f1161020f5780636fdff40f1461054757806370a082311461055a57806374de4ec41461056d57806375c3fd3f1461058057600080fd5b80635e4c911f146105195780635faa65ff1461052c5780636352211e1461053457600080fd5b8063468cc41e11610266578063468cc41e146104e0578063496cea98146104f35780634f6ccce71461050657600080fd5b806342842e0e146104a757806342966c68146104ba578063441a3e70146104cd57600080fd5b806323b872dd116102f95780632f745c59116102d35780632f745c5914610465578063340b13361461047857806336568abe146104815780634231b0bd1461049457600080fd5b806323b872dd1461041c578063248a9ca31461042f5780632f2ff15d1461045257600080fd5b8063095ea7b31161032a578063095ea7b3146103b9578063098b8858146103ce57806318160ddd1461040a57600080fd5b806301ffc9a71461035157806306fdde0314610379578063081812fc1461038e575b600080fd5b61036461035f3660046136d9565b610936565b60405190151581526020015b60405180910390f35b610381610956565b604051610370919061374e565b6103a161039c366004613761565b6109e8565b6040516001600160a01b039091168152602001610370565b6103cc6103c736600461378f565b610a0f565b005b600c546103ed90600160a01b90046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610370565b6008545b604051908152602001610370565b6103cc61042a3660046137bb565b610b45565b61040e61043d366004613761565b6000908152600a602052604090206001015490565b6103cc6104603660046137fc565b610bcc565b61040e61047336600461378f565b610bf1565b61040e60135481565b6103cc61048f3660046137fc565b610c99565b6103cc6104a2366004613761565b610d25565b6103cc6104b53660046137bb565b610d31565b6103cc6104c8366004613761565b610d4c565b6103cc6104db36600461382c565b610da9565b61040e6104ee366004613761565b610dbb565b61040e610501366004613761565b610e19565b61040e610514366004613761565b610e3f565b6103cc61052736600461389a565b610ee3565b6103cc610f7a565b6103a1610542366004613761565b61108c565b6103cc610555366004613906565b6110f1565b61040e610568366004613906565b61115f565b6103cc61057b366004613761565b6111f9565b6103cc61058e366004613761565b611413565b6103cc6105a136600461382c565b611477565b61040e611489565b6103cc6105bc366004613761565b6114cc565b6103a16105cf36600461382c565b6115a1565b6103646105e23660046137fc565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103816115c0565b6106b1610623366004613761565b600e602090815260009182526040918290208251808401845281546bffffffffffffffffffffffff811682526001600160a01b036c0100000000000000000000000090910481168285015284518086019095526001830154855260028301549385019390935260039091015490929181169065ffffffffffff600160a01b8204811691600160d01b90041685565b6040805186516bffffffffffffffffffffffff1681526020968701516001600160a01b03908116888301528651928201929092529590940151606086015292909116608084015265ffffffffffff90811660a08401521660c082015260e001610370565b61040e610723366004613761565b6115cf565b61040e600081565b6103cc61073e366004613931565b611608565b6103cc610751366004613761565b611613565b6103cc61076436600461389a565b611626565b61040e600d5481565b6103cc6107803660046139ce565b6116b5565b600c546107a4906a0100000000000000000000900464ffffffffff1681565b60405164ffffffffff9091168152602001610370565b6103816107c8366004613761565b611743565b61040e6107db366004613761565b6117de565b6107f36107ee366004613a7d565b6117f5565b6040516103709190613ab2565b6103a17f000000000000000000000000000000000000000000000000000000000000000081565b6103cc6108353660046137fc565b6118bc565b6103cc610848366004613761565b6118e1565b601054610880906bffffffffffffffffffffffff8116906c0100000000000000000000000090046001600160a01b031682565b604080516bffffffffffffffffffffffff90931683526001600160a01b03909116602083015201610370565b6103646108ba366004613af6565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600c546107a490600160781b900464ffffffffff1681565b600f546103a1906001600160a01b031681565b601154601254610921919082565b60408051928352602083019190915201610370565b6000610941826119ab565b806109505750610950826119e9565b92915050565b60606000805461096590613b24565b80601f016020809104026020016040519081016040528092919081815260200182805461099190613b24565b80156109de5780601f106109b3576101008083540402835291602001916109de565b820191906000526020600020905b8154815290600101906020018083116109c157829003601f168201915b5050505050905090565b60006109f382611a27565b506000908152600460205260409020546001600160a01b031690565b6000610a1a8261108c565b9050806001600160a01b0316836001600160a01b031603610aa85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b0382161480610ac45750610ac481336108ba565b610b365760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610a9f565b610b408383611a8b565b505050565b610b4f3382611b06565b610bc15760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610a9f565b610b40838383611b84565b6000828152600a6020526040902060010154610be781611dc7565b610b408383611dd1565b6000610bfc8361115f565b8210610c705760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610a9f565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6001600160a01b0381163314610d175760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a9f565b610d218282611df3565b5050565b610d2e81611e15565b50565b610b40838383604051806020016040528060008152506116b5565b6000818152600e60205260409020546bffffffffffffffffffffffff1615610da0576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d2e81611f2c565b610db1611f8a565b610d218282611fdf565b600080610dc860106121af565b6000848152600e6020526040812091925090610de3906121af565b90508015610e0e578181610df5611489565b610dff9190613b74565b610e099190613b93565b610e11565b60005b949350505050565b6000818152600e6020526040812081610e338260016121f0565b9050610e1181836122fb565b6000610e4a60085490565b8210610ebe5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610a9f565b60088281548110610ed157610ed1613bb5565b90600052602060002001549050919050565b610eeb611f8a565b82818114610f25576040517f568efce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610f7257610f6a868683818110610f4557610f45613bb5565b90506020020135858584818110610f5e57610f5e613bb5565b905060200201356123b7565b600101610f28565b505050505050565b6000610f8581611dc7565b600c54600160781b900464ffffffffff16428111610fcf576040517fecdd1c2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c805464ffffffffff42908116600160781b027fffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffff91850369ffffffffffffffffffff8416026bffffffffffffffffffffffff600160a01b808604821683900390911602929092166effffffffffffffffffffffffffffff909316929092179190911790915561105e816125e4565b6040517fac02d07d013ae7c7e3ee940f8df0877c2ab1103bf87ab258ce31665f7111f09290600090a1505050565b6000818152600260205260408120546001600160a01b0316806109505760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610a9f565b60006110fc81611dc7565b600f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527f8a1803707dfd67114623e59e8141ee8d109332da42c6c3e8212724807e140a6b906020015b60405180910390a15050565b60006001600160a01b0382166111dd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610a9f565b506001600160a01b031660009081526003602052604090205490565b7f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb61122381611dc7565b600d546bffffffffffffffffffffffff83111561126c576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600c60148282829054906101000a90046bffffffffffffffffffffffff166112959190613bcb565b82546bffffffffffffffffffffffff9182166101009390930a928302919092021990911617905550600c5460009064ffffffffff600160781b820481166a010000000000000000000090920416106112f0575080830461132a565b50600c5464ffffffffff6a010000000000000000000082048116600160781b83049091160369ffffffffffffffffffff9091160283018190045b8060000361134b576040516324d0659d60e11b815260040160405180910390fd5b600c80544284810164ffffffffff908116600160781b027fffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffff919092166a0100000000000000000000027fffffffffffffffffffffffffffffffffff00000000000000000000000000000090931669ffffffffffffffffffff86161792909217919091161790556113da846126c5565b6040518481527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a150505050565b600061141e81611dc7565b6202a30082111561144257604051632d0483c560e21b815260040160405180910390fd5b60138290556040518281527fa959cb2cc91580147f93f66fb85db8f308cfdaef3989ab5265408ff80ef6fa6690602001611153565b61147f611f8a565b610d2182826123b7565b600c5460009042600160781b90910464ffffffffff16106114b857600c5469ffffffffffffffffffff166114bb565b60005b69ffffffffffffffffffff16905090565b60006114d781611dc7565b600c5442600160781b90910464ffffffffff161115611522576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201000182101561154657604051632d0483c560e21b815260040160405180910390fd5b64010000000082111561156c57604051632d0483c560e21b815260040160405180910390fd5b600d8290556040518281527fbd6eb9cf4d6e2902587c57e3163aaafdb46e3b3f2086bdfa75c790228930a9d790602001611153565b6000828152600b602052604081206115b99083612737565b9392505050565b60606001805461096590613b24565b60006115d9611f8a565b6014600081546115e890613bfb565b918290555090506115f93382612743565b61160381836123b7565b919050565b610d213383836128e9565b61161b611f8a565b610d2e8160006123b7565b61162e611f8a565b82818114611668576040517f568efce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610f72576116ad86868381811061168857611688613bb5565b905060200201358585848181106116a1576116a1613bb5565b90506020020135611fdf565b60010161166b565b6116bf3383611b06565b6117315760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610a9f565b61173d848484846129b7565b50505050565b606061174e82611a27565b600f546040517fe9dc6375000000000000000000000000000000000000000000000000000000008152306004820152602481018490526001600160a01b039091169063e9dc637590604401600060405180830381865afa1580156117b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109509190810190613c15565b6000818152600b6020526040812061095090612a40565b60608183111561181857604051632d0483c560e21b815260040160405180910390fd5b60006118248484613c83565b61182f906001613c9a565b905060008167ffffffffffffffff81111561184c5761184c61395f565b604051908082528060200260200182016040528015611875578160200160208202803683370190505b5090505b8385116118b35761188a8686610bf1565b81868151811061189c5761189c613bb5565b602002602001018181525050846001019450611879565b95945050505050565b6000828152600a60205260409020600101546118d781611dc7565b610b408383611df3565b6118e9611f8a565b610d2e816000611fdf565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610d21576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff191660011790556119523390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006115b9836001600160a01b038416612a4a565b60006001600160e01b031982167f5a05180f000000000000000000000000000000000000000000000000000000001480610950575061095082612a99565b60006001600160e01b031982167f780e9d63000000000000000000000000000000000000000000000000000000001480610950575061095082612ad7565b6000818152600260205260409020546001600160a01b0316610d2e5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610a9f565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190611acd8261108c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611b128361108c565b9050806001600160a01b0316846001600160a01b03161480611b5957506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e115750836001600160a01b0316611b72846109e8565b6001600160a01b031614949350505050565b826001600160a01b0316611b978261108c565b6001600160a01b031614611c135760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610a9f565b6001600160a01b038216611c8e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610a9f565b611c9b8383836001612b72565b826001600160a01b0316611cae8261108c565b6001600160a01b031614611d2a5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610a9f565b6000818152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610d2e8133612bfa565b611ddb82826118f4565b6000828152600b60205260409020610b409082611996565b611dfd8282612c6f565b6000828152600b60205260409020610b409082612cf2565b8033611e208261108c565b6001600160a01b031614611e4757604051631c62c2b160e11b815260040160405180910390fd5b6000828152600e60209081526040918290208251808401909352546bffffffffffffffffffffffff8082168085526001600160a01b036c01000000000000000000000000938490048116948601859052601080548085168490039094166bffffffffffffffffffffffff1990941684178590048216959095031690920217909155611ed184611f2c565b611ee8816bffffffffffffffffffffffff166125e4565b6000816bffffffffffffffffffffffff16857fabd2ab552bc04cdbfa4a54107fa44ac8c9cb06f6d21da11933ac05a653be19e960405160405180910390a450505050565b8033611f378261108c565b6001600160a01b031614611f5e57604051631c62c2b160e11b815260040160405180910390fd5b6000828152600e60205260408120818155600181018290556002810182905560030155610d2182612d07565b6000611f94612db7565b9050600080611fa283612e04565b915091508160116000016000828254611fbb9190613c9a565b909155505060128054829190600090611fd5908490613c9a565b9091555050505050565b8133611fea8261108c565b6001600160a01b03161461201157604051631c62c2b160e11b815260040160405180910390fd5b6000838152600e6020526040902080546bffffffffffffffffffffffff1680841115612069576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061207483612e7d565b905060006120828287613c9a565b9050806000036120a5576040516324d0659d60e11b815260040160405180910390fd5b601080546bffffffffffffffffffffffff1981166bffffffffffffffffffffffff918216899003821690811780845587546c01000000000000000000000000908190046001600160a01b039081168c8a0342818102958590048416860192909203831684029095179096559290931691169091021785557fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff600160d01b65ffffffffffff90921691820216600160a01b90910217600385015560115460018501556012546002850155612177816125e4565b8186887fabd2ab552bc04cdbfa4a54107fa44ac8c9cb06f6d21da11933ac05a653be19e960405160405180910390a450505050505050565b80546000906001600160a01b036c01000000000000000000000000820416906121e6906bffffffffffffffffffffffff1642613b74565b6109509190613c83565b60408051808201909152600080825260208201526003830154600160a01b900465ffffffffffff1660000361223957506040805180820190915260008082526020820152610950565b6001830182156122bd57600061224d612e97565b905060008061225b83612e04565b9150915060405180604001604052808560000154846011600001546122809190613c9a565b61228a9190613c83565b81526020018560010154836011600101546122a59190613c9a565b6122af9190613c83565b815250945050505050610950565b60408051808201909152815460115482916122d791613c83565b815260200182600101546011600101546122f19190613c83565b9052949350505050565b6003810154600090600160a01b900465ffffffffffff16156123ae576003820154602084015170010000000000000000000000000000000091612349916001600160a01b0390911690613b74565b8354600385015460208701516bffffffffffffffffffffffff9092169161237f91600160a01b900465ffffffffffff1690613b74565b865161238b9190613c83565b6123959190613b74565b61239f9190613c9a565b6123a99190613b93565b6115b9565b50600092915050565b81336123c28261108c565b6001600160a01b0316146123e957604051631c62c2b160e11b815260040160405180910390fd5b6000838152600e602052604081209061240182612e7d565b9050600061240f8286613c9a565b905080600003612432576040516324d0659d60e11b815260040160405180910390fd5b6010546000906124519083906bffffffffffffffffffffffff16613c9a565b90506bffffffffffffffffffffffff811115612499576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601080546bffffffffffffffffffffffff8381166001600160a01b036c0100000000000000000000000093849004811642808902918201831686026bffffffffffffffffffffffff19908116949094179096558954808516808a0190951693168317859004821601811690930217875560038701805480841665ffffffffffff600160a01b8304169095039092029390930190911673ffffffffffffffffffffffffffffffffffffffff1990911617905561259d8460038101805465ffffffffffff4216600160a01b027fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff9091161790556011546001820155601254600290910155565b85156125ac576125ac866126c5565b8286887fc8acfabcfb3af3df23b7b8a1aa1371d042bee71e137eeedc881ffa8f3c44626160405160405180910390a450505050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044015b6020604051808303816000875af115801561266b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268f9190613cb2565b610d2e576040517fbfa871c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd9060640161264c565b60006115b98383612f16565b6001600160a01b0382166127995760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a9f565b6000818152600260205260409020546001600160a01b0316156127fe5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a9f565b61280c600083836001612b72565b6000818152600260205260409020546001600160a01b0316156128715760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a9f565b6001600160a01b0382166000818152600360209081526040808320805460010190558483526002909152808220805473ffffffffffffffffffffffffffffffffffffffff19168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b03160361294a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a9f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6129c2848484611b84565b6129ce84848484612f40565b61173d5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a9f565b6000610950825490565b6000818152600183016020526040812054612a9157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610950565b506000610950565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806109505750610950826119e9565b60006001600160e01b031982167f80ac58cd000000000000000000000000000000000000000000000000000000001480612b3a57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061095057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610950565b336001600160a01b03851614612bee576013546000838152600e60205260408120600301549091612bb191600160d01b900465ffffffffffff16613c9a565b9050804211612bec576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b61173d848484846130c9565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610d2157612c2d81613205565b612c38836020613217565b604051602001612c49929190613ccf565b60408051601f198184030181529082905262461bcd60e51b8252610a9f9160040161374e565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1615610d21576000828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006115b9836001600160a01b038416613440565b6000612d128261108c565b9050612d22816000846001612b72565b612d2b8261108c565b6000838152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000612dc1612e97565b600c80547fffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffff166a01000000000000000000004264ffffffffff1602179055919050565b6000806000612e1360106121af565b90508015612e775780700100000000000000000000000000000000612e384287613b74565b612e429190613b74565b612e4c9190613b93565b925080612e6a70010000000000000000000000000000000086613b74565b612e749190613b93565b91505b50915091565b600080612e8b8360006121f0565b90506115b981846122fb565b600c54600090600160781b900464ffffffffff1681428210612eb95742612ebb565b815b600c549091506a0100000000000000000000900464ffffffffff1680821115612ef457600c5469ffffffffffffffffffff168183030293505b6bffffffffffffffffffffffff841115612f1057612f10613d50565b50505090565b6000826000018281548110612f2d57612f2d613bb5565b9060005260206000200154905092915050565b60006001600160a01b0384163b156130be576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a0290612f9d903390899088908890600401613d66565b6020604051808303816000875af1925050508015612fd8575060408051601f3d908101601f19168201909252612fd591810190613da2565b60015b61308b573d808015613006576040519150601f19603f3d011682016040523d82523d6000602084013e61300b565b606091505b5080516000036130835760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a9f565b805181602001fd5b6001600160e01b0319167f150b7a0200000000000000000000000000000000000000000000000000000000149050610e11565b506001949350505050565b60018111156131405760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f7274656400000000000000000000006064820152608401610a9f565b816001600160a01b03851661319c5761319781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6131bf565b836001600160a01b0316856001600160a01b0316146131bf576131bf8582613533565b6001600160a01b0384166131db576131d6816135d0565b6131fe565b846001600160a01b0316846001600160a01b0316146131fe576131fe848261367f565b5050505050565b60606109506001600160a01b03831660145b60606000613226836002613b74565b613231906002613c9a565b67ffffffffffffffff8111156132495761324961395f565b6040519080825280601f01601f191660200182016040528015613273576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106132aa576132aa613bb5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061330d5761330d613bb5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613349846002613b74565b613354906001613c9a565b90505b60018111156133f1577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061339557613395613bb5565b1a60f81b8282815181106133ab576133ab613bb5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936133ea81613dbf565b9050613357565b5083156115b95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a9f565b60008181526001830160205260408120548015613529576000613464600183613c83565b855490915060009061347890600190613c83565b90508181146134dd57600086600001828154811061349857613498613bb5565b90600052602060002001549050808760000184815481106134bb576134bb613bb5565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806134ee576134ee613dd6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610950565b6000915050610950565b600060016135408461115f565b61354a9190613c83565b60008381526007602052604090205490915080821461359d576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906135e290600190613c83565b6000838152600960205260408120546008805493945090928490811061360a5761360a613bb5565b90600052602060002001549050806008838154811061362b5761362b613bb5565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061366357613663613dd6565b6001900381819060005260206000200160009055905550505050565b600061368a8361115f565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b031981168114610d2e57600080fd5b6000602082840312156136eb57600080fd5b81356115b9816136c3565b60005b838110156137115781810151838201526020016136f9565b8381111561173d5750506000910152565b6000815180845261373a8160208601602086016136f6565b601f01601f19169290920160200192915050565b6020815260006115b96020830184613722565b60006020828403121561377357600080fd5b5035919050565b6001600160a01b0381168114610d2e57600080fd5b600080604083850312156137a257600080fd5b82356137ad8161377a565b946020939093013593505050565b6000806000606084860312156137d057600080fd5b83356137db8161377a565b925060208401356137eb8161377a565b929592945050506040919091013590565b6000806040838503121561380f57600080fd5b8235915060208301356138218161377a565b809150509250929050565b6000806040838503121561383f57600080fd5b50508035926020909101359150565b60008083601f84011261386057600080fd5b50813567ffffffffffffffff81111561387857600080fd5b6020830191508360208260051b850101111561389357600080fd5b9250929050565b600080600080604085870312156138b057600080fd5b843567ffffffffffffffff808211156138c857600080fd5b6138d48883890161384e565b909650945060208701359150808211156138ed57600080fd5b506138fa8782880161384e565b95989497509550505050565b60006020828403121561391857600080fd5b81356115b98161377a565b8015158114610d2e57600080fd5b6000806040838503121561394457600080fd5b823561394f8161377a565b9150602083013561382181613923565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561399e5761399e61395f565b604052919050565b600067ffffffffffffffff8211156139c0576139c061395f565b50601f01601f191660200190565b600080600080608085870312156139e457600080fd5b84356139ef8161377a565b935060208501356139ff8161377a565b925060408501359150606085013567ffffffffffffffff811115613a2257600080fd5b8501601f81018713613a3357600080fd5b8035613a46613a41826139a6565b613975565b818152886020838501011115613a5b57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080600060608486031215613a9257600080fd5b8335613a9d8161377a565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015613aea57835183529284019291840191600101613ace565b50909695505050505050565b60008060408385031215613b0957600080fd5b8235613b148161377a565b915060208301356138218161377a565b600181811c90821680613b3857607f821691505b602082108103613b5857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613b8e57613b8e613b5e565b500290565b600082613bb057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006bffffffffffffffffffffffff808316818516808303821115613bf257613bf2613b5e565b01949350505050565b60006000198203613c0e57613c0e613b5e565b5060010190565b600060208284031215613c2757600080fd5b815167ffffffffffffffff811115613c3e57600080fd5b8201601f81018413613c4f57600080fd5b8051613c5d613a41826139a6565b818152856020838501011115613c7257600080fd5b6118b38260208301602086016136f6565b600082821015613c9557613c95613b5e565b500390565b60008219821115613cad57613cad613b5e565b500190565b600060208284031215613cc457600080fd5b81516115b981613923565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613d078160178501602088016136f6565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613d448160288401602088016136f6565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152613d986080830184613722565b9695505050505050565b600060208284031215613db457600080fd5b81516115b9816136c3565b600081613dce57613dce613b5e565b506000190190565b634e487b7160e01b600052603160045260246000fdfea264697066735822122017a394812d1286dd9b95069c350588dcd44f49fe165a50aa00118ed5f43afa7f64736f6c634300080f0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH3 0x127500 PUSH1 0xD SSTORE PUSH2 0x1C20 PUSH1 0x13 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4304 CODESIZE SUB DUP1 PUSH3 0x4304 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x41 SWAP2 PUSH3 0x2F4 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x50616E676F6C696E205374616B696E6720506F736974696F6E73000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x504E472D504F53 PUSH1 0xC8 SHL DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0xAA SWAP2 SWAP1 PUSH3 0x3EC JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0xB9 DUP3 DUP3 PUSH3 0x3EC JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2505ECC3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH3 0x110 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1AB6DC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x80 MSTORE PUSH3 0x12A PUSH1 0x0 DUP3 PUSH3 0x181 JUMP JUMPDEST PUSH3 0x156 PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB DUP3 PUSH3 0x181 JUMP JUMPDEST POP POP PUSH1 0xF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x4B8 SWAP1 POP JUMP JUMPDEST PUSH3 0x198 DUP3 DUP3 PUSH3 0x1C4 PUSH1 0x20 SHL PUSH3 0x18F4 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH3 0x1BF SWAP2 DUP4 SWAP1 PUSH3 0x1996 PUSH3 0x269 DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x265 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x224 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x280 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0x289 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x2D2 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x283 JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x283 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x317 DUP2 PUSH3 0x2DB JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x32A DUP2 PUSH3 0x2DB JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x33D DUP2 PUSH3 0x2DB JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x373 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x394 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x1BF JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x3C3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3E4 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3CF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x408 JUMPI PUSH3 0x408 PUSH3 0x348 JUMP JUMPDEST PUSH3 0x420 DUP2 PUSH3 0x419 DUP5 SLOAD PUSH3 0x35E JUMP JUMPDEST DUP5 PUSH3 0x39A JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x458 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x43F JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x3E4 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x489 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x468 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x4A8 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x3E22 PUSH3 0x4E2 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x805 ADD MSTORE DUP2 DUP2 PUSH2 0x2619 ADD MSTORE PUSH2 0x2700 ADD MSTORE PUSH2 0x3E22 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 0x34C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B0472F0 GT PUSH2 0x1BD JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x8AC JUMPI DUP1 PUSH4 0xEBE2B12B EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xF5B2CAD7 EQ PUSH2 0x900 JUMPI DUP1 PUSH4 0xF5C45500 EQ PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD547741F EQ PUSH2 0x827 JUMPI DUP1 PUSH4 0xDDC63262 EQ PUSH2 0x83A JUMPI DUP1 PUSH4 0xDF3E1AA4 EQ PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA15C873 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x7CD JUMPI DUP1 PUSH4 0xCE9E2DAA EQ PUSH2 0x7E0 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0xC0463711 EQ PUSH2 0x785 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x7BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x99FBAB88 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x730 JUMPI DUP1 PUSH4 0xAA5F7E26 EQ PUSH2 0x743 JUMPI DUP1 PUSH4 0xAEA62E3F EQ PUSH2 0x756 JUMPI DUP1 PUSH4 0xB470AADE EQ PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x99FBAB88 EQ PUSH2 0x615 JUMPI DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x715 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x5C1 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5D4 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x60D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B0472F0 EQ PUSH2 0x593 JUMPI DUP1 PUSH4 0x7B0A47EE EQ PUSH2 0x5A6 JUMPI DUP1 PUSH4 0x7C2D6E01 EQ PUSH2 0x5AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42842E0E GT PUSH2 0x28C JUMPI DUP1 PUSH4 0x5E4C911F GT PUSH2 0x235 JUMPI DUP1 PUSH4 0x6FDFF40F GT PUSH2 0x20F JUMPI DUP1 PUSH4 0x6FDFF40F EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x55A JUMPI DUP1 PUSH4 0x74DE4EC4 EQ PUSH2 0x56D JUMPI DUP1 PUSH4 0x75C3FD3F EQ PUSH2 0x580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5E4C911F EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x5FAA65FF EQ PUSH2 0x52C JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x468CC41E GT PUSH2 0x266 JUMPI DUP1 PUSH4 0x468CC41E EQ PUSH2 0x4E0 JUMPI DUP1 PUSH4 0x496CEA98 EQ PUSH2 0x4F3 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42842E0E EQ PUSH2 0x4A7 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x4BA JUMPI DUP1 PUSH4 0x441A3E70 EQ PUSH2 0x4CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x2F745C59 GT PUSH2 0x2D3 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0x340B1336 EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x4231B0BD EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x42F JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x32A JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x98B8858 EQ PUSH2 0x3CE JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x351 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x38E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x364 PUSH2 0x35F CALLDATASIZE PUSH1 0x4 PUSH2 0x36D9 JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x381 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x374E JUMP JUMPDEST PUSH2 0x3A1 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x9E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x3C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x378F JUMP JUMPDEST PUSH2 0xA0F JUMP JUMPDEST STOP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x3ED SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x42A CALLDATASIZE PUSH1 0x4 PUSH2 0x37BB JUMP JUMPDEST PUSH2 0xB45 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x43D CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x460 CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST PUSH2 0x40E PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x378F JUMP JUMPDEST PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0x40E PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x48F CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH2 0xC99 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xD25 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x37BB JUMP JUMPDEST PUSH2 0xD31 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xD4C JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4DB CALLDATASIZE PUSH1 0x4 PUSH2 0x382C JUMP JUMPDEST PUSH2 0xDA9 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x4EE CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x40E PUSH2 0x501 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x514 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xE3F JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x527 CALLDATASIZE PUSH1 0x4 PUSH2 0x389A JUMP JUMPDEST PUSH2 0xEE3 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0xF7A JUMP JUMPDEST PUSH2 0x3A1 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x108C JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x3906 JUMP JUMPDEST PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x568 CALLDATASIZE PUSH1 0x4 PUSH2 0x3906 JUMP JUMPDEST PUSH2 0x115F JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x57B CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x58E CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x1413 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x5A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x382C JUMP JUMPDEST PUSH2 0x1477 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x5BC CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x14CC JUMP JUMPDEST PUSH2 0x3A1 PUSH2 0x5CF CALLDATASIZE PUSH1 0x4 PUSH2 0x382C JUMP JUMPDEST PUSH2 0x15A1 JUMP JUMPDEST PUSH2 0x364 PUSH2 0x5E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x15C0 JUMP JUMPDEST PUSH2 0x6B1 PUSH2 0x623 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 SWAP1 SWAP2 DIV DUP2 AND DUP3 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE PUSH1 0x1 DUP4 ADD SLOAD DUP6 MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP4 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 SWAP1 SWAP2 ADD SLOAD SWAP1 SWAP3 SWAP2 DUP2 AND SWAP1 PUSH6 0xFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 SWAP7 DUP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP9 DUP4 ADD MSTORE DUP7 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP6 SWAP1 SWAP5 ADD MLOAD PUSH1 0x60 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP2 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH6 0xFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x723 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x15CF JUMP JUMPDEST PUSH2 0x40E PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x73E CALLDATASIZE PUSH1 0x4 PUSH2 0x3931 JUMP JUMPDEST PUSH2 0x1608 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x751 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x1613 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x764 CALLDATASIZE PUSH1 0x4 PUSH2 0x389A JUMP JUMPDEST PUSH2 0x1626 JUMP JUMPDEST PUSH2 0x40E PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x780 CALLDATASIZE PUSH1 0x4 PUSH2 0x39CE JUMP JUMPDEST PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x7A4 SWAP1 PUSH11 0x100000000000000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH5 0xFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x7C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x7DB CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x17DE JUMP JUMPDEST PUSH2 0x7F3 PUSH2 0x7EE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x17F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x3AB2 JUMP JUMPDEST PUSH2 0x3A1 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x835 CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH2 0x18BC JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x848 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x18E1 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x880 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x364 PUSH2 0x8BA CALLDATASIZE PUSH1 0x4 PUSH2 0x3AF6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x7A4 SWAP1 PUSH1 0x1 PUSH1 0x78 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x3A1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x12 SLOAD PUSH2 0x921 SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x370 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x941 DUP3 PUSH2 0x19AB JUMP JUMPDEST DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x19E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x965 SWAP1 PUSH2 0x3B24 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x991 SWAP1 PUSH2 0x3B24 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9DE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9B3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9DE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9C1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F3 DUP3 PUSH2 0x1A27 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA1A DUP3 PUSH2 0x108C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xAA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0xAC4 JUMPI POP PUSH2 0xAC4 DUP2 CALLER PUSH2 0x8BA JUMP JUMPDEST PUSH2 0xB36 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 PUSH2 0x1A8B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB4F CALLER DUP3 PUSH2 0x1B06 JUMP JUMPDEST PUSH2 0xBC1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 DUP4 PUSH2 0x1B84 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xBE7 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 PUSH2 0x1DD1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBFC DUP4 PUSH2 0x115F JUMP JUMPDEST DUP3 LT PUSH2 0xC70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74206F6620626F756E6473000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xD17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0xD21 DUP3 DUP3 PUSH2 0x1DF3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH2 0x1E15 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0xDA0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC1AB6DC100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD2E DUP2 PUSH2 0x1F2C JUMP JUMPDEST PUSH2 0xDB1 PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD21 DUP3 DUP3 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDC8 PUSH1 0x10 PUSH2 0x21AF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH2 0xDE3 SWAP1 PUSH2 0x21AF JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xE0E JUMPI DUP2 DUP2 PUSH2 0xDF5 PUSH2 0x1489 JUMP JUMPDEST PUSH2 0xDFF SWAP2 SWAP1 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0xE09 SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST PUSH2 0xE11 JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 PUSH2 0xE33 DUP3 PUSH1 0x1 PUSH2 0x21F0 JUMP JUMPDEST SWAP1 POP PUSH2 0xE11 DUP2 DUP4 PUSH2 0x22FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE4A PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0xEBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7574206F6620626F756E64730000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xED1 JUMPI PUSH2 0xED1 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEEB PUSH2 0x1F8A JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0xF25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x568EFCE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF72 JUMPI PUSH2 0xF6A DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0xF45 JUMPI PUSH2 0xF45 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xF5E JUMPI PUSH2 0xF5E PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x23B7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xF28 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF85 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x78 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND TIMESTAMP DUP2 GT PUSH2 0xFCF JUMPI PUSH1 0x40 MLOAD PUSH32 0xECDD1C2900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH5 0xFFFFFFFFFF TIMESTAMP SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x78 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP6 SUB PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP5 AND MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL DUP1 DUP7 DIV DUP3 AND DUP4 SWAP1 SUB SWAP1 SWAP2 AND MUL SWAP3 SWAP1 SWAP3 AND PUSH15 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x105E DUP2 PUSH2 0x25E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xAC02D07D013AE7C7E3EE940F8DF0877C2AB1103BF87AB258CE31665F7111F092 SWAP1 PUSH1 0x0 SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10FC DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x8A1803707DFD67114623E59E8141EE8D109332DA42C6C3E8212724807E140A6B SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x11DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH2 0x1223 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x126C JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0xC PUSH1 0x14 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1295 SWAP2 SWAP1 PUSH2 0x3BCB JUMP JUMPDEST DUP3 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH2 0x100 SWAP4 SWAP1 SWAP4 EXP SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP3 MUL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE POP PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0x78 SHL DUP3 DIV DUP2 AND PUSH11 0x100000000000000000000 SWAP1 SWAP3 DIV AND LT PUSH2 0x12F0 JUMPI POP DUP1 DUP4 DIV PUSH2 0x132A JUMP JUMPDEST POP PUSH1 0xC SLOAD PUSH5 0xFFFFFFFFFF PUSH11 0x100000000000000000000 DUP3 DIV DUP2 AND PUSH1 0x1 PUSH1 0x78 SHL DUP4 DIV SWAP1 SWAP2 AND SUB PUSH10 0xFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND MUL DUP4 ADD DUP2 SWAP1 DIV JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x134B JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC DUP1 SLOAD TIMESTAMP DUP5 DUP2 ADD PUSH5 0xFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x78 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP3 AND PUSH11 0x100000000000000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000 SWAP1 SWAP4 AND PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP7 AND OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH2 0x13DA DUP5 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xDE88A922E0D3B88B24E9623EFEB464919C6BF9F66857A65E2BFCF2CE87A9433D SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x141E DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH3 0x2A300 DUP3 GT ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xA959CB2CC91580147F93F66FB85DB8F308CFDAEF3989AB5265408FF80EF6FA66 SWAP1 PUSH1 0x20 ADD PUSH2 0x1153 JUMP JUMPDEST PUSH2 0x147F PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD21 DUP3 DUP3 PUSH2 0x23B7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 TIMESTAMP PUSH1 0x1 PUSH1 0x78 SHL SWAP1 SWAP2 DIV PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x14B8 JUMPI PUSH1 0xC SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14BB JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14D7 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xC SLOAD TIMESTAMP PUSH1 0x1 PUSH1 0x78 SHL SWAP1 SWAP2 DIV PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x1522 JUMPI PUSH1 0x40 MLOAD PUSH32 0x85DE62500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x10001 DUP3 LT ISZERO PUSH2 0x1546 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x156C JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xD DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD6EB9CF4D6E2902587C57E3163AAAFDB46E3B3F2086BDFA75C790228930A9D7 SWAP1 PUSH1 0x20 ADD PUSH2 0x1153 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x15B9 SWAP1 DUP4 PUSH2 0x2737 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x965 SWAP1 PUSH2 0x3B24 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D9 PUSH2 0x1F8A JUMP JUMPDEST PUSH1 0x14 PUSH1 0x0 DUP2 SLOAD PUSH2 0x15E8 SWAP1 PUSH2 0x3BFB JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP1 POP PUSH2 0x15F9 CALLER DUP3 PUSH2 0x2743 JUMP JUMPDEST PUSH2 0x1603 DUP2 DUP4 PUSH2 0x23B7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD21 CALLER DUP4 DUP4 PUSH2 0x28E9 JUMP JUMPDEST PUSH2 0x161B PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x0 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x162E PUSH2 0x1F8A JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x1668 JUMPI PUSH1 0x40 MLOAD PUSH32 0x568EFCE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF72 JUMPI PUSH2 0x16AD DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x1688 JUMPI PUSH2 0x1688 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x16A1 JUMPI PUSH2 0x16A1 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x166B JUMP JUMPDEST PUSH2 0x16BF CALLER DUP4 PUSH2 0x1B06 JUMP JUMPDEST PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0x173D DUP5 DUP5 DUP5 DUP5 PUSH2 0x29B7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x174E DUP3 PUSH2 0x1A27 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH32 0xE9DC637500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE9DC6375 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x950 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C15 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x950 SWAP1 PUSH2 0x2A40 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1818 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1824 DUP5 DUP5 PUSH2 0x3C83 JUMP JUMPDEST PUSH2 0x182F SWAP1 PUSH1 0x1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x184C JUMPI PUSH2 0x184C PUSH2 0x395F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1875 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP4 DUP6 GT PUSH2 0x18B3 JUMPI PUSH2 0x188A DUP7 DUP7 PUSH2 0xBF1 JUMP JUMPDEST DUP2 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x189C JUMPI PUSH2 0x189C PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP5 PUSH1 0x1 ADD SWAP5 POP PUSH2 0x1879 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x18D7 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 PUSH2 0x1DF3 JUMP JUMPDEST PUSH2 0x18E9 PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x0 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD21 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1952 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B9 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x2A4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x2A99 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x780E9D6300000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x2AD7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x1ACD DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1B12 DUP4 PUSH2 0x108C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1B59 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE11 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B72 DUP5 PUSH2 0x9E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B97 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1C8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0x1C9B DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2B72 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CAE DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D2A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x3 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x2 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0xD2E DUP2 CALLER PUSH2 0x2BFA JUMP JUMPDEST PUSH2 0x1DDB DUP3 DUP3 PUSH2 0x18F4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB40 SWAP1 DUP3 PUSH2 0x1996 JUMP JUMPDEST PUSH2 0x1DFD DUP3 DUP3 PUSH2 0x2C6F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB40 SWAP1 DUP3 PUSH2 0x2CF2 JUMP JUMPDEST DUP1 CALLER PUSH2 0x1E20 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E47 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND DUP1 DUP6 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 SWAP4 DUP5 SWAP1 DIV DUP2 AND SWAP5 DUP7 ADD DUP6 SWAP1 MSTORE PUSH1 0x10 DUP1 SLOAD DUP1 DUP6 AND DUP5 SWAP1 SUB SWAP1 SWAP5 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP5 AND DUP5 OR DUP6 SWAP1 DIV DUP3 AND SWAP6 SWAP1 SWAP6 SUB AND SWAP1 SWAP3 MUL OR SWAP1 SWAP2 SSTORE PUSH2 0x1ED1 DUP5 PUSH2 0x1F2C JUMP JUMPDEST PUSH2 0x1EE8 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x25E4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0xABD2AB552BC04CDBFA4A54107FA44AC8C9CB06F6D21DA11933AC05A653BE19E9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST DUP1 CALLER PUSH2 0x1F37 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x3 ADD SSTORE PUSH2 0xD21 DUP3 PUSH2 0x2D07 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F94 PUSH2 0x2DB7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x1FA2 DUP4 PUSH2 0x2E04 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x11 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1FBB SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x12 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1FD5 SWAP1 DUP5 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 CALLER PUSH2 0x1FEA DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2011 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 DUP5 GT ISZERO PUSH2 0x2069 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2074 DUP4 PUSH2 0x2E7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2082 DUP3 DUP8 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x20A5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND DUP10 SWAP1 SUB DUP3 AND SWAP1 DUP2 OR DUP1 DUP5 SSTORE DUP8 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DUP2 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP13 DUP11 SUB TIMESTAMP DUP2 DUP2 MUL SWAP6 DUP6 SWAP1 DIV DUP5 AND DUP7 ADD SWAP3 SWAP1 SWAP3 SUB DUP4 AND DUP5 MUL SWAP1 SWAP6 OR SWAP1 SWAP7 SSTORE SWAP3 SWAP1 SWAP4 AND SWAP2 AND SWAP1 SWAP2 MUL OR DUP6 SSTORE PUSH32 0xFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xD0 SHL PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP3 MUL AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 MUL OR PUSH1 0x3 DUP6 ADD SSTORE PUSH1 0x11 SLOAD PUSH1 0x1 DUP6 ADD SSTORE PUSH1 0x12 SLOAD PUSH1 0x2 DUP6 ADD SSTORE PUSH2 0x2177 DUP2 PUSH2 0x25E4 JUMP JUMPDEST DUP2 DUP7 DUP9 PUSH32 0xABD2AB552BC04CDBFA4A54107FA44AC8C9CB06F6D21DA11933AC05A653BE19E9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 DUP3 DIV AND SWAP1 PUSH2 0x21E6 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND TIMESTAMP PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x950 SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x2239 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x950 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD DUP3 ISZERO PUSH2 0x22BD JUMPI PUSH1 0x0 PUSH2 0x224D PUSH2 0x2E97 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x225B DUP4 PUSH2 0x2E04 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x0 ADD SLOAD DUP5 PUSH1 0x11 PUSH1 0x0 ADD SLOAD PUSH2 0x2280 SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST PUSH2 0x228A SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x11 PUSH1 0x1 ADD SLOAD PUSH2 0x22A5 SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST PUSH2 0x22AF SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST DUP2 MSTORE POP SWAP5 POP POP POP POP POP PUSH2 0x950 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x11 SLOAD DUP3 SWAP2 PUSH2 0x22D7 SWAP2 PUSH2 0x3C83 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 ADD SLOAD PUSH1 0x11 PUSH1 0x1 ADD SLOAD PUSH2 0x22F1 SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST SWAP1 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND ISZERO PUSH2 0x23AE JUMPI PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH17 0x100000000000000000000000000000000 SWAP2 PUSH2 0x2349 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x3B74 JUMP JUMPDEST DUP4 SLOAD PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH2 0x237F SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 PUSH2 0x3B74 JUMP JUMPDEST DUP7 MLOAD PUSH2 0x238B SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH2 0x2395 SWAP2 SWAP1 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x239F SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST PUSH2 0x23A9 SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST PUSH2 0x15B9 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 CALLER PUSH2 0x23C2 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x23E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x2401 DUP3 PUSH2 0x2E7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x240F DUP3 DUP7 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x2432 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2451 SWAP1 DUP4 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2499 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 SWAP4 DUP5 SWAP1 DIV DUP2 AND TIMESTAMP DUP1 DUP10 MUL SWAP2 DUP3 ADD DUP4 AND DUP7 MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP7 SSTORE DUP10 SLOAD DUP1 DUP6 AND DUP1 DUP11 ADD SWAP1 SWAP6 AND SWAP4 AND DUP4 OR DUP6 SWAP1 DIV DUP3 AND ADD DUP2 AND SWAP1 SWAP4 MUL OR DUP8 SSTORE PUSH1 0x3 DUP8 ADD DUP1 SLOAD DUP1 DUP5 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL DUP4 DIV AND SWAP1 SWAP6 SUB SWAP1 SWAP3 MUL SWAP4 SWAP1 SWAP4 ADD SWAP1 SWAP2 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH2 0x259D DUP5 PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF TIMESTAMP AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH32 0xFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x11 SLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x12 SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST DUP6 ISZERO PUSH2 0x25AC JUMPI PUSH2 0x25AC DUP7 PUSH2 0x26C5 JUMP JUMPDEST DUP3 DUP7 DUP9 PUSH32 0xC8ACFABCFB3AF3DF23B7B8A1AA1371D042BEE71E137EEEDC881FFA8F3C446261 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x266B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x268F SWAP2 SWAP1 PUSH2 0x3CB2 JUMP JUMPDEST PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH32 0xBFA871C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH2 0x264C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B9 DUP4 DUP4 PUSH2 0x2F16 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x27FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0x280C PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2B72 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x2871 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x294A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x29C2 DUP5 DUP5 DUP5 PUSH2 0x1B84 JUMP JUMPDEST PUSH2 0x29CE DUP5 DUP5 DUP5 DUP5 PUSH2 0x2F40 JUMP JUMPDEST PUSH2 0x173D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x950 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2A91 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x950 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x950 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x19E9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x2B3A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x950 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x950 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EQ PUSH2 0x2BEE JUMPI PUSH1 0x13 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 SWAP2 PUSH2 0x2BB1 SWAP2 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP DUP1 TIMESTAMP GT PUSH2 0x2BEC JUMPI PUSH1 0x40 MLOAD PUSH32 0x85DE62500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH2 0x173D DUP5 DUP5 DUP5 DUP5 PUSH2 0x30C9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD21 JUMPI PUSH2 0x2C2D DUP2 PUSH2 0x3205 JUMP JUMPDEST PUSH2 0x2C38 DUP4 PUSH1 0x20 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2C49 SWAP3 SWAP2 SWAP1 PUSH2 0x3CCF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0xA9F SWAP2 PUSH1 0x4 ADD PUSH2 0x374E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xD21 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B9 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x3440 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D12 DUP3 PUSH2 0x108C JUMP JUMPDEST SWAP1 POP PUSH2 0x2D22 DUP2 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH2 0x2B72 JUMP JUMPDEST PUSH2 0x2D2B DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE PUSH1 0x3 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE DUP8 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE MLOAD SWAP3 SWAP4 POP DUP5 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DC1 PUSH2 0x2E97 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF AND PUSH11 0x100000000000000000000 TIMESTAMP PUSH5 0xFFFFFFFFFF AND MUL OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2E13 PUSH1 0x10 PUSH2 0x21AF JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x2E77 JUMPI DUP1 PUSH17 0x100000000000000000000000000000000 PUSH2 0x2E38 TIMESTAMP DUP8 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x2E42 SWAP2 SWAP1 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x2E4C SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST SWAP3 POP DUP1 PUSH2 0x2E6A PUSH17 0x100000000000000000000000000000000 DUP7 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x2E74 SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E8B DUP4 PUSH1 0x0 PUSH2 0x21F0 JUMP JUMPDEST SWAP1 POP PUSH2 0x15B9 DUP2 DUP5 PUSH2 0x22FB JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x78 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 TIMESTAMP DUP3 LT PUSH2 0x2EB9 JUMPI TIMESTAMP PUSH2 0x2EBB JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0xC SLOAD SWAP1 SWAP2 POP PUSH11 0x100000000000000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP1 DUP3 GT ISZERO PUSH2 0x2EF4 JUMPI PUSH1 0xC SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND DUP2 DUP4 SUB MUL SWAP4 POP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x2F10 JUMPI PUSH2 0x2F10 PUSH2 0x3D50 JUMP JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2F2D JUMPI PUSH2 0x2F2D PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x30BE JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x2F9D SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3D66 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2FD8 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2FD5 SWAP2 DUP2 ADD SWAP1 PUSH2 0x3DA2 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x308B JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x3006 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x300B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3083 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0xE11 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3140 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20636F6E7365637574697665207472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E7366657273206E6F7420737570706F727465640000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x319C JUMPI PUSH2 0x3197 DUP2 PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 ADD SSTORE JUMP JUMPDEST PUSH2 0x31BF JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x31BF JUMPI PUSH2 0x31BF DUP6 DUP3 PUSH2 0x3533 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x31DB JUMPI PUSH2 0x31D6 DUP2 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0x31FE JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x31FE JUMPI PUSH2 0x31FE DUP5 DUP3 PUSH2 0x367F JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x950 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x3226 DUP4 PUSH1 0x2 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x3231 SWAP1 PUSH1 0x2 PUSH2 0x3C9A JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3249 JUMPI PUSH2 0x3249 PUSH2 0x395F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3273 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32AA JUMPI PUSH2 0x32AA PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x330D JUMPI PUSH2 0x330D PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x3349 DUP5 PUSH1 0x2 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x3354 SWAP1 PUSH1 0x1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x33F1 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x3395 JUMPI PUSH2 0x3395 PUSH2 0x3BB5 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x33AB JUMPI PUSH2 0x33AB PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x33EA DUP2 PUSH2 0x3DBF JUMP JUMPDEST SWAP1 POP PUSH2 0x3357 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x15B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x3529 JUMPI PUSH1 0x0 PUSH2 0x3464 PUSH1 0x1 DUP4 PUSH2 0x3C83 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3478 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x34DD JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3498 JUMPI PUSH2 0x3498 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x34BB JUMPI PUSH2 0x34BB PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x34EE JUMPI PUSH2 0x34EE PUSH2 0x3DD6 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x950 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x950 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x3540 DUP5 PUSH2 0x115F JUMP JUMPDEST PUSH2 0x354A SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ PUSH2 0x359D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE DUP2 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP4 MSTORE PUSH1 0x6 DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x35E2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x8 DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x360A JUMPI PUSH2 0x360A PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x362B JUMPI PUSH2 0x362B PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x3663 JUMPI PUSH2 0x3663 PUSH2 0x3DD6 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x368A DUP4 PUSH2 0x115F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE SWAP4 DUP3 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x15B9 DUP2 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3711 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x36F9 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x173D JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x373A DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x36F6 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x15B9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3722 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3773 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x37AD DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x37D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x37DB DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x37EB DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x380F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3821 DUP2 PUSH2 0x377A JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x383F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3860 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x3893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x38B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x38C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38D4 DUP9 DUP4 DUP10 ADD PUSH2 0x384E JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38FA DUP8 DUP3 DUP9 ADD PUSH2 0x384E JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3918 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x15B9 DUP2 PUSH2 0x377A JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x394F DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3821 DUP2 PUSH2 0x3923 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x399E JUMPI PUSH2 0x399E PUSH2 0x395F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x39C0 JUMPI PUSH2 0x39C0 PUSH2 0x395F JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x39E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x39EF DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x39FF DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x3A33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A46 PUSH2 0x3A41 DUP3 PUSH2 0x39A6 JUMP JUMPDEST PUSH2 0x3975 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3A9D DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3AEA JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3ACE JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3B14 DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3821 DUP2 PUSH2 0x377A JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3B38 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3B58 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3B8E JUMPI PUSH2 0x3B8E PUSH2 0x3B5E JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3BB0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x3BF2 JUMPI PUSH2 0x3BF2 PUSH2 0x3B5E JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3C0E JUMPI PUSH2 0x3C0E PUSH2 0x3B5E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x3C4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x3C5D PUSH2 0x3A41 DUP3 PUSH2 0x39A6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3C72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B3 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x36F6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3C95 JUMPI PUSH2 0x3C95 PUSH2 0x3B5E JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3CAD JUMPI PUSH2 0x3CAD PUSH2 0x3B5E JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15B9 DUP2 PUSH2 0x3923 JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x3D07 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x36F6 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x3D44 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x36F6 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3D98 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3722 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15B9 DUP2 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x3DCE JUMPI PUSH2 0x3DCE PUSH2 0x3B5E JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR LOG3 SWAP5 DUP2 0x2D SLT DUP7 0xDD SWAP12 SWAP6 MOD SWAP13 CALLDATALOAD SDIV DUP9 0xDC 0xD4 0x4F 0x49 INVALID AND GAS POP 0xAA STOP GT DUP15 0xD5 DELEGATECALL GASPRICE STATICCALL PUSH32 0x64736F6C634300080F0033000000000000000000000000000000000000000000 ","sourceMap":"2501:31556:49:-:0;;;1445:7:50;1413:39;;6614:7:49;6575:46;;8246:303;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8466:15;8483:8;1390:113:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1390:113:16;;;1464:5;1456;:13;;;;;;:::i;:::-;-1:-1:-1;1479:7:16;:17;1489:7;1479;:17;:::i;:::-;-1:-1:-1;;;;;;;;2780:22:50;;2776:46;;2811:11;;-1:-1:-1;;;2811:11:50;;;;;;;;;;;2776:46;2837:15;-1:-1:-1;;;;;2837:27:50;;2868:1;2837:32;2833:59;;2878:14;;-1:-1:-1;;;2878:14:50;;;;;;;;;;;2833:59;-1:-1:-1;;;;;2905:38:50;;;;2954:40;2072:4:0;2985:8:50;2954:10;:40::i;:::-;3005:33;2072:24;3029:8;3005:10;:33::i;:::-;-1:-1:-1;;8509:13:49::2;:32:::0;;-1:-1:-1;;;;;;8509:32:49::2;-1:-1:-1::0;;;;;8509:32:49;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;2501:31556:49;;-1:-1:-1;2501:31556:49;1978:166:1;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106:18;;;;:12;:18;;;;;;;;:31;;2129:7;;2106:22;;;;;:31;;:::i;:::-;;1978:166;;:::o;7461:233:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7539:149;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;:::-;8383:57;;8297:150;;;;;:::o;2206:404::-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;14:131:60;-1:-1:-1;;;;;89:31:60;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:543::-;262:6;270;278;331:2;319:9;310:7;306:23;302:32;299:52;;;347:1;344;337:12;299:52;379:9;373:16;398:31;423:5;398:31;:::i;:::-;498:2;483:18;;477:25;448:5;;-1:-1:-1;511:33:60;477:25;511:33;:::i;:::-;615:2;600:18;;594:25;563:7;;-1:-1:-1;628:33:60;594:25;628:33;:::i;:::-;680:7;670:17;;;150:543;;;;;:::o;698:127::-;759:10;754:3;750:20;747:1;740:31;790:4;787:1;780:15;814:4;811:1;804:15;830:380;909:1;905:12;;;;952;;;973:61;;1027:4;1019:6;1015:17;1005:27;;973:61;1080:2;1072:6;1069:14;1049:18;1046:38;1043:161;;1126:10;1121:3;1117:20;1114:1;1107:31;1161:4;1158:1;1151:15;1189:4;1186:1;1179:15;1043:161;;830:380;;;:::o;1341:545::-;1443:2;1438:3;1435:11;1432:448;;;1479:1;1504:5;1500:2;1493:17;1549:4;1545:2;1535:19;1619:2;1607:10;1603:19;1600:1;1596:27;1590:4;1586:38;1655:4;1643:10;1640:20;1637:47;;;-1:-1:-1;1678:4:60;1637:47;1733:2;1728:3;1724:12;1721:1;1717:20;1711:4;1707:31;1697:41;;1788:82;1806:2;1799:5;1796:13;1788:82;;;1851:17;;;1832:1;1821:13;1788:82;;;1792:3;;;1341:545;;;:::o;2062:1352::-;2182:10;;-1:-1:-1;;;;;2204:30:60;;2201:56;;;2237:18;;:::i;:::-;2266:97;2356:6;2316:38;2348:4;2342:11;2316:38;:::i;:::-;2310:4;2266:97;:::i;:::-;2418:4;;2482:2;2471:14;;2499:1;2494:663;;;;3201:1;3218:6;3215:89;;;-1:-1:-1;3270:19:60;;;3264:26;3215:89;-1:-1:-1;;2019:1:60;2015:11;;;2011:24;2007:29;1997:40;2043:1;2039:11;;;1994:57;3317:81;;2464:944;;2494:663;1288:1;1281:14;;;1325:4;1312:18;;-1:-1:-1;;2530:20:60;;;2648:236;2662:7;2659:1;2656:14;2648:236;;;2751:19;;;2745:26;2730:42;;2843:27;;;;2811:1;2799:14;;;;2678:19;;2648:236;;;2652:3;2912:6;2903:7;2900:19;2897:201;;;2973:19;;;2967:26;-1:-1:-1;;3056:1:60;3052:14;;;3068:3;3048:24;3044:37;3040:42;3025:58;3010:74;;2897:201;-1:-1:-1;;;;;3144:1:60;3128:14;;;3124:22;3111:36;;-1:-1:-1;2062:1352:60:o;:::-;2501:31556:49;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_27":{"entryPoint":null,"id":27,"parameterSlots":0,"returnSlots":0},"@_addTokenToAllTokensEnumeration_4117":{"entryPoint":null,"id":4117,"parameterSlots":1,"returnSlots":0},"@_addTokenToOwnerEnumeration_4097":{"entryPoint":13951,"id":4097,"parameterSlots":2,"returnSlots":0},"@_add_8447":{"entryPoint":10826,"id":8447,"parameterSlots":2,"returnSlots":1},"@_afterTokenTransfer_3725":{"entryPoint":null,"id":3725,"parameterSlots":4,"returnSlots":0},"@_approve_3591":{"entryPoint":6795,"id":3591,"parameterSlots":2,"returnSlots":0},"@_at_8581":{"entryPoint":12054,"id":8581,"parameterSlots":2,"returnSlots":1},"@_beforeTokenTransfer_16217":{"entryPoint":11122,"id":16217,"parameterSlots":4,"returnSlots":0},"@_beforeTokenTransfer_3712":{"entryPoint":null,"id":3712,"parameterSlots":4,"returnSlots":0},"@_beforeTokenTransfer_4067":{"entryPoint":12489,"id":4067,"parameterSlots":4,"returnSlots":0},"@_burn_16172":{"entryPoint":7980,"id":16172,"parameterSlots":1,"returnSlots":0},"@_burn_3482":{"entryPoint":11527,"id":3482,"parameterSlots":1,"returnSlots":0},"@_checkOnERC721Received_3699":{"entryPoint":12096,"id":3699,"parameterSlots":4,"returnSlots":1},"@_checkRole_131":{"entryPoint":11258,"id":131,"parameterSlots":2,"returnSlots":0},"@_checkRole_92":{"entryPoint":7623,"id":92,"parameterSlots":1,"returnSlots":0},"@_claim_16596":{"entryPoint":11703,"id":16596,"parameterSlots":0,"returnSlots":1},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_earned_16092":{"entryPoint":8955,"id":16092,"parameterSlots":2,"returnSlots":1},"@_emergencyExit_15833":{"entryPoint":7701,"id":15833,"parameterSlots":1,"returnSlots":0},"@_exists_3260":{"entryPoint":null,"id":3260,"parameterSlots":1,"returnSlots":1},"@_getDeltaRewardSummations_15985":{"entryPoint":8688,"id":15985,"parameterSlots":2,"returnSlots":1},"@_getRewardSummationsIncrementations_16028":{"entryPoint":11780,"id":16028,"parameterSlots":1,"returnSlots":2},"@_getValue_16047":{"entryPoint":8623,"id":16047,"parameterSlots":1,"returnSlots":1},"@_grantRole_283":{"entryPoint":6388,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":7633,"id":415,"parameterSlots":2,"returnSlots":0},"@_isApprovedOrOwner_3294":{"entryPoint":6918,"id":3294,"parameterSlots":2,"returnSlots":1},"@_length_8564":{"entryPoint":null,"id":8564,"parameterSlots":1,"returnSlots":1},"@_mint_3415":{"entryPoint":10051,"id":3415,"parameterSlots":2,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_ownerOf_3242":{"entryPoint":null,"id":3242,"parameterSlots":1,"returnSlots":1},"@_pendingRewards_16687":{"entryPoint":11927,"id":16687,"parameterSlots":0,"returnSlots":1},"@_positionPendingRewards_15910":{"entryPoint":11901,"id":15910,"parameterSlots":1,"returnSlots":1},"@_removeTokenFromAllTokensEnumeration_4228":{"entryPoint":13776,"id":4228,"parameterSlots":1,"returnSlots":0},"@_removeTokenFromOwnerEnumeration_4180":{"entryPoint":13619,"id":4180,"parameterSlots":2,"returnSlots":0},"@_remove_8531":{"entryPoint":13376,"id":8531,"parameterSlots":2,"returnSlots":1},"@_requireMinted_3637":{"entryPoint":6695,"id":3637,"parameterSlots":1,"returnSlots":0},"@_revokeRole_314":{"entryPoint":11375,"id":314,"parameterSlots":2,"returnSlots":0},"@_revokeRole_439":{"entryPoint":7667,"id":439,"parameterSlots":2,"returnSlots":0},"@_safeTransfer_3229":{"entryPoint":10679,"id":3229,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_3623":{"entryPoint":10473,"id":3623,"parameterSlots":3,"returnSlots":0},"@_snapshotRewardSummations_15887":{"entryPoint":null,"id":15887,"parameterSlots":1,"returnSlots":0},"@_stake_15639":{"entryPoint":9143,"id":15639,"parameterSlots":2,"returnSlots":0},"@_transferFromCaller_16636":{"entryPoint":9925,"id":16636,"parameterSlots":1,"returnSlots":0},"@_transferToCaller_16614":{"entryPoint":9700,"id":16614,"parameterSlots":1,"returnSlots":0},"@_transfer_3567":{"entryPoint":7044,"id":3567,"parameterSlots":3,"returnSlots":0},"@_updateRewardSummations_15863":{"entryPoint":8074,"id":15863,"parameterSlots":0,"returnSlots":0},"@_withdraw_15782":{"entryPoint":8159,"id":15782,"parameterSlots":2,"returnSlots":0},"@addReward_16561":{"entryPoint":4601,"id":16561,"parameterSlots":1,"returnSlots":0},"@add_8747":{"entryPoint":6550,"id":8747,"parameterSlots":2,"returnSlots":1},"@approvalPauseDuration_15080":{"entryPoint":null,"id":15080,"parameterSlots":0,"returnSlots":0},"@approve_3071":{"entryPoint":2575,"id":3071,"parameterSlots":2,"returnSlots":0},"@at_8843":{"entryPoint":10039,"id":8843,"parameterSlots":2,"returnSlots":1},"@balanceOf_2932":{"entryPoint":4447,"id":2932,"parameterSlots":1,"returnSlots":1},"@burn_15276":{"entryPoint":3404,"id":15276,"parameterSlots":1,"returnSlots":0},"@compound_15237":{"entryPoint":5651,"id":15237,"parameterSlots":1,"returnSlots":0},"@emergencyExit_15287":{"entryPoint":3365,"id":15287,"parameterSlots":1,"returnSlots":0},"@endPeriod_16468":{"entryPoint":3962,"id":16468,"parameterSlots":0,"returnSlots":0},"@getApproved_3089":{"entryPoint":2536,"id":3089,"parameterSlots":1,"returnSlots":1},"@getRoleAdmin_146":{"entryPoint":null,"id":146,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_391":{"entryPoint":6110,"id":391,"parameterSlots":1,"returnSlots":1},"@getRoleMember_375":{"entryPoint":5537,"id":375,"parameterSlots":2,"returnSlots":1},"@grantRole_166":{"entryPoint":3020,"id":166,"parameterSlots":2,"returnSlots":0},"@harvest_15222":{"entryPoint":6369,"id":15222,"parameterSlots":1,"returnSlots":0},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"@isApprovedForAll_3124":{"entryPoint":null,"id":3124,"parameterSlots":2,"returnSlots":1},"@isContract_4305":{"entryPoint":null,"id":4305,"parameterSlots":1,"returnSlots":1},"@lastUpdate_16276":{"entryPoint":null,"id":16276,"parameterSlots":0,"returnSlots":0},"@length_8816":{"entryPoint":10816,"id":8816,"parameterSlots":1,"returnSlots":1},"@mint_15190":{"entryPoint":5583,"id":15190,"parameterSlots":1,"returnSlots":1},"@multiStake_15336":{"entryPoint":3811,"id":15336,"parameterSlots":4,"returnSlots":0},"@multiWithdraw_15385":{"entryPoint":5670,"id":15385,"parameterSlots":4,"returnSlots":0},"@name_2970":{"entryPoint":2390,"id":2970,"parameterSlots":0,"returnSlots":1},"@ownerOf_2960":{"entryPoint":4236,"id":2960,"parameterSlots":1,"returnSlots":1},"@periodDuration_16286":{"entryPoint":null,"id":16286,"parameterSlots":0,"returnSlots":0},"@periodFinish_16279":{"entryPoint":null,"id":16279,"parameterSlots":0,"returnSlots":0},"@positionPendingRewards_15495":{"entryPoint":3609,"id":15495,"parameterSlots":1,"returnSlots":1},"@positionRewardRate_15466":{"entryPoint":3515,"id":15466,"parameterSlots":1,"returnSlots":1},"@positions_15064":{"entryPoint":null,"id":15064,"parameterSlots":0,"returnSlots":0},"@remove_8774":{"entryPoint":11506,"id":8774,"parameterSlots":2,"returnSlots":1},"@renounceRole_209":{"entryPoint":3225,"id":209,"parameterSlots":2,"returnSlots":0},"@revokeRole_186":{"entryPoint":6332,"id":186,"parameterSlots":2,"returnSlots":0},"@rewardRate_16576":{"entryPoint":5257,"id":16576,"parameterSlots":0,"returnSlots":1},"@rewardSummationsStored_15076":{"entryPoint":null,"id":15076,"parameterSlots":0,"returnSlots":0},"@rewardsToken_16290":{"entryPoint":null,"id":16290,"parameterSlots":0,"returnSlots":0},"@safeTransferFrom_3170":{"entryPoint":3377,"id":3170,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_3200":{"entryPoint":5813,"id":3200,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_3106":{"entryPoint":5640,"id":3106,"parameterSlots":2,"returnSlots":0},"@setApprovalPauseDuration_15410":{"entryPoint":5139,"id":15410,"parameterSlots":1,"returnSlots":0},"@setPeriodDuration_16415":{"entryPoint":5324,"id":16415,"parameterSlots":1,"returnSlots":0},"@setTokenMetadata_15429":{"entryPoint":4337,"id":15429,"parameterSlots":1,"returnSlots":0},"@stake_15207":{"entryPoint":5239,"id":15207,"parameterSlots":2,"returnSlots":0},"@supportsInterface_16259":{"entryPoint":2358,"id":16259,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2908":{"entryPoint":10967,"id":2908,"parameterSlots":1,"returnSlots":1},"@supportsInterface_356":{"entryPoint":6571,"id":356,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3925":{"entryPoint":6633,"id":3925,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5975":{"entryPoint":null,"id":5975,"parameterSlots":1,"returnSlots":1},"@supportsInterface_60":{"entryPoint":10905,"id":60,"parameterSlots":1,"returnSlots":1},"@symbol_2980":{"entryPoint":5568,"id":2980,"parameterSlots":0,"returnSlots":1},"@toHexString_4914":{"entryPoint":12823,"id":4914,"parameterSlots":2,"returnSlots":1},"@toHexString_4934":{"entryPoint":12805,"id":4934,"parameterSlots":1,"returnSlots":1},"@tokenByIndex_3987":{"entryPoint":3647,"id":3987,"parameterSlots":1,"returnSlots":1},"@tokenMetadata_15068":{"entryPoint":null,"id":15068,"parameterSlots":0,"returnSlots":0},"@tokenOfOwnerByIndex_3953":{"entryPoint":3057,"id":3953,"parameterSlots":2,"returnSlots":1},"@tokenURI_16238":{"entryPoint":5955,"id":16238,"parameterSlots":1,"returnSlots":1},"@tokensOfOwnerByIndex_16151":{"entryPoint":6133,"id":16151,"parameterSlots":3,"returnSlots":1},"@totalRewardAdded_16282":{"entryPoint":null,"id":16282,"parameterSlots":0,"returnSlots":0},"@totalSupply_3964":{"entryPoint":null,"id":3964,"parameterSlots":0,"returnSlots":1},"@totalValueVariables_15072":{"entryPoint":null,"id":15072,"parameterSlots":0,"returnSlots":0},"@transferFrom_3151":{"entryPoint":2885,"id":3151,"parameterSlots":3,"returnSlots":0},"@withdraw_15254":{"entryPoint":3497,"id":15254,"parameterSlots":2,"returnSlots":0},"abi_decode_array_uint256_dyn_calldata":{"entryPoint":14414,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":15094,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":14267,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":14798,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":14641,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":14223,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":14973,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":14490,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":15538,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":14332,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":14041,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":15778,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_ITokenMetadata_$15030":{"entryPoint":14598,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":15381,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":14177,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":14380,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_string":{"entryPoint":14114,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":15567,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":15718,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":15026,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ITokenMetadata_$15030__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_PangolinStakingPositions_$16260_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":14158,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_ValueVariables_$15040_memory_ptr_t_struct$_RewardSummations_$15045_memory_ptr_t_uint160_t_uint48_t_uint48__to_t_struct$_ValueVariables_$15040_memory_ptr_t_struct$_RewardSummations_$15045_memory_ptr_t_uint160_t_uint48_t_uint48__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint40__to_t_uint40__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint96_t_uint160__to_t_uint96_t_uint160__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":14709,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":14758,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":15514,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint96":{"entryPoint":15307,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":15251,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":15220,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":15491,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory":{"entryPoint":14070,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":15807,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":15140,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":15355,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x01":{"entryPoint":15696,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":15198,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":15830,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":15285,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":14687,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":14202,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":14627,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":14019,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24475:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:133:60","statements":[{"body":{"nodeType":"YulBlock","src":"169:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:60"},"nodeType":"YulFunctionCall","src":"171:12:60"},"nodeType":"YulExpressionStatement","src":"171:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"99:66:60","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:60"},"nodeType":"YulFunctionCall","src":"88:78:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:60"},"nodeType":"YulFunctionCall","src":"78:89:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:60"},"nodeType":"YulFunctionCall","src":"71:97:60"},"nodeType":"YulIf","src":"68:117:60"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"265:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"311:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"323:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"313:6:60"},"nodeType":"YulFunctionCall","src":"313:12:60"},"nodeType":"YulExpressionStatement","src":"313:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"286:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"295:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"282:3:60"},"nodeType":"YulFunctionCall","src":"282:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"307:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"278:3:60"},"nodeType":"YulFunctionCall","src":"278:32:60"},"nodeType":"YulIf","src":"275:52:60"},{"nodeType":"YulVariableDeclaration","src":"336:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"362:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"349:12:60"},"nodeType":"YulFunctionCall","src":"349:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"340:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"405:5:60"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"381:23:60"},"nodeType":"YulFunctionCall","src":"381:30:60"},"nodeType":"YulExpressionStatement","src":"381:30:60"},{"nodeType":"YulAssignment","src":"420:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"430:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"420:6:60"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"231:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"242:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"254:6:60","type":""}],"src":"196:245:60"},{"body":{"nodeType":"YulBlock","src":"541:92:60","statements":[{"nodeType":"YulAssignment","src":"551:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"563:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"574:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"559:3:60"},"nodeType":"YulFunctionCall","src":"559:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"551:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"593:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"618:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"611:6:60"},"nodeType":"YulFunctionCall","src":"611:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"604:6:60"},"nodeType":"YulFunctionCall","src":"604:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"586:6:60"},"nodeType":"YulFunctionCall","src":"586:41:60"},"nodeType":"YulExpressionStatement","src":"586:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"510:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"521:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"532:4:60","type":""}],"src":"446:187:60"},{"body":{"nodeType":"YulBlock","src":"691:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"701:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"710:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"705:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"770:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"795:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"800:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"791:3:60"},"nodeType":"YulFunctionCall","src":"791:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"814:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"819:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:60"},"nodeType":"YulFunctionCall","src":"810:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"804:5:60"},"nodeType":"YulFunctionCall","src":"804:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"784:6:60"},"nodeType":"YulFunctionCall","src":"784:39:60"},"nodeType":"YulExpressionStatement","src":"784:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"731:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"734:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"728:2:60"},"nodeType":"YulFunctionCall","src":"728:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"742:19:60","statements":[{"nodeType":"YulAssignment","src":"744:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"753:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"756:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"749:3:60"},"nodeType":"YulFunctionCall","src":"749:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"744:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"724:3:60","statements":[]},"src":"720:113:60"},{"body":{"nodeType":"YulBlock","src":"859:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"872:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"877:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"868:3:60"},"nodeType":"YulFunctionCall","src":"868:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"886:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"861:6:60"},"nodeType":"YulFunctionCall","src":"861:27:60"},"nodeType":"YulExpressionStatement","src":"861:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"848:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"851:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"845:2:60"},"nodeType":"YulFunctionCall","src":"845:13:60"},"nodeType":"YulIf","src":"842:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"669:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"674:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"679:6:60","type":""}],"src":"638:258:60"},{"body":{"nodeType":"YulBlock","src":"951:267:60","statements":[{"nodeType":"YulVariableDeclaration","src":"961:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"981:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"975:5:60"},"nodeType":"YulFunctionCall","src":"975:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"965:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1003:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"1008:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"996:6:60"},"nodeType":"YulFunctionCall","src":"996:19:60"},"nodeType":"YulExpressionStatement","src":"996:19:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1050:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1057:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1046:3:60"},"nodeType":"YulFunctionCall","src":"1046:16:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1068:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1073:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1064:3:60"},"nodeType":"YulFunctionCall","src":"1064:14:60"},{"name":"length","nodeType":"YulIdentifier","src":"1080:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1024:21:60"},"nodeType":"YulFunctionCall","src":"1024:63:60"},"nodeType":"YulExpressionStatement","src":"1024:63:60"},{"nodeType":"YulAssignment","src":"1096:116:60","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1111:3:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1124:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1120:3:60"},"nodeType":"YulFunctionCall","src":"1120:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"1137:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1116:3:60"},"nodeType":"YulFunctionCall","src":"1116:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1107:3:60"},"nodeType":"YulFunctionCall","src":"1107:98:60"},{"kind":"number","nodeType":"YulLiteral","src":"1207:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1103:3:60"},"nodeType":"YulFunctionCall","src":"1103:109:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1096:3:60"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"928:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"935:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"943:3:60","type":""}],"src":"901:317:60"},{"body":{"nodeType":"YulBlock","src":"1344:99:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1361:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1372:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1354:6:60"},"nodeType":"YulFunctionCall","src":"1354:21:60"},"nodeType":"YulExpressionStatement","src":"1354:21:60"},{"nodeType":"YulAssignment","src":"1384:53:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1410:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1422:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1433:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1418:3:60"},"nodeType":"YulFunctionCall","src":"1418:18:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1392:17:60"},"nodeType":"YulFunctionCall","src":"1392:45:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1384:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1313:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1324:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1335:4:60","type":""}],"src":"1223:220:60"},{"body":{"nodeType":"YulBlock","src":"1518:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"1564:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1573:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1576:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1566:6:60"},"nodeType":"YulFunctionCall","src":"1566:12:60"},"nodeType":"YulExpressionStatement","src":"1566:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1539:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1548:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1535:3:60"},"nodeType":"YulFunctionCall","src":"1535:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1560:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1531:3:60"},"nodeType":"YulFunctionCall","src":"1531:32:60"},"nodeType":"YulIf","src":"1528:52:60"},{"nodeType":"YulAssignment","src":"1589:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1612:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1599:12:60"},"nodeType":"YulFunctionCall","src":"1599:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1589:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1484:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1495:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1507:6:60","type":""}],"src":"1448:180:60"},{"body":{"nodeType":"YulBlock","src":"1734:125:60","statements":[{"nodeType":"YulAssignment","src":"1744:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1756:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1767:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1752:3:60"},"nodeType":"YulFunctionCall","src":"1752:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1744:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1786:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1801:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1809:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1797:3:60"},"nodeType":"YulFunctionCall","src":"1797:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1779:6:60"},"nodeType":"YulFunctionCall","src":"1779:74:60"},"nodeType":"YulExpressionStatement","src":"1779:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1703:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1714:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1725:4:60","type":""}],"src":"1633:226:60"},{"body":{"nodeType":"YulBlock","src":"1909:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"1996:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2005:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2008:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1998:6:60"},"nodeType":"YulFunctionCall","src":"1998:12:60"},"nodeType":"YulExpressionStatement","src":"1998:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1932:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1943:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1950:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1939:3:60"},"nodeType":"YulFunctionCall","src":"1939:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1929:2:60"},"nodeType":"YulFunctionCall","src":"1929:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1922:6:60"},"nodeType":"YulFunctionCall","src":"1922:73:60"},"nodeType":"YulIf","src":"1919:93:60"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1898:5:60","type":""}],"src":"1864:154:60"},{"body":{"nodeType":"YulBlock","src":"2110:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"2156:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2165:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2168:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2158:6:60"},"nodeType":"YulFunctionCall","src":"2158:12:60"},"nodeType":"YulExpressionStatement","src":"2158:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2131:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2140:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2127:3:60"},"nodeType":"YulFunctionCall","src":"2127:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2152:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2123:3:60"},"nodeType":"YulFunctionCall","src":"2123:32:60"},"nodeType":"YulIf","src":"2120:52:60"},{"nodeType":"YulVariableDeclaration","src":"2181:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2207:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2194:12:60"},"nodeType":"YulFunctionCall","src":"2194:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2185:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2251:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2226:24:60"},"nodeType":"YulFunctionCall","src":"2226:31:60"},"nodeType":"YulExpressionStatement","src":"2226:31:60"},{"nodeType":"YulAssignment","src":"2266:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"2276:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2266:6:60"}]},{"nodeType":"YulAssignment","src":"2290:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2317:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2328:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2313:3:60"},"nodeType":"YulFunctionCall","src":"2313:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2300:12:60"},"nodeType":"YulFunctionCall","src":"2300:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2290:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2068:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2079:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2091:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2099:6:60","type":""}],"src":"2023:315:60"},{"body":{"nodeType":"YulBlock","src":"2442:109:60","statements":[{"nodeType":"YulAssignment","src":"2452:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2464:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2475:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2460:3:60"},"nodeType":"YulFunctionCall","src":"2460:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2452:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2494:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2509:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2517:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2505:3:60"},"nodeType":"YulFunctionCall","src":"2505:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2487:6:60"},"nodeType":"YulFunctionCall","src":"2487:58:60"},"nodeType":"YulExpressionStatement","src":"2487:58:60"}]},"name":"abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2411:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2422:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2433:4:60","type":""}],"src":"2343:208:60"},{"body":{"nodeType":"YulBlock","src":"2657:76:60","statements":[{"nodeType":"YulAssignment","src":"2667:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2679:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2690:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2675:3:60"},"nodeType":"YulFunctionCall","src":"2675:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2667:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"2720:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2702:6:60"},"nodeType":"YulFunctionCall","src":"2702:25:60"},"nodeType":"YulExpressionStatement","src":"2702:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2626:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2637:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2648:4:60","type":""}],"src":"2556:177:60"},{"body":{"nodeType":"YulBlock","src":"2842:352:60","statements":[{"body":{"nodeType":"YulBlock","src":"2888:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2897:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2900:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2890:6:60"},"nodeType":"YulFunctionCall","src":"2890:12:60"},"nodeType":"YulExpressionStatement","src":"2890:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2863:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2872:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2859:3:60"},"nodeType":"YulFunctionCall","src":"2859:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2884:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2855:3:60"},"nodeType":"YulFunctionCall","src":"2855:32:60"},"nodeType":"YulIf","src":"2852:52:60"},{"nodeType":"YulVariableDeclaration","src":"2913:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2939:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2926:12:60"},"nodeType":"YulFunctionCall","src":"2926:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2917:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2983:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2958:24:60"},"nodeType":"YulFunctionCall","src":"2958:31:60"},"nodeType":"YulExpressionStatement","src":"2958:31:60"},{"nodeType":"YulAssignment","src":"2998:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"3008:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2998:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"3022:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3054:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3065:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3050:3:60"},"nodeType":"YulFunctionCall","src":"3050:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3037:12:60"},"nodeType":"YulFunctionCall","src":"3037:32:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3026:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3103:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3078:24:60"},"nodeType":"YulFunctionCall","src":"3078:33:60"},"nodeType":"YulExpressionStatement","src":"3078:33:60"},{"nodeType":"YulAssignment","src":"3120:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"3130:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3120:6:60"}]},{"nodeType":"YulAssignment","src":"3146:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3173:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3184:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3169:3:60"},"nodeType":"YulFunctionCall","src":"3169:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3156:12:60"},"nodeType":"YulFunctionCall","src":"3156:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3146:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2792:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2803:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2815:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2823:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2831:6:60","type":""}],"src":"2738:456:60"},{"body":{"nodeType":"YulBlock","src":"3269:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"3315:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3324:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3327:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3317:6:60"},"nodeType":"YulFunctionCall","src":"3317:12:60"},"nodeType":"YulExpressionStatement","src":"3317:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3290:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3299:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3286:3:60"},"nodeType":"YulFunctionCall","src":"3286:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3311:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3282:3:60"},"nodeType":"YulFunctionCall","src":"3282:32:60"},"nodeType":"YulIf","src":"3279:52:60"},{"nodeType":"YulAssignment","src":"3340:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3363:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3350:12:60"},"nodeType":"YulFunctionCall","src":"3350:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3340:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3235:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3246:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3258:6:60","type":""}],"src":"3199:180:60"},{"body":{"nodeType":"YulBlock","src":"3485:76:60","statements":[{"nodeType":"YulAssignment","src":"3495:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3507:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3518:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3503:3:60"},"nodeType":"YulFunctionCall","src":"3503:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3495:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3537:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"3548:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3530:6:60"},"nodeType":"YulFunctionCall","src":"3530:25:60"},"nodeType":"YulExpressionStatement","src":"3530:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3454:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3465:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3476:4:60","type":""}],"src":"3384:177:60"},{"body":{"nodeType":"YulBlock","src":"3653:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"3699:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3708:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3711:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3701:6:60"},"nodeType":"YulFunctionCall","src":"3701:12:60"},"nodeType":"YulExpressionStatement","src":"3701:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3674:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3683:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3670:3:60"},"nodeType":"YulFunctionCall","src":"3670:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3695:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3666:3:60"},"nodeType":"YulFunctionCall","src":"3666:32:60"},"nodeType":"YulIf","src":"3663:52:60"},{"nodeType":"YulAssignment","src":"3724:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3747:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3734:12:60"},"nodeType":"YulFunctionCall","src":"3734:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3724:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"3766:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3796:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3807:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:60"},"nodeType":"YulFunctionCall","src":"3792:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3779:12:60"},"nodeType":"YulFunctionCall","src":"3779:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3770:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3845:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3820:24:60"},"nodeType":"YulFunctionCall","src":"3820:31:60"},"nodeType":"YulExpressionStatement","src":"3820:31:60"},{"nodeType":"YulAssignment","src":"3860:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"3870:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3860:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3611:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3622:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3634:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3642:6:60","type":""}],"src":"3566:315:60"},{"body":{"nodeType":"YulBlock","src":"3973:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"4019:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4028:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4031:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4021:6:60"},"nodeType":"YulFunctionCall","src":"4021:12:60"},"nodeType":"YulExpressionStatement","src":"4021:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3994:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4003:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3990:3:60"},"nodeType":"YulFunctionCall","src":"3990:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4015:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3986:3:60"},"nodeType":"YulFunctionCall","src":"3986:32:60"},"nodeType":"YulIf","src":"3983:52:60"},{"nodeType":"YulAssignment","src":"4044:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4067:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4054:12:60"},"nodeType":"YulFunctionCall","src":"4054:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4044:6:60"}]},{"nodeType":"YulAssignment","src":"4086:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4113:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4124:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4109:3:60"},"nodeType":"YulFunctionCall","src":"4109:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4096:12:60"},"nodeType":"YulFunctionCall","src":"4096:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4086:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3931:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3942:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3954:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3962:6:60","type":""}],"src":"3886:248:60"},{"body":{"nodeType":"YulBlock","src":"4223:283:60","statements":[{"body":{"nodeType":"YulBlock","src":"4272:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4281:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4284:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4274:6:60"},"nodeType":"YulFunctionCall","src":"4274:12:60"},"nodeType":"YulExpressionStatement","src":"4274:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4251:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4259:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4247:3:60"},"nodeType":"YulFunctionCall","src":"4247:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"4266:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4243:3:60"},"nodeType":"YulFunctionCall","src":"4243:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4236:6:60"},"nodeType":"YulFunctionCall","src":"4236:35:60"},"nodeType":"YulIf","src":"4233:55:60"},{"nodeType":"YulAssignment","src":"4297:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4320:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4307:12:60"},"nodeType":"YulFunctionCall","src":"4307:20:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4297:6:60"}]},{"body":{"nodeType":"YulBlock","src":"4370:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4379:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4382:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4372:6:60"},"nodeType":"YulFunctionCall","src":"4372:12:60"},"nodeType":"YulExpressionStatement","src":"4372:12:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4342:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4350:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4339:2:60"},"nodeType":"YulFunctionCall","src":"4339:30:60"},"nodeType":"YulIf","src":"4336:50:60"},{"nodeType":"YulAssignment","src":"4395:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4411:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4419:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4407:3:60"},"nodeType":"YulFunctionCall","src":"4407:17:60"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"4395:8:60"}]},{"body":{"nodeType":"YulBlock","src":"4484:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4493:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4496:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4486:6:60"},"nodeType":"YulFunctionCall","src":"4486:12:60"},"nodeType":"YulExpressionStatement","src":"4486:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4447:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4459:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"4462:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4455:3:60"},"nodeType":"YulFunctionCall","src":"4455:14:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4443:3:60"},"nodeType":"YulFunctionCall","src":"4443:27:60"},{"kind":"number","nodeType":"YulLiteral","src":"4472:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4439:3:60"},"nodeType":"YulFunctionCall","src":"4439:38:60"},{"name":"end","nodeType":"YulIdentifier","src":"4479:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4436:2:60"},"nodeType":"YulFunctionCall","src":"4436:47:60"},"nodeType":"YulIf","src":"4433:67:60"}]},"name":"abi_decode_array_uint256_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"4186:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"4194:3:60","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"4202:8:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"4212:6:60","type":""}],"src":"4139:367:60"},{"body":{"nodeType":"YulBlock","src":"4668:616:60","statements":[{"body":{"nodeType":"YulBlock","src":"4714:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4723:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4726:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4716:6:60"},"nodeType":"YulFunctionCall","src":"4716:12:60"},"nodeType":"YulExpressionStatement","src":"4716:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4689:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4698:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4685:3:60"},"nodeType":"YulFunctionCall","src":"4685:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4710:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4681:3:60"},"nodeType":"YulFunctionCall","src":"4681:32:60"},"nodeType":"YulIf","src":"4678:52:60"},{"nodeType":"YulVariableDeclaration","src":"4739:37:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4766:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4753:12:60"},"nodeType":"YulFunctionCall","src":"4753:23:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4743:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4785:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4795:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4789:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4840:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4849:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4852:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4842:6:60"},"nodeType":"YulFunctionCall","src":"4842:12:60"},"nodeType":"YulExpressionStatement","src":"4842:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4828:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4836:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4825:2:60"},"nodeType":"YulFunctionCall","src":"4825:14:60"},"nodeType":"YulIf","src":"4822:34:60"},{"nodeType":"YulVariableDeclaration","src":"4865:96:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4933:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"4944:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4929:3:60"},"nodeType":"YulFunctionCall","src":"4929:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4953:7:60"}],"functionName":{"name":"abi_decode_array_uint256_dyn_calldata","nodeType":"YulIdentifier","src":"4891:37:60"},"nodeType":"YulFunctionCall","src":"4891:70:60"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"4869:8:60","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"4879:8:60","type":""}]},{"nodeType":"YulAssignment","src":"4970:18:60","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"4980:8:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4970:6:60"}]},{"nodeType":"YulAssignment","src":"4997:18:60","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5007:8:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4997:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"5024:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5057:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5068:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5053:3:60"},"nodeType":"YulFunctionCall","src":"5053:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5040:12:60"},"nodeType":"YulFunctionCall","src":"5040:32:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5028:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5101:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5110:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5113:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5103:6:60"},"nodeType":"YulFunctionCall","src":"5103:12:60"},"nodeType":"YulExpressionStatement","src":"5103:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5087:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5097:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5084:2:60"},"nodeType":"YulFunctionCall","src":"5084:16:60"},"nodeType":"YulIf","src":"5081:36:60"},{"nodeType":"YulVariableDeclaration","src":"5126:98:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5194:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5205:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5190:3:60"},"nodeType":"YulFunctionCall","src":"5190:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5216:7:60"}],"functionName":{"name":"abi_decode_array_uint256_dyn_calldata","nodeType":"YulIdentifier","src":"5152:37:60"},"nodeType":"YulFunctionCall","src":"5152:72:60"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5130:8:60","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5140:8:60","type":""}]},{"nodeType":"YulAssignment","src":"5233:18:60","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5243:8:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5233:6:60"}]},{"nodeType":"YulAssignment","src":"5260:18:60","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5270:8:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5260:6:60"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4610:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4621:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4633:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4641:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4649:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4657:6:60","type":""}],"src":"4511:773:60"},{"body":{"nodeType":"YulBlock","src":"5383:177:60","statements":[{"body":{"nodeType":"YulBlock","src":"5429:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5438:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5441:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5431:6:60"},"nodeType":"YulFunctionCall","src":"5431:12:60"},"nodeType":"YulExpressionStatement","src":"5431:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5404:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5413:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5400:3:60"},"nodeType":"YulFunctionCall","src":"5400:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5425:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5396:3:60"},"nodeType":"YulFunctionCall","src":"5396:32:60"},"nodeType":"YulIf","src":"5393:52:60"},{"nodeType":"YulVariableDeclaration","src":"5454:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5480:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5467:12:60"},"nodeType":"YulFunctionCall","src":"5467:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5458:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5524:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5499:24:60"},"nodeType":"YulFunctionCall","src":"5499:31:60"},"nodeType":"YulExpressionStatement","src":"5499:31:60"},{"nodeType":"YulAssignment","src":"5539:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"5549:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5539:6:60"}]}]},"name":"abi_decode_tuple_t_contract$_ITokenMetadata_$15030","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5349:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5360:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5372:6:60","type":""}],"src":"5289:271:60"},{"body":{"nodeType":"YulBlock","src":"5635:177:60","statements":[{"body":{"nodeType":"YulBlock","src":"5681:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5690:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5693:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5683:6:60"},"nodeType":"YulFunctionCall","src":"5683:12:60"},"nodeType":"YulExpressionStatement","src":"5683:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5656:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5665:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5652:3:60"},"nodeType":"YulFunctionCall","src":"5652:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5677:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5648:3:60"},"nodeType":"YulFunctionCall","src":"5648:32:60"},"nodeType":"YulIf","src":"5645:52:60"},{"nodeType":"YulVariableDeclaration","src":"5706:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5732:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5719:12:60"},"nodeType":"YulFunctionCall","src":"5719:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5710:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5776:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5751:24:60"},"nodeType":"YulFunctionCall","src":"5751:31:60"},"nodeType":"YulExpressionStatement","src":"5751:31:60"},{"nodeType":"YulAssignment","src":"5791:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"5801:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5791:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5601:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5612:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5624:6:60","type":""}],"src":"5565:247:60"},{"body":{"nodeType":"YulBlock","src":"5904:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"5950:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5959:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5962:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5952:6:60"},"nodeType":"YulFunctionCall","src":"5952:12:60"},"nodeType":"YulExpressionStatement","src":"5952:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5925:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5934:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5921:3:60"},"nodeType":"YulFunctionCall","src":"5921:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5946:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5917:3:60"},"nodeType":"YulFunctionCall","src":"5917:32:60"},"nodeType":"YulIf","src":"5914:52:60"},{"nodeType":"YulAssignment","src":"5975:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5998:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5985:12:60"},"nodeType":"YulFunctionCall","src":"5985:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5975:6:60"}]},{"nodeType":"YulAssignment","src":"6017:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6044:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6055:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6040:3:60"},"nodeType":"YulFunctionCall","src":"6040:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6027:12:60"},"nodeType":"YulFunctionCall","src":"6027:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6017:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5862:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5873:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5885:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5893:6:60","type":""}],"src":"5817:248:60"},{"body":{"nodeType":"YulBlock","src":"6415:594:60","statements":[{"nodeType":"YulAssignment","src":"6425:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6437:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6448:3:60","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6433:3:60"},"nodeType":"YulFunctionCall","src":"6433:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6425:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6468:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6489:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6483:5:60"},"nodeType":"YulFunctionCall","src":"6483:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"6498:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6479:3:60"},"nodeType":"YulFunctionCall","src":"6479:46:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6461:6:60"},"nodeType":"YulFunctionCall","src":"6461:65:60"},"nodeType":"YulExpressionStatement","src":"6461:65:60"},{"nodeType":"YulVariableDeclaration","src":"6535:44:60","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6565:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6573:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6561:3:60"},"nodeType":"YulFunctionCall","src":"6561:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6555:5:60"},"nodeType":"YulFunctionCall","src":"6555:24:60"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6539:12:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6588:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6598:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6592:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6660:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6671:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6656:3:60"},"nodeType":"YulFunctionCall","src":"6656:20:60"},{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6682:12:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6696:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6678:3:60"},"nodeType":"YulFunctionCall","src":"6678:21:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6649:6:60"},"nodeType":"YulFunctionCall","src":"6649:51:60"},"nodeType":"YulExpressionStatement","src":"6649:51:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6720:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6731:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6716:3:60"},"nodeType":"YulFunctionCall","src":"6716:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6742:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6736:5:60"},"nodeType":"YulFunctionCall","src":"6736:13:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6709:6:60"},"nodeType":"YulFunctionCall","src":"6709:41:60"},"nodeType":"YulExpressionStatement","src":"6709:41:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6770:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6781:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6766:3:60"},"nodeType":"YulFunctionCall","src":"6766:18:60"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6796:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6804:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6792:3:60"},"nodeType":"YulFunctionCall","src":"6792:17:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6786:5:60"},"nodeType":"YulFunctionCall","src":"6786:24:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6759:6:60"},"nodeType":"YulFunctionCall","src":"6759:52:60"},"nodeType":"YulExpressionStatement","src":"6759:52:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6831:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6842:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6827:3:60"},"nodeType":"YulFunctionCall","src":"6827:19:60"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6852:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6860:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6848:3:60"},"nodeType":"YulFunctionCall","src":"6848:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6820:6:60"},"nodeType":"YulFunctionCall","src":"6820:44:60"},"nodeType":"YulExpressionStatement","src":"6820:44:60"},{"nodeType":"YulVariableDeclaration","src":"6873:24:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6883:14:60","type":"","value":"0xffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6877:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6917:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6928:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6913:3:60"},"nodeType":"YulFunctionCall","src":"6913:19:60"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6938:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"6946:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6934:3:60"},"nodeType":"YulFunctionCall","src":"6934:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6906:6:60"},"nodeType":"YulFunctionCall","src":"6906:44:60"},"nodeType":"YulExpressionStatement","src":"6906:44:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6970:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6981:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6966:3:60"},"nodeType":"YulFunctionCall","src":"6966:19:60"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6991:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"6999:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6987:3:60"},"nodeType":"YulFunctionCall","src":"6987:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6959:6:60"},"nodeType":"YulFunctionCall","src":"6959:44:60"},"nodeType":"YulExpressionStatement","src":"6959:44:60"}]},"name":"abi_encode_tuple_t_struct$_ValueVariables_$15040_memory_ptr_t_struct$_RewardSummations_$15045_memory_ptr_t_uint160_t_uint48_t_uint48__to_t_struct$_ValueVariables_$15040_memory_ptr_t_struct$_RewardSummations_$15045_memory_ptr_t_uint160_t_uint48_t_uint48__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6352:9:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6363:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6371:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6379:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6387:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6395:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6406:4:60","type":""}],"src":"6070:939:60"},{"body":{"nodeType":"YulBlock","src":"7056:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"7110:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7119:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7122:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7112:6:60"},"nodeType":"YulFunctionCall","src":"7112:12:60"},"nodeType":"YulExpressionStatement","src":"7112:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7079:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7100:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7093:6:60"},"nodeType":"YulFunctionCall","src":"7093:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7086:6:60"},"nodeType":"YulFunctionCall","src":"7086:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7076:2:60"},"nodeType":"YulFunctionCall","src":"7076:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7069:6:60"},"nodeType":"YulFunctionCall","src":"7069:40:60"},"nodeType":"YulIf","src":"7066:60:60"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7045:5:60","type":""}],"src":"7014:118:60"},{"body":{"nodeType":"YulBlock","src":"7221:298:60","statements":[{"body":{"nodeType":"YulBlock","src":"7267:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7276:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7279:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7269:6:60"},"nodeType":"YulFunctionCall","src":"7269:12:60"},"nodeType":"YulExpressionStatement","src":"7269:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7242:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"7251:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7238:3:60"},"nodeType":"YulFunctionCall","src":"7238:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"7263:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7234:3:60"},"nodeType":"YulFunctionCall","src":"7234:32:60"},"nodeType":"YulIf","src":"7231:52:60"},{"nodeType":"YulVariableDeclaration","src":"7292:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7318:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7305:12:60"},"nodeType":"YulFunctionCall","src":"7305:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7296:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7362:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7337:24:60"},"nodeType":"YulFunctionCall","src":"7337:31:60"},"nodeType":"YulExpressionStatement","src":"7337:31:60"},{"nodeType":"YulAssignment","src":"7377:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"7387:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7377:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"7401:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7433:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7444:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7429:3:60"},"nodeType":"YulFunctionCall","src":"7429:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7416:12:60"},"nodeType":"YulFunctionCall","src":"7416:32:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7405:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7479:7:60"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"7457:21:60"},"nodeType":"YulFunctionCall","src":"7457:30:60"},"nodeType":"YulExpressionStatement","src":"7457:30:60"},{"nodeType":"YulAssignment","src":"7496:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"7506:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7496:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7179:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7190:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7202:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7210:6:60","type":""}],"src":"7137:382:60"},{"body":{"nodeType":"YulBlock","src":"7556:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7573:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7576:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7566:6:60"},"nodeType":"YulFunctionCall","src":"7566:88:60"},"nodeType":"YulExpressionStatement","src":"7566:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7670:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7673:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7663:6:60"},"nodeType":"YulFunctionCall","src":"7663:15:60"},"nodeType":"YulExpressionStatement","src":"7663:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7694:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7697:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7687:6:60"},"nodeType":"YulFunctionCall","src":"7687:15:60"},"nodeType":"YulExpressionStatement","src":"7687:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"7524:184:60"},{"body":{"nodeType":"YulBlock","src":"7758:289:60","statements":[{"nodeType":"YulAssignment","src":"7768:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7784:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7778:5:60"},"nodeType":"YulFunctionCall","src":"7778:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7768:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"7796:117:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7818:6:60"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"7834:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"7840:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7830:3:60"},"nodeType":"YulFunctionCall","src":"7830:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"7845:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7826:3:60"},"nodeType":"YulFunctionCall","src":"7826:86:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7814:3:60"},"nodeType":"YulFunctionCall","src":"7814:99:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"7800:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"7988:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"7990:16:60"},"nodeType":"YulFunctionCall","src":"7990:18:60"},"nodeType":"YulExpressionStatement","src":"7990:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"7931:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"7943:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7928:2:60"},"nodeType":"YulFunctionCall","src":"7928:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"7967:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"7979:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7964:2:60"},"nodeType":"YulFunctionCall","src":"7964:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7925:2:60"},"nodeType":"YulFunctionCall","src":"7925:62:60"},"nodeType":"YulIf","src":"7922:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8026:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"8030:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8019:6:60"},"nodeType":"YulFunctionCall","src":"8019:22:60"},"nodeType":"YulExpressionStatement","src":"8019:22:60"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"7738:4:60","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"7747:6:60","type":""}],"src":"7713:334:60"},{"body":{"nodeType":"YulBlock","src":"8109:188:60","statements":[{"body":{"nodeType":"YulBlock","src":"8153:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"8155:16:60"},"nodeType":"YulFunctionCall","src":"8155:18:60"},"nodeType":"YulExpressionStatement","src":"8155:18:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8125:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"8133:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8122:2:60"},"nodeType":"YulFunctionCall","src":"8122:30:60"},"nodeType":"YulIf","src":"8119:56:60"},{"nodeType":"YulAssignment","src":"8184:107:60","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8204:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"8212:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8200:3:60"},"nodeType":"YulFunctionCall","src":"8200:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"8217:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8196:3:60"},"nodeType":"YulFunctionCall","src":"8196:88:60"},{"kind":"number","nodeType":"YulLiteral","src":"8286:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8192:3:60"},"nodeType":"YulFunctionCall","src":"8192:99:60"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"8184:4:60"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"8089:6:60","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"8100:4:60","type":""}],"src":"8052:245:60"},{"body":{"nodeType":"YulBlock","src":"8432:886:60","statements":[{"body":{"nodeType":"YulBlock","src":"8479:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8488:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8491:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8481:6:60"},"nodeType":"YulFunctionCall","src":"8481:12:60"},"nodeType":"YulExpressionStatement","src":"8481:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8453:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"8462:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8449:3:60"},"nodeType":"YulFunctionCall","src":"8449:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"8474:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8445:3:60"},"nodeType":"YulFunctionCall","src":"8445:33:60"},"nodeType":"YulIf","src":"8442:53:60"},{"nodeType":"YulVariableDeclaration","src":"8504:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8530:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8517:12:60"},"nodeType":"YulFunctionCall","src":"8517:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8508:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8574:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8549:24:60"},"nodeType":"YulFunctionCall","src":"8549:31:60"},"nodeType":"YulExpressionStatement","src":"8549:31:60"},{"nodeType":"YulAssignment","src":"8589:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"8599:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8589:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"8613:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8645:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8656:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8641:3:60"},"nodeType":"YulFunctionCall","src":"8641:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8628:12:60"},"nodeType":"YulFunctionCall","src":"8628:32:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8617:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8694:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8669:24:60"},"nodeType":"YulFunctionCall","src":"8669:33:60"},"nodeType":"YulExpressionStatement","src":"8669:33:60"},{"nodeType":"YulAssignment","src":"8711:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"8721:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8711:6:60"}]},{"nodeType":"YulAssignment","src":"8737:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8764:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8775:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8760:3:60"},"nodeType":"YulFunctionCall","src":"8760:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8747:12:60"},"nodeType":"YulFunctionCall","src":"8747:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8737:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"8788:46:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8819:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8830:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8815:3:60"},"nodeType":"YulFunctionCall","src":"8815:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8802:12:60"},"nodeType":"YulFunctionCall","src":"8802:32:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8792:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"8877:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8886:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8889:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8879:6:60"},"nodeType":"YulFunctionCall","src":"8879:12:60"},"nodeType":"YulExpressionStatement","src":"8879:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8849:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"8857:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8846:2:60"},"nodeType":"YulFunctionCall","src":"8846:30:60"},"nodeType":"YulIf","src":"8843:50:60"},{"nodeType":"YulVariableDeclaration","src":"8902:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8916:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"8927:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8912:3:60"},"nodeType":"YulFunctionCall","src":"8912:22:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8906:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"8982:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8991:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8994:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8984:6:60"},"nodeType":"YulFunctionCall","src":"8984:12:60"},"nodeType":"YulExpressionStatement","src":"8984:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8961:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"8965:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8957:3:60"},"nodeType":"YulFunctionCall","src":"8957:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8972:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8953:3:60"},"nodeType":"YulFunctionCall","src":"8953:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8946:6:60"},"nodeType":"YulFunctionCall","src":"8946:35:60"},"nodeType":"YulIf","src":"8943:55:60"},{"nodeType":"YulVariableDeclaration","src":"9007:26:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9030:2:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9017:12:60"},"nodeType":"YulFunctionCall","src":"9017:16:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9011:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9042:61:60","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9099:2:60"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"9071:27:60"},"nodeType":"YulFunctionCall","src":"9071:31:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9055:15:60"},"nodeType":"YulFunctionCall","src":"9055:48:60"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"9046:5:60","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"9119:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"9126:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9112:6:60"},"nodeType":"YulFunctionCall","src":"9112:17:60"},"nodeType":"YulExpressionStatement","src":"9112:17:60"},{"body":{"nodeType":"YulBlock","src":"9175:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9184:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9187:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9177:6:60"},"nodeType":"YulFunctionCall","src":"9177:12:60"},"nodeType":"YulExpressionStatement","src":"9177:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9152:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"9156:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9148:3:60"},"nodeType":"YulFunctionCall","src":"9148:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"9161:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9144:3:60"},"nodeType":"YulFunctionCall","src":"9144:20:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9166:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9141:2:60"},"nodeType":"YulFunctionCall","src":"9141:33:60"},"nodeType":"YulIf","src":"9138:53:60"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"9217:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"9224:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9213:3:60"},"nodeType":"YulFunctionCall","src":"9213:14:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9233:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"9237:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9229:3:60"},"nodeType":"YulFunctionCall","src":"9229:11:60"},{"name":"_2","nodeType":"YulIdentifier","src":"9242:2:60"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"9200:12:60"},"nodeType":"YulFunctionCall","src":"9200:45:60"},"nodeType":"YulExpressionStatement","src":"9200:45:60"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"9269:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"9276:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9265:3:60"},"nodeType":"YulFunctionCall","src":"9265:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"9281:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9261:3:60"},"nodeType":"YulFunctionCall","src":"9261:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"9286:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9254:6:60"},"nodeType":"YulFunctionCall","src":"9254:34:60"},"nodeType":"YulExpressionStatement","src":"9254:34:60"},{"nodeType":"YulAssignment","src":"9297:15:60","value":{"name":"array","nodeType":"YulIdentifier","src":"9307:5:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9297:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8374:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8385:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8397:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8405:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8413:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8421:6:60","type":""}],"src":"8302:1016:60"},{"body":{"nodeType":"YulBlock","src":"9422:95:60","statements":[{"nodeType":"YulAssignment","src":"9432:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9444:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9455:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9440:3:60"},"nodeType":"YulFunctionCall","src":"9440:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9432:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9474:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9489:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"9497:12:60","type":"","value":"0xffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9485:3:60"},"nodeType":"YulFunctionCall","src":"9485:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9467:6:60"},"nodeType":"YulFunctionCall","src":"9467:44:60"},"nodeType":"YulExpressionStatement","src":"9467:44:60"}]},"name":"abi_encode_tuple_t_uint40__to_t_uint40__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9391:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9402:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9413:4:60","type":""}],"src":"9323:194:60"},{"body":{"nodeType":"YulBlock","src":"9626:279:60","statements":[{"body":{"nodeType":"YulBlock","src":"9672:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9681:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9684:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9674:6:60"},"nodeType":"YulFunctionCall","src":"9674:12:60"},"nodeType":"YulExpressionStatement","src":"9674:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9647:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"9656:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9643:3:60"},"nodeType":"YulFunctionCall","src":"9643:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"9668:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9639:3:60"},"nodeType":"YulFunctionCall","src":"9639:32:60"},"nodeType":"YulIf","src":"9636:52:60"},{"nodeType":"YulVariableDeclaration","src":"9697:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9723:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9710:12:60"},"nodeType":"YulFunctionCall","src":"9710:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9701:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9767:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9742:24:60"},"nodeType":"YulFunctionCall","src":"9742:31:60"},"nodeType":"YulExpressionStatement","src":"9742:31:60"},{"nodeType":"YulAssignment","src":"9782:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"9792:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9782:6:60"}]},{"nodeType":"YulAssignment","src":"9806:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9833:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9844:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9829:3:60"},"nodeType":"YulFunctionCall","src":"9829:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9816:12:60"},"nodeType":"YulFunctionCall","src":"9816:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9806:6:60"}]},{"nodeType":"YulAssignment","src":"9857:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9884:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9895:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9880:3:60"},"nodeType":"YulFunctionCall","src":"9880:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9867:12:60"},"nodeType":"YulFunctionCall","src":"9867:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9857:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9576:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9587:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9599:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9607:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9615:6:60","type":""}],"src":"9522:383:60"},{"body":{"nodeType":"YulBlock","src":"10061:481:60","statements":[{"nodeType":"YulVariableDeclaration","src":"10071:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"10081:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10075:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10092:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10110:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10121:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10106:3:60"},"nodeType":"YulFunctionCall","src":"10106:18:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"10096:6:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10140:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10151:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10133:6:60"},"nodeType":"YulFunctionCall","src":"10133:21:60"},"nodeType":"YulExpressionStatement","src":"10133:21:60"},{"nodeType":"YulVariableDeclaration","src":"10163:17:60","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"10174:6:60"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"10167:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10189:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10209:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10203:5:60"},"nodeType":"YulFunctionCall","src":"10203:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10193:6:60","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"10232:6:60"},{"name":"length","nodeType":"YulIdentifier","src":"10240:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10225:6:60"},"nodeType":"YulFunctionCall","src":"10225:22:60"},"nodeType":"YulExpressionStatement","src":"10225:22:60"},{"nodeType":"YulAssignment","src":"10256:25:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10267:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10278:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10263:3:60"},"nodeType":"YulFunctionCall","src":"10263:18:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10256:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"10290:29:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10308:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10316:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10304:3:60"},"nodeType":"YulFunctionCall","src":"10304:15:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"10294:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10328:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"10337:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10332:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10396:120:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10417:3:60"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10428:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10422:5:60"},"nodeType":"YulFunctionCall","src":"10422:13:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10410:6:60"},"nodeType":"YulFunctionCall","src":"10410:26:60"},"nodeType":"YulExpressionStatement","src":"10410:26:60"},{"nodeType":"YulAssignment","src":"10449:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10460:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10465:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10456:3:60"},"nodeType":"YulFunctionCall","src":"10456:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"10449:3:60"}]},{"nodeType":"YulAssignment","src":"10481:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10495:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"10503:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10491:3:60"},"nodeType":"YulFunctionCall","src":"10491:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"10481:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10358:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"10361:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10355:2:60"},"nodeType":"YulFunctionCall","src":"10355:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10369:18:60","statements":[{"nodeType":"YulAssignment","src":"10371:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10380:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"10383:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10376:3:60"},"nodeType":"YulFunctionCall","src":"10376:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10371:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"10351:3:60","statements":[]},"src":"10347:169:60"},{"nodeType":"YulAssignment","src":"10525:11:60","value":{"name":"pos","nodeType":"YulIdentifier","src":"10533:3:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10525:4:60"}]}]},"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":"10030:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10041:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10052:4:60","type":""}],"src":"9910:632:60"},{"body":{"nodeType":"YulBlock","src":"10663:125:60","statements":[{"nodeType":"YulAssignment","src":"10673:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10685:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10696:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10681:3:60"},"nodeType":"YulFunctionCall","src":"10681:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10673:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10715:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10730:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"10738:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10726:3:60"},"nodeType":"YulFunctionCall","src":"10726:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10708:6:60"},"nodeType":"YulFunctionCall","src":"10708:74:60"},"nodeType":"YulExpressionStatement","src":"10708:74:60"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10632:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10643:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10654:4:60","type":""}],"src":"10547:241:60"},{"body":{"nodeType":"YulBlock","src":"10920:201:60","statements":[{"nodeType":"YulAssignment","src":"10930:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10942:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10953:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10938:3:60"},"nodeType":"YulFunctionCall","src":"10938:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10930:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10972:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10987:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"10995:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10983:3:60"},"nodeType":"YulFunctionCall","src":"10983:39:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10965:6:60"},"nodeType":"YulFunctionCall","src":"10965:58:60"},"nodeType":"YulExpressionStatement","src":"10965:58:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11043:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11054:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11039:3:60"},"nodeType":"YulFunctionCall","src":"11039:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11063:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"11071:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11059:3:60"},"nodeType":"YulFunctionCall","src":"11059:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11032:6:60"},"nodeType":"YulFunctionCall","src":"11032:83:60"},"nodeType":"YulExpressionStatement","src":"11032:83:60"}]},"name":"abi_encode_tuple_t_uint96_t_uint160__to_t_uint96_t_uint160__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10881:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10892:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10900:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10911:4:60","type":""}],"src":"10793:328:60"},{"body":{"nodeType":"YulBlock","src":"11213:301:60","statements":[{"body":{"nodeType":"YulBlock","src":"11259:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11268:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11271:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11261:6:60"},"nodeType":"YulFunctionCall","src":"11261:12:60"},"nodeType":"YulExpressionStatement","src":"11261:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11234:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"11243:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11230:3:60"},"nodeType":"YulFunctionCall","src":"11230:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"11255:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11226:3:60"},"nodeType":"YulFunctionCall","src":"11226:32:60"},"nodeType":"YulIf","src":"11223:52:60"},{"nodeType":"YulVariableDeclaration","src":"11284:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11310:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11297:12:60"},"nodeType":"YulFunctionCall","src":"11297:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11288:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11354:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"11329:24:60"},"nodeType":"YulFunctionCall","src":"11329:31:60"},"nodeType":"YulExpressionStatement","src":"11329:31:60"},{"nodeType":"YulAssignment","src":"11369:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"11379:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11369:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"11393:47:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11425:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11436:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11421:3:60"},"nodeType":"YulFunctionCall","src":"11421:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11408:12:60"},"nodeType":"YulFunctionCall","src":"11408:32:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"11397:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"11474:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"11449:24:60"},"nodeType":"YulFunctionCall","src":"11449:33:60"},"nodeType":"YulExpressionStatement","src":"11449:33:60"},{"nodeType":"YulAssignment","src":"11491:17:60","value":{"name":"value_1","nodeType":"YulIdentifier","src":"11501:7:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11491:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11171:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11182:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11194:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11202:6:60","type":""}],"src":"11126:388:60"},{"body":{"nodeType":"YulBlock","src":"11644:125:60","statements":[{"nodeType":"YulAssignment","src":"11654:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11666:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11677:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11662:3:60"},"nodeType":"YulFunctionCall","src":"11662:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11654:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11696:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11711:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"11719:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11707:3:60"},"nodeType":"YulFunctionCall","src":"11707:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11689:6:60"},"nodeType":"YulFunctionCall","src":"11689:74:60"},"nodeType":"YulExpressionStatement","src":"11689:74:60"}]},"name":"abi_encode_tuple_t_contract$_ITokenMetadata_$15030__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11613:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11624:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11635:4:60","type":""}],"src":"11519:250:60"},{"body":{"nodeType":"YulBlock","src":"11903:119:60","statements":[{"nodeType":"YulAssignment","src":"11913:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11925:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11936:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11921:3:60"},"nodeType":"YulFunctionCall","src":"11921:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11913:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11955:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"11966:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11948:6:60"},"nodeType":"YulFunctionCall","src":"11948:25:60"},"nodeType":"YulExpressionStatement","src":"11948:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11993:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12004:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11989:3:60"},"nodeType":"YulFunctionCall","src":"11989:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"12009:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11982:6:60"},"nodeType":"YulFunctionCall","src":"11982:34:60"},"nodeType":"YulExpressionStatement","src":"11982:34:60"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11864:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11875:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11883:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11894:4:60","type":""}],"src":"11774:248:60"},{"body":{"nodeType":"YulBlock","src":"12082:382:60","statements":[{"nodeType":"YulAssignment","src":"12092:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12106:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"12109:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12102:3:60"},"nodeType":"YulFunctionCall","src":"12102:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12092:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"12123:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12153:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"12159:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12149:3:60"},"nodeType":"YulFunctionCall","src":"12149:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"12127:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"12200:31:60","statements":[{"nodeType":"YulAssignment","src":"12202:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12216:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"12224:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12212:3:60"},"nodeType":"YulFunctionCall","src":"12212:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12202:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"12180:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12173:6:60"},"nodeType":"YulFunctionCall","src":"12173:26:60"},"nodeType":"YulIf","src":"12170:61:60"},{"body":{"nodeType":"YulBlock","src":"12290:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12311:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12314:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12304:6:60"},"nodeType":"YulFunctionCall","src":"12304:88:60"},"nodeType":"YulExpressionStatement","src":"12304:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12412:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12415:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12405:6:60"},"nodeType":"YulFunctionCall","src":"12405:15:60"},"nodeType":"YulExpressionStatement","src":"12405:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12440:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12443:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12433:6:60"},"nodeType":"YulFunctionCall","src":"12433:15:60"},"nodeType":"YulExpressionStatement","src":"12433:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"12246:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12269:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"12277:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12266:2:60"},"nodeType":"YulFunctionCall","src":"12266:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12243:2:60"},"nodeType":"YulFunctionCall","src":"12243:38:60"},"nodeType":"YulIf","src":"12240:218:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"12062:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"12071:6:60","type":""}],"src":"12027:437:60"},{"body":{"nodeType":"YulBlock","src":"12643:223:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12660:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12671:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12653:6:60"},"nodeType":"YulFunctionCall","src":"12653:21:60"},"nodeType":"YulExpressionStatement","src":"12653:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12694:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12705:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12690:3:60"},"nodeType":"YulFunctionCall","src":"12690:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"12710:2:60","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12683:6:60"},"nodeType":"YulFunctionCall","src":"12683:30:60"},"nodeType":"YulExpressionStatement","src":"12683:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12733:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12744:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12729:3:60"},"nodeType":"YulFunctionCall","src":"12729:18:60"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nodeType":"YulLiteral","src":"12749:34:60","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12722:6:60"},"nodeType":"YulFunctionCall","src":"12722:62:60"},"nodeType":"YulExpressionStatement","src":"12722:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12804:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12815:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12800:3:60"},"nodeType":"YulFunctionCall","src":"12800:18:60"},{"hexValue":"72","kind":"string","nodeType":"YulLiteral","src":"12820:3:60","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12793:6:60"},"nodeType":"YulFunctionCall","src":"12793:31:60"},"nodeType":"YulExpressionStatement","src":"12793:31:60"},{"nodeType":"YulAssignment","src":"12833:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12845:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12856:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12841:3:60"},"nodeType":"YulFunctionCall","src":"12841:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12833:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12620:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12634:4:60","type":""}],"src":"12469:397:60"},{"body":{"nodeType":"YulBlock","src":"13045:251:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13062:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13073:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13055:6:60"},"nodeType":"YulFunctionCall","src":"13055:21:60"},"nodeType":"YulExpressionStatement","src":"13055:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13096:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13107:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13092:3:60"},"nodeType":"YulFunctionCall","src":"13092:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"13112:2:60","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13085:6:60"},"nodeType":"YulFunctionCall","src":"13085:30:60"},"nodeType":"YulExpressionStatement","src":"13085:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13135:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13146:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13131:3:60"},"nodeType":"YulFunctionCall","src":"13131:18:60"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nodeType":"YulLiteral","src":"13151:34:60","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13124:6:60"},"nodeType":"YulFunctionCall","src":"13124:62:60"},"nodeType":"YulExpressionStatement","src":"13124:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13206:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13217:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13202:3:60"},"nodeType":"YulFunctionCall","src":"13202:18:60"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nodeType":"YulLiteral","src":"13222:31:60","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13195:6:60"},"nodeType":"YulFunctionCall","src":"13195:59:60"},"nodeType":"YulExpressionStatement","src":"13195:59:60"},{"nodeType":"YulAssignment","src":"13263:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13275:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13286:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13271:3:60"},"nodeType":"YulFunctionCall","src":"13271:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13263:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13022:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13036:4:60","type":""}],"src":"12871:425:60"},{"body":{"nodeType":"YulBlock","src":"13475:235:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13492:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13503:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13485:6:60"},"nodeType":"YulFunctionCall","src":"13485:21:60"},"nodeType":"YulExpressionStatement","src":"13485:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13526:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13537:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13522:3:60"},"nodeType":"YulFunctionCall","src":"13522:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"13542:2:60","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13515:6:60"},"nodeType":"YulFunctionCall","src":"13515:30:60"},"nodeType":"YulExpressionStatement","src":"13515:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13565:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13576:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13561:3:60"},"nodeType":"YulFunctionCall","src":"13561:18:60"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nodeType":"YulLiteral","src":"13581:34:60","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13554:6:60"},"nodeType":"YulFunctionCall","src":"13554:62:60"},"nodeType":"YulExpressionStatement","src":"13554:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13636:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13647:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13632:3:60"},"nodeType":"YulFunctionCall","src":"13632:18:60"},{"hexValue":"72206f7220617070726f766564","kind":"string","nodeType":"YulLiteral","src":"13652:15:60","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13625:6:60"},"nodeType":"YulFunctionCall","src":"13625:43:60"},"nodeType":"YulExpressionStatement","src":"13625:43:60"},{"nodeType":"YulAssignment","src":"13677:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13689:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13700:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13685:3:60"},"nodeType":"YulFunctionCall","src":"13685:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13677:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13452:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13466:4:60","type":""}],"src":"13301:409:60"},{"body":{"nodeType":"YulBlock","src":"13889:233:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13906:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13917:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13899:6:60"},"nodeType":"YulFunctionCall","src":"13899:21:60"},"nodeType":"YulExpressionStatement","src":"13899:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13940:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13951:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13936:3:60"},"nodeType":"YulFunctionCall","src":"13936:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"13956:2:60","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13929:6:60"},"nodeType":"YulFunctionCall","src":"13929:30:60"},"nodeType":"YulExpressionStatement","src":"13929:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13979:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"13990:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13975:3:60"},"nodeType":"YulFunctionCall","src":"13975:18:60"},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f75","kind":"string","nodeType":"YulLiteral","src":"13995:34:60","type":"","value":"ERC721Enumerable: owner index ou"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13968:6:60"},"nodeType":"YulFunctionCall","src":"13968:62:60"},"nodeType":"YulExpressionStatement","src":"13968:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14050:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14061:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14046:3:60"},"nodeType":"YulFunctionCall","src":"14046:18:60"},{"hexValue":"74206f6620626f756e6473","kind":"string","nodeType":"YulLiteral","src":"14066:13:60","type":"","value":"t of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14039:6:60"},"nodeType":"YulFunctionCall","src":"14039:41:60"},"nodeType":"YulExpressionStatement","src":"14039:41:60"},{"nodeType":"YulAssignment","src":"14089:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14101:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14112:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14097:3:60"},"nodeType":"YulFunctionCall","src":"14097:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14089:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13866:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13880:4:60","type":""}],"src":"13715:407:60"},{"body":{"nodeType":"YulBlock","src":"14301:237:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14318:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14329:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14311:6:60"},"nodeType":"YulFunctionCall","src":"14311:21:60"},"nodeType":"YulExpressionStatement","src":"14311:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14352:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14363:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14348:3:60"},"nodeType":"YulFunctionCall","src":"14348:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"14368:2:60","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14341:6:60"},"nodeType":"YulFunctionCall","src":"14341:30:60"},"nodeType":"YulExpressionStatement","src":"14341:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14391:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14402:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14387:3:60"},"nodeType":"YulFunctionCall","src":"14387:18:60"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"14407:34:60","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14380:6:60"},"nodeType":"YulFunctionCall","src":"14380:62:60"},"nodeType":"YulExpressionStatement","src":"14380:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14462:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14473:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14458:3:60"},"nodeType":"YulFunctionCall","src":"14458:18:60"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"14478:17:60","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14451:6:60"},"nodeType":"YulFunctionCall","src":"14451:45:60"},"nodeType":"YulExpressionStatement","src":"14451:45:60"},{"nodeType":"YulAssignment","src":"14505:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14517:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"14528:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14513:3:60"},"nodeType":"YulFunctionCall","src":"14513:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14505:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14278:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14292:4:60","type":""}],"src":"14127:411:60"},{"body":{"nodeType":"YulBlock","src":"14575:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14592:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14595:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14585:6:60"},"nodeType":"YulFunctionCall","src":"14585:88:60"},"nodeType":"YulExpressionStatement","src":"14585:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14689:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14692:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14682:6:60"},"nodeType":"YulFunctionCall","src":"14682:15:60"},"nodeType":"YulExpressionStatement","src":"14682:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14713:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14716:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14706:6:60"},"nodeType":"YulFunctionCall","src":"14706:15:60"},"nodeType":"YulExpressionStatement","src":"14706:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14543:184:60"},{"body":{"nodeType":"YulBlock","src":"14784:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"14903:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14905:16:60"},"nodeType":"YulFunctionCall","src":"14905:18:60"},"nodeType":"YulExpressionStatement","src":"14905:18:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14815:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14808:6:60"},"nodeType":"YulFunctionCall","src":"14808:9:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14801:6:60"},"nodeType":"YulFunctionCall","src":"14801:17:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14823:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14830:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"14898:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14826:3:60"},"nodeType":"YulFunctionCall","src":"14826:74:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14820:2:60"},"nodeType":"YulFunctionCall","src":"14820:81:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14797:3:60"},"nodeType":"YulFunctionCall","src":"14797:105:60"},"nodeType":"YulIf","src":"14794:131:60"},{"nodeType":"YulAssignment","src":"14934:20:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14949:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"14952:1:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"14945:3:60"},"nodeType":"YulFunctionCall","src":"14945:9:60"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"14934:7:60"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14763:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"14766:1:60","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"14772:7:60","type":""}],"src":"14732:228:60"},{"body":{"nodeType":"YulBlock","src":"15011:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"15042:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15063:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15066:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15056:6:60"},"nodeType":"YulFunctionCall","src":"15056:88:60"},"nodeType":"YulExpressionStatement","src":"15056:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15164:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15167:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15157:6:60"},"nodeType":"YulFunctionCall","src":"15157:15:60"},"nodeType":"YulExpressionStatement","src":"15157:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15192:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15195:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15185:6:60"},"nodeType":"YulFunctionCall","src":"15185:15:60"},"nodeType":"YulExpressionStatement","src":"15185:15:60"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"15031:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15024:6:60"},"nodeType":"YulFunctionCall","src":"15024:9:60"},"nodeType":"YulIf","src":"15021:189:60"},{"nodeType":"YulAssignment","src":"15219:14:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15228:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"15231:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"15224:3:60"},"nodeType":"YulFunctionCall","src":"15224:9:60"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"15219:1:60"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14996:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"14999:1:60","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"15005:1:60","type":""}],"src":"14965:274:60"},{"body":{"nodeType":"YulBlock","src":"15418:234:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15435:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15446:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15428:6:60"},"nodeType":"YulFunctionCall","src":"15428:21:60"},"nodeType":"YulExpressionStatement","src":"15428:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15469:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15480:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15465:3:60"},"nodeType":"YulFunctionCall","src":"15465:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"15485:2:60","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15458:6:60"},"nodeType":"YulFunctionCall","src":"15458:30:60"},"nodeType":"YulExpressionStatement","src":"15458:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15508:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15519:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15504:3:60"},"nodeType":"YulFunctionCall","src":"15504:18:60"},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f","kind":"string","nodeType":"YulLiteral","src":"15524:34:60","type":"","value":"ERC721Enumerable: global index o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15497:6:60"},"nodeType":"YulFunctionCall","src":"15497:62:60"},"nodeType":"YulExpressionStatement","src":"15497:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15579:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15590:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15575:3:60"},"nodeType":"YulFunctionCall","src":"15575:18:60"},{"hexValue":"7574206f6620626f756e6473","kind":"string","nodeType":"YulLiteral","src":"15595:14:60","type":"","value":"ut of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15568:6:60"},"nodeType":"YulFunctionCall","src":"15568:42:60"},"nodeType":"YulExpressionStatement","src":"15568:42:60"},{"nodeType":"YulAssignment","src":"15619:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15631:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"15642:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15627:3:60"},"nodeType":"YulFunctionCall","src":"15627:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15619:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15395:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15409:4:60","type":""}],"src":"15244:408:60"},{"body":{"nodeType":"YulBlock","src":"15689:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15706:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15709:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15699:6:60"},"nodeType":"YulFunctionCall","src":"15699:88:60"},"nodeType":"YulExpressionStatement","src":"15699:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15803:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15806:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15796:6:60"},"nodeType":"YulFunctionCall","src":"15796:15:60"},"nodeType":"YulExpressionStatement","src":"15796:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15827:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15830:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15820:6:60"},"nodeType":"YulFunctionCall","src":"15820:15:60"},"nodeType":"YulExpressionStatement","src":"15820:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"15657:184:60"},{"body":{"nodeType":"YulBlock","src":"16020:174:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16037:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16048:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16030:6:60"},"nodeType":"YulFunctionCall","src":"16030:21:60"},"nodeType":"YulExpressionStatement","src":"16030:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16071:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16082:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16067:3:60"},"nodeType":"YulFunctionCall","src":"16067:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"16087:2:60","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16060:6:60"},"nodeType":"YulFunctionCall","src":"16060:30:60"},"nodeType":"YulExpressionStatement","src":"16060:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16110:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16121:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16106:3:60"},"nodeType":"YulFunctionCall","src":"16106:18:60"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nodeType":"YulLiteral","src":"16126:26:60","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16099:6:60"},"nodeType":"YulFunctionCall","src":"16099:54:60"},"nodeType":"YulExpressionStatement","src":"16099:54:60"},{"nodeType":"YulAssignment","src":"16162:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16174:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16185:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16170:3:60"},"nodeType":"YulFunctionCall","src":"16170:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16162:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15997:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16011:4:60","type":""}],"src":"15846:348:60"},{"body":{"nodeType":"YulBlock","src":"16373:231:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16390:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16401:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16383:6:60"},"nodeType":"YulFunctionCall","src":"16383:21:60"},"nodeType":"YulExpressionStatement","src":"16383:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16424:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16435:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16420:3:60"},"nodeType":"YulFunctionCall","src":"16420:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"16440:2:60","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16413:6:60"},"nodeType":"YulFunctionCall","src":"16413:30:60"},"nodeType":"YulExpressionStatement","src":"16413:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16463:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16474:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16459:3:60"},"nodeType":"YulFunctionCall","src":"16459:18:60"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nodeType":"YulLiteral","src":"16479:34:60","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16452:6:60"},"nodeType":"YulFunctionCall","src":"16452:62:60"},"nodeType":"YulExpressionStatement","src":"16452:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16534:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16545:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16530:3:60"},"nodeType":"YulFunctionCall","src":"16530:18:60"},{"hexValue":"6c6964206f776e6572","kind":"string","nodeType":"YulLiteral","src":"16550:11:60","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16523:6:60"},"nodeType":"YulFunctionCall","src":"16523:39:60"},"nodeType":"YulExpressionStatement","src":"16523:39:60"},{"nodeType":"YulAssignment","src":"16571:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16583:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"16594:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16579:3:60"},"nodeType":"YulFunctionCall","src":"16579:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16571:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16350:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16364:4:60","type":""}],"src":"16199:405:60"},{"body":{"nodeType":"YulBlock","src":"16656:197:60","statements":[{"nodeType":"YulVariableDeclaration","src":"16666:36:60","value":{"kind":"number","nodeType":"YulLiteral","src":"16676:26:60","type":"","value":"0xffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16670:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16711:21:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"16726:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"16729:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16722:3:60"},"nodeType":"YulFunctionCall","src":"16722:10:60"},"variables":[{"name":"x_1","nodeType":"YulTypedName","src":"16715:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16741:21:60","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"16756:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"16759:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16752:3:60"},"nodeType":"YulFunctionCall","src":"16752:10:60"},"variables":[{"name":"y_1","nodeType":"YulTypedName","src":"16745:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"16796:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"16798:16:60"},"nodeType":"YulFunctionCall","src":"16798:18:60"},"nodeType":"YulExpressionStatement","src":"16798:18:60"}]},"condition":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"16777:3:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"16786:2:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"16790:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16782:3:60"},"nodeType":"YulFunctionCall","src":"16782:12:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16774:2:60"},"nodeType":"YulFunctionCall","src":"16774:21:60"},"nodeType":"YulIf","src":"16771:47:60"},{"nodeType":"YulAssignment","src":"16827:20:60","value":{"arguments":[{"name":"x_1","nodeType":"YulIdentifier","src":"16838:3:60"},{"name":"y_1","nodeType":"YulIdentifier","src":"16843:3:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16834:3:60"},"nodeType":"YulFunctionCall","src":"16834:13:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"16827:3:60"}]}]},"name":"checked_add_t_uint96","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"16639:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"16642:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"16648:3:60","type":""}],"src":"16609:244:60"},{"body":{"nodeType":"YulBlock","src":"16905:148:60","statements":[{"body":{"nodeType":"YulBlock","src":"16996:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"16998:16:60"},"nodeType":"YulFunctionCall","src":"16998:18:60"},"nodeType":"YulExpressionStatement","src":"16998:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16921:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"16928:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16918:2:60"},"nodeType":"YulFunctionCall","src":"16918:77:60"},"nodeType":"YulIf","src":"16915:103:60"},{"nodeType":"YulAssignment","src":"17027:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"17038:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17045:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17034:3:60"},"nodeType":"YulFunctionCall","src":"17034:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"17027:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"16887:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"16897:3:60","type":""}],"src":"16858:195:60"},{"body":{"nodeType":"YulBlock","src":"17221:168:60","statements":[{"nodeType":"YulAssignment","src":"17231:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17243:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17254:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17239:3:60"},"nodeType":"YulFunctionCall","src":"17239:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17231:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17273:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17288:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17296:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17284:3:60"},"nodeType":"YulFunctionCall","src":"17284:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17266:6:60"},"nodeType":"YulFunctionCall","src":"17266:74:60"},"nodeType":"YulExpressionStatement","src":"17266:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17360:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"17371:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17356:3:60"},"nodeType":"YulFunctionCall","src":"17356:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"17376:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17349:6:60"},"nodeType":"YulFunctionCall","src":"17349:34:60"},"nodeType":"YulExpressionStatement","src":"17349:34:60"}]},"name":"abi_encode_tuple_t_contract$_PangolinStakingPositions_$16260_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17182:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17193:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17201:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17212:4:60","type":""}],"src":"17058:331:60"},{"body":{"nodeType":"YulBlock","src":"17485:544:60","statements":[{"body":{"nodeType":"YulBlock","src":"17531:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17540:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17543:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17533:6:60"},"nodeType":"YulFunctionCall","src":"17533:12:60"},"nodeType":"YulExpressionStatement","src":"17533:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"17506:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"17515:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17502:3:60"},"nodeType":"YulFunctionCall","src":"17502:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"17527:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17498:3:60"},"nodeType":"YulFunctionCall","src":"17498:32:60"},"nodeType":"YulIf","src":"17495:52:60"},{"nodeType":"YulVariableDeclaration","src":"17556:30:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17576:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17570:5:60"},"nodeType":"YulFunctionCall","src":"17570:16:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"17560:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"17629:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17638:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17641:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17631:6:60"},"nodeType":"YulFunctionCall","src":"17631:12:60"},"nodeType":"YulExpressionStatement","src":"17631:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"17601:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17609:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17598:2:60"},"nodeType":"YulFunctionCall","src":"17598:30:60"},"nodeType":"YulIf","src":"17595:50:60"},{"nodeType":"YulVariableDeclaration","src":"17654:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17668:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"17679:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17664:3:60"},"nodeType":"YulFunctionCall","src":"17664:22:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17658:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"17734:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17743:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17746:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17736:6:60"},"nodeType":"YulFunctionCall","src":"17736:12:60"},"nodeType":"YulExpressionStatement","src":"17736:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17713:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"17717:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17709:3:60"},"nodeType":"YulFunctionCall","src":"17709:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17724:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"17705:3:60"},"nodeType":"YulFunctionCall","src":"17705:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"17698:6:60"},"nodeType":"YulFunctionCall","src":"17698:35:60"},"nodeType":"YulIf","src":"17695:55:60"},{"nodeType":"YulVariableDeclaration","src":"17759:19:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17775:2:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17769:5:60"},"nodeType":"YulFunctionCall","src":"17769:9:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"17763:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"17787:61:60","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17844:2:60"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"17816:27:60"},"nodeType":"YulFunctionCall","src":"17816:31:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"17800:15:60"},"nodeType":"YulFunctionCall","src":"17800:48:60"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"17791:5:60","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17864:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"17871:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17857:6:60"},"nodeType":"YulFunctionCall","src":"17857:17:60"},"nodeType":"YulExpressionStatement","src":"17857:17:60"},{"body":{"nodeType":"YulBlock","src":"17920:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17929:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17932:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17922:6:60"},"nodeType":"YulFunctionCall","src":"17922:12:60"},"nodeType":"YulExpressionStatement","src":"17922:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17897:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"17901:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17893:3:60"},"nodeType":"YulFunctionCall","src":"17893:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"17906:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17889:3:60"},"nodeType":"YulFunctionCall","src":"17889:20:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"17911:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17886:2:60"},"nodeType":"YulFunctionCall","src":"17886:33:60"},"nodeType":"YulIf","src":"17883:53:60"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17971:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"17975:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17967:3:60"},"nodeType":"YulFunctionCall","src":"17967:11:60"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17984:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17991:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17980:3:60"},"nodeType":"YulFunctionCall","src":"17980:14:60"},{"name":"_2","nodeType":"YulIdentifier","src":"17996:2:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"17945:21:60"},"nodeType":"YulFunctionCall","src":"17945:54:60"},"nodeType":"YulExpressionStatement","src":"17945:54:60"},{"nodeType":"YulAssignment","src":"18008:15:60","value":{"name":"array","nodeType":"YulIdentifier","src":"18018:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"18008:6:60"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17451:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"17462:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"17474:6:60","type":""}],"src":"17394:635:60"},{"body":{"nodeType":"YulBlock","src":"18083:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"18105:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18107:16:60"},"nodeType":"YulFunctionCall","src":"18107:18:60"},"nodeType":"YulExpressionStatement","src":"18107:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18099:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"18102:1:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18096:2:60"},"nodeType":"YulFunctionCall","src":"18096:8:60"},"nodeType":"YulIf","src":"18093:34:60"},{"nodeType":"YulAssignment","src":"18136:17:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18148:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"18151:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18144:3:60"},"nodeType":"YulFunctionCall","src":"18144:9:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18136:4:60"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18065:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"18068:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18074:4:60","type":""}],"src":"18034:125:60"},{"body":{"nodeType":"YulBlock","src":"18212:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"18239:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18241:16:60"},"nodeType":"YulFunctionCall","src":"18241:18:60"},"nodeType":"YulExpressionStatement","src":"18241:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18228:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18235:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18231:3:60"},"nodeType":"YulFunctionCall","src":"18231:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18225:2:60"},"nodeType":"YulFunctionCall","src":"18225:13:60"},"nodeType":"YulIf","src":"18222:39:60"},{"nodeType":"YulAssignment","src":"18270:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18281:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"18284:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18277:3:60"},"nodeType":"YulFunctionCall","src":"18277:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18270:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18195:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"18198:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18204:3:60","type":""}],"src":"18164:128:60"},{"body":{"nodeType":"YulBlock","src":"18471:227:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18488:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18499:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18481:6:60"},"nodeType":"YulFunctionCall","src":"18481:21:60"},"nodeType":"YulExpressionStatement","src":"18481:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18522:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18533:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18518:3:60"},"nodeType":"YulFunctionCall","src":"18518:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"18538:2:60","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18511:6:60"},"nodeType":"YulFunctionCall","src":"18511:30:60"},"nodeType":"YulExpressionStatement","src":"18511:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18561:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18572:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18557:3:60"},"nodeType":"YulFunctionCall","src":"18557:18:60"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nodeType":"YulLiteral","src":"18577:34:60","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18550:6:60"},"nodeType":"YulFunctionCall","src":"18550:62:60"},"nodeType":"YulExpressionStatement","src":"18550:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18632:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18643:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18628:3:60"},"nodeType":"YulFunctionCall","src":"18628:18:60"},{"hexValue":"6f776e6572","kind":"string","nodeType":"YulLiteral","src":"18648:7:60","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18621:6:60"},"nodeType":"YulFunctionCall","src":"18621:35:60"},"nodeType":"YulExpressionStatement","src":"18621:35:60"},{"nodeType":"YulAssignment","src":"18665:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18677:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18688:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18673:3:60"},"nodeType":"YulFunctionCall","src":"18673:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18665:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18448:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18462:4:60","type":""}],"src":"18297:401:60"},{"body":{"nodeType":"YulBlock","src":"18877:226:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18894:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18905:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18887:6:60"},"nodeType":"YulFunctionCall","src":"18887:21:60"},"nodeType":"YulExpressionStatement","src":"18887:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18928:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18939:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18924:3:60"},"nodeType":"YulFunctionCall","src":"18924:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"18944:2:60","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18917:6:60"},"nodeType":"YulFunctionCall","src":"18917:30:60"},"nodeType":"YulExpressionStatement","src":"18917:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18967:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"18978:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18963:3:60"},"nodeType":"YulFunctionCall","src":"18963:18:60"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"18983:34:60","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18956:6:60"},"nodeType":"YulFunctionCall","src":"18956:62:60"},"nodeType":"YulExpressionStatement","src":"18956:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19038:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19049:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19034:3:60"},"nodeType":"YulFunctionCall","src":"19034:18:60"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"19054:6:60","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19027:6:60"},"nodeType":"YulFunctionCall","src":"19027:34:60"},"nodeType":"YulExpressionStatement","src":"19027:34:60"},{"nodeType":"YulAssignment","src":"19070:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19082:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19093:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19078:3:60"},"nodeType":"YulFunctionCall","src":"19078:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19070:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18854:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18868:4:60","type":""}],"src":"18703:400:60"},{"body":{"nodeType":"YulBlock","src":"19237:168:60","statements":[{"nodeType":"YulAssignment","src":"19247:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19259:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19270:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19255:3:60"},"nodeType":"YulFunctionCall","src":"19255:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19247:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19289:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19304:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"19312:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19300:3:60"},"nodeType":"YulFunctionCall","src":"19300:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19282:6:60"},"nodeType":"YulFunctionCall","src":"19282:74:60"},"nodeType":"YulExpressionStatement","src":"19282:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19376:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19387:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19372:3:60"},"nodeType":"YulFunctionCall","src":"19372:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"19392:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19365:6:60"},"nodeType":"YulFunctionCall","src":"19365:34:60"},"nodeType":"YulExpressionStatement","src":"19365:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19198:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19209:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19217:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19228:4:60","type":""}],"src":"19108:297:60"},{"body":{"nodeType":"YulBlock","src":"19488:167:60","statements":[{"body":{"nodeType":"YulBlock","src":"19534:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19543:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19546:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19536:6:60"},"nodeType":"YulFunctionCall","src":"19536:12:60"},"nodeType":"YulExpressionStatement","src":"19536:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"19509:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"19518:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19505:3:60"},"nodeType":"YulFunctionCall","src":"19505:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"19530:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19501:3:60"},"nodeType":"YulFunctionCall","src":"19501:32:60"},"nodeType":"YulIf","src":"19498:52:60"},{"nodeType":"YulVariableDeclaration","src":"19559:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19578:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19572:5:60"},"nodeType":"YulFunctionCall","src":"19572:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"19563:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19619:5:60"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"19597:21:60"},"nodeType":"YulFunctionCall","src":"19597:28:60"},"nodeType":"YulExpressionStatement","src":"19597:28:60"},{"nodeType":"YulAssignment","src":"19634:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"19644:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"19634:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19454:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"19465:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"19477:6:60","type":""}],"src":"19410:245:60"},{"body":{"nodeType":"YulBlock","src":"19817:241:60","statements":[{"nodeType":"YulAssignment","src":"19827:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19839:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19850:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19835:3:60"},"nodeType":"YulFunctionCall","src":"19835:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19827:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"19862:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"19872:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19866:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19930:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19945:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"19953:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19941:3:60"},"nodeType":"YulFunctionCall","src":"19941:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19923:6:60"},"nodeType":"YulFunctionCall","src":"19923:34:60"},"nodeType":"YulExpressionStatement","src":"19923:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19977:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"19988:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19973:3:60"},"nodeType":"YulFunctionCall","src":"19973:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19997:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"20005:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19993:3:60"},"nodeType":"YulFunctionCall","src":"19993:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19966:6:60"},"nodeType":"YulFunctionCall","src":"19966:43:60"},"nodeType":"YulExpressionStatement","src":"19966:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20029:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20040:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20025:3:60"},"nodeType":"YulFunctionCall","src":"20025:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"20045:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20018:6:60"},"nodeType":"YulFunctionCall","src":"20018:34:60"},"nodeType":"YulExpressionStatement","src":"20018:34:60"}]},"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":"19770:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19781:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19789:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19797:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19808:4:60","type":""}],"src":"19660:398:60"},{"body":{"nodeType":"YulBlock","src":"20237:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20254:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20265:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20247:6:60"},"nodeType":"YulFunctionCall","src":"20247:21:60"},"nodeType":"YulExpressionStatement","src":"20247:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20288:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20299:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20284:3:60"},"nodeType":"YulFunctionCall","src":"20284:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"20304:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20277:6:60"},"nodeType":"YulFunctionCall","src":"20277:30:60"},"nodeType":"YulExpressionStatement","src":"20277:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20327:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20338:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20323:3:60"},"nodeType":"YulFunctionCall","src":"20323:18:60"},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"20343:34:60","type":"","value":"ERC721: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20316:6:60"},"nodeType":"YulFunctionCall","src":"20316:62:60"},"nodeType":"YulExpressionStatement","src":"20316:62:60"},{"nodeType":"YulAssignment","src":"20387:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20399:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20410:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20395:3:60"},"nodeType":"YulFunctionCall","src":"20395:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20387:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20214:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20228:4:60","type":""}],"src":"20063:356:60"},{"body":{"nodeType":"YulBlock","src":"20598:178:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20615:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20626:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20608:6:60"},"nodeType":"YulFunctionCall","src":"20608:21:60"},"nodeType":"YulExpressionStatement","src":"20608:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20649:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20660:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20645:3:60"},"nodeType":"YulFunctionCall","src":"20645:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"20665:2:60","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20638:6:60"},"nodeType":"YulFunctionCall","src":"20638:30:60"},"nodeType":"YulExpressionStatement","src":"20638:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20688:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20699:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20684:3:60"},"nodeType":"YulFunctionCall","src":"20684:18:60"},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","kind":"string","nodeType":"YulLiteral","src":"20704:30:60","type":"","value":"ERC721: token already minted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20677:6:60"},"nodeType":"YulFunctionCall","src":"20677:58:60"},"nodeType":"YulExpressionStatement","src":"20677:58:60"},{"nodeType":"YulAssignment","src":"20744:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20756:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20767:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20752:3:60"},"nodeType":"YulFunctionCall","src":"20752:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20744:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20575:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20589:4:60","type":""}],"src":"20424:352:60"},{"body":{"nodeType":"YulBlock","src":"20955:175:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20972:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"20983:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20965:6:60"},"nodeType":"YulFunctionCall","src":"20965:21:60"},"nodeType":"YulExpressionStatement","src":"20965:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21006:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21017:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21002:3:60"},"nodeType":"YulFunctionCall","src":"21002:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"21022:2:60","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20995:6:60"},"nodeType":"YulFunctionCall","src":"20995:30:60"},"nodeType":"YulExpressionStatement","src":"20995:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21045:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21056:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21041:3:60"},"nodeType":"YulFunctionCall","src":"21041:18:60"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"21061:27:60","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21034:6:60"},"nodeType":"YulFunctionCall","src":"21034:55:60"},"nodeType":"YulExpressionStatement","src":"21034:55:60"},{"nodeType":"YulAssignment","src":"21098:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21110:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21121:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21106:3:60"},"nodeType":"YulFunctionCall","src":"21106:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21098:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20932:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20946:4:60","type":""}],"src":"20781:349:60"},{"body":{"nodeType":"YulBlock","src":"21309:240:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21326:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21337:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21319:6:60"},"nodeType":"YulFunctionCall","src":"21319:21:60"},"nodeType":"YulExpressionStatement","src":"21319:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21360:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21371:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21356:3:60"},"nodeType":"YulFunctionCall","src":"21356:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"21376:2:60","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21349:6:60"},"nodeType":"YulFunctionCall","src":"21349:30:60"},"nodeType":"YulExpressionStatement","src":"21349:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21399:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21410:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21395:3:60"},"nodeType":"YulFunctionCall","src":"21395:18:60"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nodeType":"YulLiteral","src":"21415:34:60","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21388:6:60"},"nodeType":"YulFunctionCall","src":"21388:62:60"},"nodeType":"YulExpressionStatement","src":"21388:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21470:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21481:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21466:3:60"},"nodeType":"YulFunctionCall","src":"21466:18:60"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nodeType":"YulLiteral","src":"21486:20:60","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21459:6:60"},"nodeType":"YulFunctionCall","src":"21459:48:60"},"nodeType":"YulExpressionStatement","src":"21459:48:60"},{"nodeType":"YulAssignment","src":"21516:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21528:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"21539:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21524:3:60"},"nodeType":"YulFunctionCall","src":"21524:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21516:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21286:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21300:4:60","type":""}],"src":"21135:414:60"},{"body":{"nodeType":"YulBlock","src":"21943:397:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21960:3:60"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"21965:25:60","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21953:6:60"},"nodeType":"YulFunctionCall","src":"21953:38:60"},"nodeType":"YulExpressionStatement","src":"21953:38:60"},{"nodeType":"YulVariableDeclaration","src":"22000:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22020:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22014:5:60"},"nodeType":"YulFunctionCall","src":"22014:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"22004:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22062:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"22070:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22058:3:60"},"nodeType":"YulFunctionCall","src":"22058:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22081:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"22086:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22077:3:60"},"nodeType":"YulFunctionCall","src":"22077:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"22091:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"22036:21:60"},"nodeType":"YulFunctionCall","src":"22036:62:60"},"nodeType":"YulExpressionStatement","src":"22036:62:60"},{"nodeType":"YulVariableDeclaration","src":"22107:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22121:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"22126:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22117:3:60"},"nodeType":"YulFunctionCall","src":"22117:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22111:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"22153:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22157:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22149:3:60"},"nodeType":"YulFunctionCall","src":"22149:11:60"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"22162:19:60","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22142:6:60"},"nodeType":"YulFunctionCall","src":"22142:40:60"},"nodeType":"YulExpressionStatement","src":"22142:40:60"},{"nodeType":"YulVariableDeclaration","src":"22191:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22213:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22207:5:60"},"nodeType":"YulFunctionCall","src":"22207:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"22195:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22255:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"22263:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22251:3:60"},"nodeType":"YulFunctionCall","src":"22251:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"22274:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22278:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22270:3:60"},"nodeType":"YulFunctionCall","src":"22270:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"22283:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"22229:21:60"},"nodeType":"YulFunctionCall","src":"22229:63:60"},"nodeType":"YulExpressionStatement","src":"22229:63:60"},{"nodeType":"YulAssignment","src":"22301:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"22316:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"22320:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22312:3:60"},"nodeType":"YulFunctionCall","src":"22312:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"22331:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22308:3:60"},"nodeType":"YulFunctionCall","src":"22308:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22301:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21911:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21916:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21924:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21935:3:60","type":""}],"src":"21554:786:60"},{"body":{"nodeType":"YulBlock","src":"22377:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22394:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22397:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22387:6:60"},"nodeType":"YulFunctionCall","src":"22387:88:60"},"nodeType":"YulExpressionStatement","src":"22387:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22491:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22494:4:60","type":"","value":"0x01"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22484:6:60"},"nodeType":"YulFunctionCall","src":"22484:15:60"},"nodeType":"YulExpressionStatement","src":"22484:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22515:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22518:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22508:6:60"},"nodeType":"YulFunctionCall","src":"22508:15:60"},"nodeType":"YulExpressionStatement","src":"22508:15:60"}]},"name":"panic_error_0x01","nodeType":"YulFunctionDefinition","src":"22345:184:60"},{"body":{"nodeType":"YulBlock","src":"22737:309:60","statements":[{"nodeType":"YulVariableDeclaration","src":"22747:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"22757:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22751:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22815:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22830:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"22838:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22826:3:60"},"nodeType":"YulFunctionCall","src":"22826:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22808:6:60"},"nodeType":"YulFunctionCall","src":"22808:34:60"},"nodeType":"YulExpressionStatement","src":"22808:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22862:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22873:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22858:3:60"},"nodeType":"YulFunctionCall","src":"22858:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22882:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"22890:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22878:3:60"},"nodeType":"YulFunctionCall","src":"22878:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22851:6:60"},"nodeType":"YulFunctionCall","src":"22851:43:60"},"nodeType":"YulExpressionStatement","src":"22851:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22914:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22925:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22910:3:60"},"nodeType":"YulFunctionCall","src":"22910:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"22930:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22903:6:60"},"nodeType":"YulFunctionCall","src":"22903:34:60"},"nodeType":"YulExpressionStatement","src":"22903:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22957:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"22968:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22953:3:60"},"nodeType":"YulFunctionCall","src":"22953:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"22973:3:60","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22946:6:60"},"nodeType":"YulFunctionCall","src":"22946:31:60"},"nodeType":"YulExpressionStatement","src":"22946:31:60"},{"nodeType":"YulAssignment","src":"22986:54:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"23012:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23024:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23035:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23020:3:60"},"nodeType":"YulFunctionCall","src":"23020:19:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"22994:17:60"},"nodeType":"YulFunctionCall","src":"22994:46:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22986:4:60"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22682:9:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22693:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22701:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22709:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22717:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22728:4:60","type":""}],"src":"22534:512:60"},{"body":{"nodeType":"YulBlock","src":"23131:169:60","statements":[{"body":{"nodeType":"YulBlock","src":"23177:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23186:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23189:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23179:6:60"},"nodeType":"YulFunctionCall","src":"23179:12:60"},"nodeType":"YulExpressionStatement","src":"23179:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"23152:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"23161:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23148:3:60"},"nodeType":"YulFunctionCall","src":"23148:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"23173:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"23144:3:60"},"nodeType":"YulFunctionCall","src":"23144:32:60"},"nodeType":"YulIf","src":"23141:52:60"},{"nodeType":"YulVariableDeclaration","src":"23202:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23221:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23215:5:60"},"nodeType":"YulFunctionCall","src":"23215:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"23206:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23264:5:60"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"23240:23:60"},"nodeType":"YulFunctionCall","src":"23240:30:60"},"nodeType":"YulExpressionStatement","src":"23240:30:60"},{"nodeType":"YulAssignment","src":"23279:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"23289:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"23279:6:60"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23097:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"23108:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"23120:6:60","type":""}],"src":"23051:249:60"},{"body":{"nodeType":"YulBlock","src":"23479:243:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23496:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23507:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23489:6:60"},"nodeType":"YulFunctionCall","src":"23489:21:60"},"nodeType":"YulExpressionStatement","src":"23489:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23530:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23541:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23526:3:60"},"nodeType":"YulFunctionCall","src":"23526:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"23546:2:60","type":"","value":"53"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23519:6:60"},"nodeType":"YulFunctionCall","src":"23519:30:60"},"nodeType":"YulExpressionStatement","src":"23519:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23569:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23580:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23565:3:60"},"nodeType":"YulFunctionCall","src":"23565:18:60"},{"hexValue":"455243373231456e756d657261626c653a20636f6e7365637574697665207472","kind":"string","nodeType":"YulLiteral","src":"23585:34:60","type":"","value":"ERC721Enumerable: consecutive tr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23558:6:60"},"nodeType":"YulFunctionCall","src":"23558:62:60"},"nodeType":"YulExpressionStatement","src":"23558:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23640:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23651:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23636:3:60"},"nodeType":"YulFunctionCall","src":"23636:18:60"},{"hexValue":"616e7366657273206e6f7420737570706f72746564","kind":"string","nodeType":"YulLiteral","src":"23656:23:60","type":"","value":"ansfers not supported"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23629:6:60"},"nodeType":"YulFunctionCall","src":"23629:51:60"},"nodeType":"YulExpressionStatement","src":"23629:51:60"},{"nodeType":"YulAssignment","src":"23689:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23701:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"23712:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23697:3:60"},"nodeType":"YulFunctionCall","src":"23697:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23689:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23456:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23470:4:60","type":""}],"src":"23305:417:60"},{"body":{"nodeType":"YulBlock","src":"23774:149:60","statements":[{"body":{"nodeType":"YulBlock","src":"23801:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23803:16:60"},"nodeType":"YulFunctionCall","src":"23803:18:60"},"nodeType":"YulExpressionStatement","src":"23803:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23794:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23787:6:60"},"nodeType":"YulFunctionCall","src":"23787:13:60"},"nodeType":"YulIf","src":"23784:39:60"},{"nodeType":"YulAssignment","src":"23832:85:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23843:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"23850:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23839:3:60"},"nodeType":"YulFunctionCall","src":"23839:78:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"23832:3:60"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"23756:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"23766:3:60","type":""}],"src":"23727:196:60"},{"body":{"nodeType":"YulBlock","src":"24102:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24119:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24130:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24112:6:60"},"nodeType":"YulFunctionCall","src":"24112:21:60"},"nodeType":"YulExpressionStatement","src":"24112:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24153:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24164:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24149:3:60"},"nodeType":"YulFunctionCall","src":"24149:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"24169:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24142:6:60"},"nodeType":"YulFunctionCall","src":"24142:30:60"},"nodeType":"YulExpressionStatement","src":"24142:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24192:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24203:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24188:3:60"},"nodeType":"YulFunctionCall","src":"24188:18:60"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"24208:34:60","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24181:6:60"},"nodeType":"YulFunctionCall","src":"24181:62:60"},"nodeType":"YulExpressionStatement","src":"24181:62:60"},{"nodeType":"YulAssignment","src":"24252:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24264:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"24275:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24260:3:60"},"nodeType":"YulFunctionCall","src":"24260:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24252:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24079:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24093:4:60","type":""}],"src":"23928:356:60"},{"body":{"nodeType":"YulBlock","src":"24321:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24338:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24341:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24331:6:60"},"nodeType":"YulFunctionCall","src":"24331:88:60"},"nodeType":"YulExpressionStatement","src":"24331:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24435:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24438:4:60","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24428:6:60"},"nodeType":"YulFunctionCall","src":"24428:15:60"},"nodeType":"YulExpressionStatement","src":"24428:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24459:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24462:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24452:6:60"},"nodeType":"YulFunctionCall","src":"24452:15:60"},"nodeType":"YulExpressionStatement","src":"24452:15:60"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"24289:184:60"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint96__to_t_uint96__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_array_uint256_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_contract$_ITokenMetadata_$15030(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_struct$_ValueVariables_$15040_memory_ptr_t_struct$_RewardSummations_$15045_memory_ptr_t_uint160_t_uint48_t_uint48__to_t_struct$_ValueVariables_$15040_memory_ptr_t_struct$_RewardSummations_$15045_memory_ptr_t_uint160_t_uint48_t_uint48__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, and(mload(value0), 0xffffffffffffffffffffffff))\n        let memberValue0 := mload(add(value0, 0x20))\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 0x20), and(memberValue0, _1))\n        mstore(add(headStart, 64), mload(value1))\n        mstore(add(headStart, 96), mload(add(value1, 0x20)))\n        mstore(add(headStart, 128), and(value2, _1))\n        let _2 := 0xffffffffffff\n        mstore(add(headStart, 160), and(value3, _2))\n        mstore(add(headStart, 192), and(value4, _2))\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0), 0x20)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := calldataload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(array, 32), add(_1, 32), _2)\n        mstore(add(add(array, _2), 32), 0)\n        value3 := array\n    }\n    function abi_encode_tuple_t_uint40__to_t_uint40__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffff))\n    }\n    function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_contract$_IERC20_$1502__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint96_t_uint160__to_t_uint96_t_uint160__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffff))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_contract$_ITokenMetadata_$15030__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r or approved\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"ERC721Enumerable: owner index ou\")\n        mstore(add(headStart, 96), \"t of bounds\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"ERC721Enumerable: global index o\")\n        mstore(add(headStart, 96), \"ut of bounds\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint96(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffffffffffff\n        let x_1 := and(x, _1)\n        let y_1 := and(y, _1)\n        if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n        sum := add(x_1, y_1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_contract$_PangolinStakingPositions_$16260_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := mload(_1)\n        let array := allocate_memory(array_allocation_size_bytes(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n        value0 := array\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"ERC721: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"ERC721: token already minted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function panic_error_0x01()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x01)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 53)\n        mstore(add(headStart, 64), \"ERC721Enumerable: consecutive tr\")\n        mstore(add(headStart, 96), \"ansfers not supported\")\n        tail := add(headStart, 128)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"16290":[{"length":32,"start":2053},{"length":32,"start":9753},{"length":32,"start":9984}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061034c5760003560e01c80637b0472f0116101bd578063b88d4fde116100f9578063d547741f116100a2578063e985e9c51161007c578063e985e9c5146108ac578063ebe2b12b146108e8578063f5b2cad714610900578063f5c455001461091357600080fd5b8063d547741f14610827578063ddc632621461083a578063df3e1aa41461084d57600080fd5b8063ca15c873116100d3578063ca15c873146107cd578063ce9e2daa146107e0578063d1af0c7d1461080057600080fd5b8063b88d4fde14610772578063c046371114610785578063c87b56dd146107ba57600080fd5b806399fbab8811610166578063a22cb46511610140578063a22cb46514610730578063aa5f7e2614610743578063aea62e3f14610756578063b470aade1461076957600080fd5b806399fbab8814610615578063a0712d6814610715578063a217fddf1461072857600080fd5b80639010d07c116101975780639010d07c146105c157806391d14854146105d457806395d89b411461060d57600080fd5b80637b0472f0146105935780637b0a47ee146105a65780637c2d6e01146105ae57600080fd5b806342842e0e1161028c5780635e4c911f116102355780636fdff40f1161020f5780636fdff40f1461054757806370a082311461055a57806374de4ec41461056d57806375c3fd3f1461058057600080fd5b80635e4c911f146105195780635faa65ff1461052c5780636352211e1461053457600080fd5b8063468cc41e11610266578063468cc41e146104e0578063496cea98146104f35780634f6ccce71461050657600080fd5b806342842e0e146104a757806342966c68146104ba578063441a3e70146104cd57600080fd5b806323b872dd116102f95780632f745c59116102d35780632f745c5914610465578063340b13361461047857806336568abe146104815780634231b0bd1461049457600080fd5b806323b872dd1461041c578063248a9ca31461042f5780632f2ff15d1461045257600080fd5b8063095ea7b31161032a578063095ea7b3146103b9578063098b8858146103ce57806318160ddd1461040a57600080fd5b806301ffc9a71461035157806306fdde0314610379578063081812fc1461038e575b600080fd5b61036461035f3660046136d9565b610936565b60405190151581526020015b60405180910390f35b610381610956565b604051610370919061374e565b6103a161039c366004613761565b6109e8565b6040516001600160a01b039091168152602001610370565b6103cc6103c736600461378f565b610a0f565b005b600c546103ed90600160a01b90046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610370565b6008545b604051908152602001610370565b6103cc61042a3660046137bb565b610b45565b61040e61043d366004613761565b6000908152600a602052604090206001015490565b6103cc6104603660046137fc565b610bcc565b61040e61047336600461378f565b610bf1565b61040e60135481565b6103cc61048f3660046137fc565b610c99565b6103cc6104a2366004613761565b610d25565b6103cc6104b53660046137bb565b610d31565b6103cc6104c8366004613761565b610d4c565b6103cc6104db36600461382c565b610da9565b61040e6104ee366004613761565b610dbb565b61040e610501366004613761565b610e19565b61040e610514366004613761565b610e3f565b6103cc61052736600461389a565b610ee3565b6103cc610f7a565b6103a1610542366004613761565b61108c565b6103cc610555366004613906565b6110f1565b61040e610568366004613906565b61115f565b6103cc61057b366004613761565b6111f9565b6103cc61058e366004613761565b611413565b6103cc6105a136600461382c565b611477565b61040e611489565b6103cc6105bc366004613761565b6114cc565b6103a16105cf36600461382c565b6115a1565b6103646105e23660046137fc565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103816115c0565b6106b1610623366004613761565b600e602090815260009182526040918290208251808401845281546bffffffffffffffffffffffff811682526001600160a01b036c0100000000000000000000000090910481168285015284518086019095526001830154855260028301549385019390935260039091015490929181169065ffffffffffff600160a01b8204811691600160d01b90041685565b6040805186516bffffffffffffffffffffffff1681526020968701516001600160a01b03908116888301528651928201929092529590940151606086015292909116608084015265ffffffffffff90811660a08401521660c082015260e001610370565b61040e610723366004613761565b6115cf565b61040e600081565b6103cc61073e366004613931565b611608565b6103cc610751366004613761565b611613565b6103cc61076436600461389a565b611626565b61040e600d5481565b6103cc6107803660046139ce565b6116b5565b600c546107a4906a0100000000000000000000900464ffffffffff1681565b60405164ffffffffff9091168152602001610370565b6103816107c8366004613761565b611743565b61040e6107db366004613761565b6117de565b6107f36107ee366004613a7d565b6117f5565b6040516103709190613ab2565b6103a17f000000000000000000000000000000000000000000000000000000000000000081565b6103cc6108353660046137fc565b6118bc565b6103cc610848366004613761565b6118e1565b601054610880906bffffffffffffffffffffffff8116906c0100000000000000000000000090046001600160a01b031682565b604080516bffffffffffffffffffffffff90931683526001600160a01b03909116602083015201610370565b6103646108ba366004613af6565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b600c546107a490600160781b900464ffffffffff1681565b600f546103a1906001600160a01b031681565b601154601254610921919082565b60408051928352602083019190915201610370565b6000610941826119ab565b806109505750610950826119e9565b92915050565b60606000805461096590613b24565b80601f016020809104026020016040519081016040528092919081815260200182805461099190613b24565b80156109de5780601f106109b3576101008083540402835291602001916109de565b820191906000526020600020905b8154815290600101906020018083116109c157829003601f168201915b5050505050905090565b60006109f382611a27565b506000908152600460205260409020546001600160a01b031690565b6000610a1a8261108c565b9050806001600160a01b0316836001600160a01b031603610aa85760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b0382161480610ac45750610ac481336108ba565b610b365760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610a9f565b610b408383611a8b565b505050565b610b4f3382611b06565b610bc15760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610a9f565b610b40838383611b84565b6000828152600a6020526040902060010154610be781611dc7565b610b408383611dd1565b6000610bfc8361115f565b8210610c705760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610a9f565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6001600160a01b0381163314610d175760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a9f565b610d218282611df3565b5050565b610d2e81611e15565b50565b610b40838383604051806020016040528060008152506116b5565b6000818152600e60205260409020546bffffffffffffffffffffffff1615610da0576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d2e81611f2c565b610db1611f8a565b610d218282611fdf565b600080610dc860106121af565b6000848152600e6020526040812091925090610de3906121af565b90508015610e0e578181610df5611489565b610dff9190613b74565b610e099190613b93565b610e11565b60005b949350505050565b6000818152600e6020526040812081610e338260016121f0565b9050610e1181836122fb565b6000610e4a60085490565b8210610ebe5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610a9f565b60088281548110610ed157610ed1613bb5565b90600052602060002001549050919050565b610eeb611f8a565b82818114610f25576040517f568efce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610f7257610f6a868683818110610f4557610f45613bb5565b90506020020135858584818110610f5e57610f5e613bb5565b905060200201356123b7565b600101610f28565b505050505050565b6000610f8581611dc7565b600c54600160781b900464ffffffffff16428111610fcf576040517fecdd1c2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c805464ffffffffff42908116600160781b027fffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffff91850369ffffffffffffffffffff8416026bffffffffffffffffffffffff600160a01b808604821683900390911602929092166effffffffffffffffffffffffffffff909316929092179190911790915561105e816125e4565b6040517fac02d07d013ae7c7e3ee940f8df0877c2ab1103bf87ab258ce31665f7111f09290600090a1505050565b6000818152600260205260408120546001600160a01b0316806109505760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610a9f565b60006110fc81611dc7565b600f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527f8a1803707dfd67114623e59e8141ee8d109332da42c6c3e8212724807e140a6b906020015b60405180910390a15050565b60006001600160a01b0382166111dd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610a9f565b506001600160a01b031660009081526003602052604090205490565b7f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb61122381611dc7565b600d546bffffffffffffffffffffffff83111561126c576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600c60148282829054906101000a90046bffffffffffffffffffffffff166112959190613bcb565b82546bffffffffffffffffffffffff9182166101009390930a928302919092021990911617905550600c5460009064ffffffffff600160781b820481166a010000000000000000000090920416106112f0575080830461132a565b50600c5464ffffffffff6a010000000000000000000082048116600160781b83049091160369ffffffffffffffffffff9091160283018190045b8060000361134b576040516324d0659d60e11b815260040160405180910390fd5b600c80544284810164ffffffffff908116600160781b027fffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffff919092166a0100000000000000000000027fffffffffffffffffffffffffffffffffff00000000000000000000000000000090931669ffffffffffffffffffff86161792909217919091161790556113da846126c5565b6040518481527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a150505050565b600061141e81611dc7565b6202a30082111561144257604051632d0483c560e21b815260040160405180910390fd5b60138290556040518281527fa959cb2cc91580147f93f66fb85db8f308cfdaef3989ab5265408ff80ef6fa6690602001611153565b61147f611f8a565b610d2182826123b7565b600c5460009042600160781b90910464ffffffffff16106114b857600c5469ffffffffffffffffffff166114bb565b60005b69ffffffffffffffffffff16905090565b60006114d781611dc7565b600c5442600160781b90910464ffffffffff161115611522576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6201000182101561154657604051632d0483c560e21b815260040160405180910390fd5b64010000000082111561156c57604051632d0483c560e21b815260040160405180910390fd5b600d8290556040518281527fbd6eb9cf4d6e2902587c57e3163aaafdb46e3b3f2086bdfa75c790228930a9d790602001611153565b6000828152600b602052604081206115b99083612737565b9392505050565b60606001805461096590613b24565b60006115d9611f8a565b6014600081546115e890613bfb565b918290555090506115f93382612743565b61160381836123b7565b919050565b610d213383836128e9565b61161b611f8a565b610d2e8160006123b7565b61162e611f8a565b82818114611668576040517f568efce200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610f72576116ad86868381811061168857611688613bb5565b905060200201358585848181106116a1576116a1613bb5565b90506020020135611fdf565b60010161166b565b6116bf3383611b06565b6117315760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610a9f565b61173d848484846129b7565b50505050565b606061174e82611a27565b600f546040517fe9dc6375000000000000000000000000000000000000000000000000000000008152306004820152602481018490526001600160a01b039091169063e9dc637590604401600060405180830381865afa1580156117b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109509190810190613c15565b6000818152600b6020526040812061095090612a40565b60608183111561181857604051632d0483c560e21b815260040160405180910390fd5b60006118248484613c83565b61182f906001613c9a565b905060008167ffffffffffffffff81111561184c5761184c61395f565b604051908082528060200260200182016040528015611875578160200160208202803683370190505b5090505b8385116118b35761188a8686610bf1565b81868151811061189c5761189c613bb5565b602002602001018181525050846001019450611879565b95945050505050565b6000828152600a60205260409020600101546118d781611dc7565b610b408383611df3565b6118e9611f8a565b610d2e816000611fdf565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610d21576000828152600a602090815260408083206001600160a01b03851684529091529020805460ff191660011790556119523390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006115b9836001600160a01b038416612a4a565b60006001600160e01b031982167f5a05180f000000000000000000000000000000000000000000000000000000001480610950575061095082612a99565b60006001600160e01b031982167f780e9d63000000000000000000000000000000000000000000000000000000001480610950575061095082612ad7565b6000818152600260205260409020546001600160a01b0316610d2e5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610a9f565b6000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091558190611acd8261108c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611b128361108c565b9050806001600160a01b0316846001600160a01b03161480611b5957506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e115750836001600160a01b0316611b72846109e8565b6001600160a01b031614949350505050565b826001600160a01b0316611b978261108c565b6001600160a01b031614611c135760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610a9f565b6001600160a01b038216611c8e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610a9f565b611c9b8383836001612b72565b826001600160a01b0316611cae8261108c565b6001600160a01b031614611d2a5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610a9f565b6000818152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610d2e8133612bfa565b611ddb82826118f4565b6000828152600b60205260409020610b409082611996565b611dfd8282612c6f565b6000828152600b60205260409020610b409082612cf2565b8033611e208261108c565b6001600160a01b031614611e4757604051631c62c2b160e11b815260040160405180910390fd5b6000828152600e60209081526040918290208251808401909352546bffffffffffffffffffffffff8082168085526001600160a01b036c01000000000000000000000000938490048116948601859052601080548085168490039094166bffffffffffffffffffffffff1990941684178590048216959095031690920217909155611ed184611f2c565b611ee8816bffffffffffffffffffffffff166125e4565b6000816bffffffffffffffffffffffff16857fabd2ab552bc04cdbfa4a54107fa44ac8c9cb06f6d21da11933ac05a653be19e960405160405180910390a450505050565b8033611f378261108c565b6001600160a01b031614611f5e57604051631c62c2b160e11b815260040160405180910390fd5b6000828152600e60205260408120818155600181018290556002810182905560030155610d2182612d07565b6000611f94612db7565b9050600080611fa283612e04565b915091508160116000016000828254611fbb9190613c9a565b909155505060128054829190600090611fd5908490613c9a565b9091555050505050565b8133611fea8261108c565b6001600160a01b03161461201157604051631c62c2b160e11b815260040160405180910390fd5b6000838152600e6020526040902080546bffffffffffffffffffffffff1680841115612069576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061207483612e7d565b905060006120828287613c9a565b9050806000036120a5576040516324d0659d60e11b815260040160405180910390fd5b601080546bffffffffffffffffffffffff1981166bffffffffffffffffffffffff918216899003821690811780845587546c01000000000000000000000000908190046001600160a01b039081168c8a0342818102958590048416860192909203831684029095179096559290931691169091021785557fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff600160d01b65ffffffffffff90921691820216600160a01b90910217600385015560115460018501556012546002850155612177816125e4565b8186887fabd2ab552bc04cdbfa4a54107fa44ac8c9cb06f6d21da11933ac05a653be19e960405160405180910390a450505050505050565b80546000906001600160a01b036c01000000000000000000000000820416906121e6906bffffffffffffffffffffffff1642613b74565b6109509190613c83565b60408051808201909152600080825260208201526003830154600160a01b900465ffffffffffff1660000361223957506040805180820190915260008082526020820152610950565b6001830182156122bd57600061224d612e97565b905060008061225b83612e04565b9150915060405180604001604052808560000154846011600001546122809190613c9a565b61228a9190613c83565b81526020018560010154836011600101546122a59190613c9a565b6122af9190613c83565b815250945050505050610950565b60408051808201909152815460115482916122d791613c83565b815260200182600101546011600101546122f19190613c83565b9052949350505050565b6003810154600090600160a01b900465ffffffffffff16156123ae576003820154602084015170010000000000000000000000000000000091612349916001600160a01b0390911690613b74565b8354600385015460208701516bffffffffffffffffffffffff9092169161237f91600160a01b900465ffffffffffff1690613b74565b865161238b9190613c83565b6123959190613b74565b61239f9190613c9a565b6123a99190613b93565b6115b9565b50600092915050565b81336123c28261108c565b6001600160a01b0316146123e957604051631c62c2b160e11b815260040160405180910390fd5b6000838152600e602052604081209061240182612e7d565b9050600061240f8286613c9a565b905080600003612432576040516324d0659d60e11b815260040160405180910390fd5b6010546000906124519083906bffffffffffffffffffffffff16613c9a565b90506bffffffffffffffffffffffff811115612499576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601080546bffffffffffffffffffffffff8381166001600160a01b036c0100000000000000000000000093849004811642808902918201831686026bffffffffffffffffffffffff19908116949094179096558954808516808a0190951693168317859004821601811690930217875560038701805480841665ffffffffffff600160a01b8304169095039092029390930190911673ffffffffffffffffffffffffffffffffffffffff1990911617905561259d8460038101805465ffffffffffff4216600160a01b027fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff9091161790556011546001820155601254600290910155565b85156125ac576125ac866126c5565b8286887fc8acfabcfb3af3df23b7b8a1aa1371d042bee71e137eeedc881ffa8f3c44626160405160405180910390a450505050505050565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044015b6020604051808303816000875af115801561266b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268f9190613cb2565b610d2e576040517fbfa871c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd9060640161264c565b60006115b98383612f16565b6001600160a01b0382166127995760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a9f565b6000818152600260205260409020546001600160a01b0316156127fe5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a9f565b61280c600083836001612b72565b6000818152600260205260409020546001600160a01b0316156128715760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a9f565b6001600160a01b0382166000818152600360209081526040808320805460010190558483526002909152808220805473ffffffffffffffffffffffffffffffffffffffff19168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b03160361294a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a9f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6129c2848484611b84565b6129ce84848484612f40565b61173d5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a9f565b6000610950825490565b6000818152600183016020526040812054612a9157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610950565b506000610950565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806109505750610950826119e9565b60006001600160e01b031982167f80ac58cd000000000000000000000000000000000000000000000000000000001480612b3a57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061095057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610950565b336001600160a01b03851614612bee576013546000838152600e60205260408120600301549091612bb191600160d01b900465ffffffffffff16613c9a565b9050804211612bec576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b61173d848484846130c9565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff16610d2157612c2d81613205565b612c38836020613217565b604051602001612c49929190613ccf565b60408051601f198184030181529082905262461bcd60e51b8252610a9f9160040161374e565b6000828152600a602090815260408083206001600160a01b038516845290915290205460ff1615610d21576000828152600a602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006115b9836001600160a01b038416613440565b6000612d128261108c565b9050612d22816000846001612b72565b612d2b8261108c565b6000838152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000612dc1612e97565b600c80547fffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffff166a01000000000000000000004264ffffffffff1602179055919050565b6000806000612e1360106121af565b90508015612e775780700100000000000000000000000000000000612e384287613b74565b612e429190613b74565b612e4c9190613b93565b925080612e6a70010000000000000000000000000000000086613b74565b612e749190613b93565b91505b50915091565b600080612e8b8360006121f0565b90506115b981846122fb565b600c54600090600160781b900464ffffffffff1681428210612eb95742612ebb565b815b600c549091506a0100000000000000000000900464ffffffffff1680821115612ef457600c5469ffffffffffffffffffff168183030293505b6bffffffffffffffffffffffff841115612f1057612f10613d50565b50505090565b6000826000018281548110612f2d57612f2d613bb5565b9060005260206000200154905092915050565b60006001600160a01b0384163b156130be576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a0290612f9d903390899088908890600401613d66565b6020604051808303816000875af1925050508015612fd8575060408051601f3d908101601f19168201909252612fd591810190613da2565b60015b61308b573d808015613006576040519150601f19603f3d011682016040523d82523d6000602084013e61300b565b606091505b5080516000036130835760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610a9f565b805181602001fd5b6001600160e01b0319167f150b7a0200000000000000000000000000000000000000000000000000000000149050610e11565b506001949350505050565b60018111156131405760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f7274656400000000000000000000006064820152608401610a9f565b816001600160a01b03851661319c5761319781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6131bf565b836001600160a01b0316856001600160a01b0316146131bf576131bf8582613533565b6001600160a01b0384166131db576131d6816135d0565b6131fe565b846001600160a01b0316846001600160a01b0316146131fe576131fe848261367f565b5050505050565b60606109506001600160a01b03831660145b60606000613226836002613b74565b613231906002613c9a565b67ffffffffffffffff8111156132495761324961395f565b6040519080825280601f01601f191660200182016040528015613273576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106132aa576132aa613bb5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061330d5761330d613bb5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613349846002613b74565b613354906001613c9a565b90505b60018111156133f1577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061339557613395613bb5565b1a60f81b8282815181106133ab576133ab613bb5565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936133ea81613dbf565b9050613357565b5083156115b95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a9f565b60008181526001830160205260408120548015613529576000613464600183613c83565b855490915060009061347890600190613c83565b90508181146134dd57600086600001828154811061349857613498613bb5565b90600052602060002001549050808760000184815481106134bb576134bb613bb5565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806134ee576134ee613dd6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610950565b6000915050610950565b600060016135408461115f565b61354a9190613c83565b60008381526007602052604090205490915080821461359d576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906135e290600190613c83565b6000838152600960205260408120546008805493945090928490811061360a5761360a613bb5565b90600052602060002001549050806008838154811061362b5761362b613bb5565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061366357613663613dd6565b6001900381819060005260206000200160009055905550505050565b600061368a8361115f565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b031981168114610d2e57600080fd5b6000602082840312156136eb57600080fd5b81356115b9816136c3565b60005b838110156137115781810151838201526020016136f9565b8381111561173d5750506000910152565b6000815180845261373a8160208601602086016136f6565b601f01601f19169290920160200192915050565b6020815260006115b96020830184613722565b60006020828403121561377357600080fd5b5035919050565b6001600160a01b0381168114610d2e57600080fd5b600080604083850312156137a257600080fd5b82356137ad8161377a565b946020939093013593505050565b6000806000606084860312156137d057600080fd5b83356137db8161377a565b925060208401356137eb8161377a565b929592945050506040919091013590565b6000806040838503121561380f57600080fd5b8235915060208301356138218161377a565b809150509250929050565b6000806040838503121561383f57600080fd5b50508035926020909101359150565b60008083601f84011261386057600080fd5b50813567ffffffffffffffff81111561387857600080fd5b6020830191508360208260051b850101111561389357600080fd5b9250929050565b600080600080604085870312156138b057600080fd5b843567ffffffffffffffff808211156138c857600080fd5b6138d48883890161384e565b909650945060208701359150808211156138ed57600080fd5b506138fa8782880161384e565b95989497509550505050565b60006020828403121561391857600080fd5b81356115b98161377a565b8015158114610d2e57600080fd5b6000806040838503121561394457600080fd5b823561394f8161377a565b9150602083013561382181613923565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561399e5761399e61395f565b604052919050565b600067ffffffffffffffff8211156139c0576139c061395f565b50601f01601f191660200190565b600080600080608085870312156139e457600080fd5b84356139ef8161377a565b935060208501356139ff8161377a565b925060408501359150606085013567ffffffffffffffff811115613a2257600080fd5b8501601f81018713613a3357600080fd5b8035613a46613a41826139a6565b613975565b818152886020838501011115613a5b57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080600060608486031215613a9257600080fd5b8335613a9d8161377a565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b81811015613aea57835183529284019291840191600101613ace565b50909695505050505050565b60008060408385031215613b0957600080fd5b8235613b148161377a565b915060208301356138218161377a565b600181811c90821680613b3857607f821691505b602082108103613b5857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613b8e57613b8e613b5e565b500290565b600082613bb057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006bffffffffffffffffffffffff808316818516808303821115613bf257613bf2613b5e565b01949350505050565b60006000198203613c0e57613c0e613b5e565b5060010190565b600060208284031215613c2757600080fd5b815167ffffffffffffffff811115613c3e57600080fd5b8201601f81018413613c4f57600080fd5b8051613c5d613a41826139a6565b818152856020838501011115613c7257600080fd5b6118b38260208301602086016136f6565b600082821015613c9557613c95613b5e565b500390565b60008219821115613cad57613cad613b5e565b500190565b600060208284031215613cc457600080fd5b81516115b981613923565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613d078160178501602088016136f6565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613d448160288401602088016136f6565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b60006001600160a01b03808716835280861660208401525083604083015260806060830152613d986080830184613722565b9695505050505050565b600060208284031215613db457600080fd5b81516115b9816136c3565b600081613dce57613dce613b5e565b506000190190565b634e487b7160e01b600052603160045260246000fdfea264697066735822122017a394812d1286dd9b95069c350588dcd44f49fe165a50aa00118ed5f43afa7f64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B0472F0 GT PUSH2 0x1BD JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x8AC JUMPI DUP1 PUSH4 0xEBE2B12B EQ PUSH2 0x8E8 JUMPI DUP1 PUSH4 0xF5B2CAD7 EQ PUSH2 0x900 JUMPI DUP1 PUSH4 0xF5C45500 EQ PUSH2 0x913 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD547741F EQ PUSH2 0x827 JUMPI DUP1 PUSH4 0xDDC63262 EQ PUSH2 0x83A JUMPI DUP1 PUSH4 0xDF3E1AA4 EQ PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCA15C873 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x7CD JUMPI DUP1 PUSH4 0xCE9E2DAA EQ PUSH2 0x7E0 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0xC0463711 EQ PUSH2 0x785 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x7BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x99FBAB88 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x730 JUMPI DUP1 PUSH4 0xAA5F7E26 EQ PUSH2 0x743 JUMPI DUP1 PUSH4 0xAEA62E3F EQ PUSH2 0x756 JUMPI DUP1 PUSH4 0xB470AADE EQ PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x99FBAB88 EQ PUSH2 0x615 JUMPI DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x715 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C GT PUSH2 0x197 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x5C1 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5D4 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x60D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B0472F0 EQ PUSH2 0x593 JUMPI DUP1 PUSH4 0x7B0A47EE EQ PUSH2 0x5A6 JUMPI DUP1 PUSH4 0x7C2D6E01 EQ PUSH2 0x5AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42842E0E GT PUSH2 0x28C JUMPI DUP1 PUSH4 0x5E4C911F GT PUSH2 0x235 JUMPI DUP1 PUSH4 0x6FDFF40F GT PUSH2 0x20F JUMPI DUP1 PUSH4 0x6FDFF40F EQ PUSH2 0x547 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x55A JUMPI DUP1 PUSH4 0x74DE4EC4 EQ PUSH2 0x56D JUMPI DUP1 PUSH4 0x75C3FD3F EQ PUSH2 0x580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5E4C911F EQ PUSH2 0x519 JUMPI DUP1 PUSH4 0x5FAA65FF EQ PUSH2 0x52C JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x534 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x468CC41E GT PUSH2 0x266 JUMPI DUP1 PUSH4 0x468CC41E EQ PUSH2 0x4E0 JUMPI DUP1 PUSH4 0x496CEA98 EQ PUSH2 0x4F3 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42842E0E EQ PUSH2 0x4A7 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x4BA JUMPI DUP1 PUSH4 0x441A3E70 EQ PUSH2 0x4CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x2F9 JUMPI DUP1 PUSH4 0x2F745C59 GT PUSH2 0x2D3 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x465 JUMPI DUP1 PUSH4 0x340B1336 EQ PUSH2 0x478 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x481 JUMPI DUP1 PUSH4 0x4231B0BD EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x41C JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x42F JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x452 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x32A JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x98B8858 EQ PUSH2 0x3CE JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x351 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x38E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x364 PUSH2 0x35F CALLDATASIZE PUSH1 0x4 PUSH2 0x36D9 JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x381 PUSH2 0x956 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x374E JUMP JUMPDEST PUSH2 0x3A1 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x9E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x3C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x378F JUMP JUMPDEST PUSH2 0xA0F JUMP JUMPDEST STOP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x3ED SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x42A CALLDATASIZE PUSH1 0x4 PUSH2 0x37BB JUMP JUMPDEST PUSH2 0xB45 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x43D CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x460 CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST PUSH2 0x40E PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x378F JUMP JUMPDEST PUSH2 0xBF1 JUMP JUMPDEST PUSH2 0x40E PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x48F CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH2 0xC99 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xD25 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x37BB JUMP JUMPDEST PUSH2 0xD31 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xD4C JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x4DB CALLDATASIZE PUSH1 0x4 PUSH2 0x382C JUMP JUMPDEST PUSH2 0xDA9 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x4EE CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x40E PUSH2 0x501 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xE19 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x514 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0xE3F JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x527 CALLDATASIZE PUSH1 0x4 PUSH2 0x389A JUMP JUMPDEST PUSH2 0xEE3 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0xF7A JUMP JUMPDEST PUSH2 0x3A1 PUSH2 0x542 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x108C JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x555 CALLDATASIZE PUSH1 0x4 PUSH2 0x3906 JUMP JUMPDEST PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x568 CALLDATASIZE PUSH1 0x4 PUSH2 0x3906 JUMP JUMPDEST PUSH2 0x115F JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x57B CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x58E CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x1413 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x5A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x382C JUMP JUMPDEST PUSH2 0x1477 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x5BC CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x14CC JUMP JUMPDEST PUSH2 0x3A1 PUSH2 0x5CF CALLDATASIZE PUSH1 0x4 PUSH2 0x382C JUMP JUMPDEST PUSH2 0x15A1 JUMP JUMPDEST PUSH2 0x364 PUSH2 0x5E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x15C0 JUMP JUMPDEST PUSH2 0x6B1 PUSH2 0x623 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE DUP2 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 SWAP1 SWAP2 DIV DUP2 AND DUP3 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE PUSH1 0x1 DUP4 ADD SLOAD DUP6 MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP4 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 SWAP1 SWAP2 ADD SLOAD SWAP1 SWAP3 SWAP2 DUP2 AND SWAP1 PUSH6 0xFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV AND DUP6 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 SWAP7 DUP8 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP9 DUP4 ADD MSTORE DUP7 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP6 SWAP1 SWAP5 ADD MLOAD PUSH1 0x60 DUP7 ADD MSTORE SWAP3 SWAP1 SWAP2 AND PUSH1 0x80 DUP5 ADD MSTORE PUSH6 0xFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x723 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x15CF JUMP JUMPDEST PUSH2 0x40E PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x73E CALLDATASIZE PUSH1 0x4 PUSH2 0x3931 JUMP JUMPDEST PUSH2 0x1608 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x751 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x1613 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x764 CALLDATASIZE PUSH1 0x4 PUSH2 0x389A JUMP JUMPDEST PUSH2 0x1626 JUMP JUMPDEST PUSH2 0x40E PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x780 CALLDATASIZE PUSH1 0x4 PUSH2 0x39CE JUMP JUMPDEST PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x7A4 SWAP1 PUSH11 0x100000000000000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH5 0xFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x7C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x40E PUSH2 0x7DB CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x17DE JUMP JUMPDEST PUSH2 0x7F3 PUSH2 0x7EE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A7D JUMP JUMPDEST PUSH2 0x17F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x3AB2 JUMP JUMPDEST PUSH2 0x3A1 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x835 CALLDATASIZE PUSH1 0x4 PUSH2 0x37FC JUMP JUMPDEST PUSH2 0x18BC JUMP JUMPDEST PUSH2 0x3CC PUSH2 0x848 CALLDATASIZE PUSH1 0x4 PUSH2 0x3761 JUMP JUMPDEST PUSH2 0x18E1 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x880 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND SWAP1 PUSH13 0x1000000000000000000000000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH2 0x370 JUMP JUMPDEST PUSH2 0x364 PUSH2 0x8BA CALLDATASIZE PUSH1 0x4 PUSH2 0x3AF6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x7A4 SWAP1 PUSH1 0x1 PUSH1 0x78 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x3A1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x12 SLOAD PUSH2 0x921 SWAP2 SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x370 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x941 DUP3 PUSH2 0x19AB JUMP JUMPDEST DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x19E9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x965 SWAP1 PUSH2 0x3B24 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x991 SWAP1 PUSH2 0x3B24 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x9DE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9B3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9DE JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x9C1 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F3 DUP3 PUSH2 0x1A27 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA1A DUP3 PUSH2 0x108C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xAA8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0xAC4 JUMPI POP PUSH2 0xAC4 DUP2 CALLER PUSH2 0x8BA JUMP JUMPDEST PUSH2 0xB36 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 PUSH2 0x1A8B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB4F CALLER DUP3 PUSH2 0x1B06 JUMP JUMPDEST PUSH2 0xBC1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 DUP4 PUSH2 0x1B84 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xBE7 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 PUSH2 0x1DD1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBFC DUP4 PUSH2 0x115F JUMP JUMPDEST DUP3 LT PUSH2 0xC70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74206F6620626F756E6473000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xD17 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0xD21 DUP3 DUP3 PUSH2 0x1DF3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH2 0x1E15 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0xDA0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC1AB6DC100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD2E DUP2 PUSH2 0x1F2C JUMP JUMPDEST PUSH2 0xDB1 PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD21 DUP3 DUP3 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDC8 PUSH1 0x10 PUSH2 0x21AF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP3 POP SWAP1 PUSH2 0xDE3 SWAP1 PUSH2 0x21AF JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xE0E JUMPI DUP2 DUP2 PUSH2 0xDF5 PUSH2 0x1489 JUMP JUMPDEST PUSH2 0xDFF SWAP2 SWAP1 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0xE09 SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST PUSH2 0xE11 JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 PUSH2 0xE33 DUP3 PUSH1 0x1 PUSH2 0x21F0 JUMP JUMPDEST SWAP1 POP PUSH2 0xE11 DUP2 DUP4 PUSH2 0x22FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE4A PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0xEBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7574206F6620626F756E64730000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xED1 JUMPI PUSH2 0xED1 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEEB PUSH2 0x1F8A JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0xF25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x568EFCE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF72 JUMPI PUSH2 0xF6A DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0xF45 JUMPI PUSH2 0xF45 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0xF5E JUMPI PUSH2 0xF5E PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x23B7 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xF28 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF85 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x78 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND TIMESTAMP DUP2 GT PUSH2 0xFCF JUMPI PUSH1 0x40 MLOAD PUSH32 0xECDD1C2900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH5 0xFFFFFFFFFF TIMESTAMP SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x78 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP6 SUB PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP5 AND MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL DUP1 DUP7 DIV DUP3 AND DUP4 SWAP1 SUB SWAP1 SWAP2 AND MUL SWAP3 SWAP1 SWAP3 AND PUSH15 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x105E DUP2 PUSH2 0x25E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xAC02D07D013AE7C7E3EE940F8DF0877C2AB1103BF87AB258CE31665F7111F092 SWAP1 PUSH1 0x0 SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10FC DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x8A1803707DFD67114623E59E8141EE8D109332DA42C6C3E8212724807E140A6B SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x11DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH2 0x1223 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x126C JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0xC PUSH1 0x14 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1295 SWAP2 SWAP1 PUSH2 0x3BCB JUMP JUMPDEST DUP3 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH2 0x100 SWAP4 SWAP1 SWAP4 EXP SWAP3 DUP4 MUL SWAP2 SWAP1 SWAP3 MUL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE POP PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH5 0xFFFFFFFFFF PUSH1 0x1 PUSH1 0x78 SHL DUP3 DIV DUP2 AND PUSH11 0x100000000000000000000 SWAP1 SWAP3 DIV AND LT PUSH2 0x12F0 JUMPI POP DUP1 DUP4 DIV PUSH2 0x132A JUMP JUMPDEST POP PUSH1 0xC SLOAD PUSH5 0xFFFFFFFFFF PUSH11 0x100000000000000000000 DUP3 DIV DUP2 AND PUSH1 0x1 PUSH1 0x78 SHL DUP4 DIV SWAP1 SWAP2 AND SUB PUSH10 0xFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND MUL DUP4 ADD DUP2 SWAP1 DIV JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x134B JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xC DUP1 SLOAD TIMESTAMP DUP5 DUP2 ADD PUSH5 0xFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x78 SHL MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP3 AND PUSH11 0x100000000000000000000 MUL PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000 SWAP1 SWAP4 AND PUSH10 0xFFFFFFFFFFFFFFFFFFFF DUP7 AND OR SWAP3 SWAP1 SWAP3 OR SWAP2 SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH2 0x13DA DUP5 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xDE88A922E0D3B88B24E9623EFEB464919C6BF9F66857A65E2BFCF2CE87A9433D SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x141E DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH3 0x2A300 DUP3 GT ISZERO PUSH2 0x1442 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x13 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xA959CB2CC91580147F93F66FB85DB8F308CFDAEF3989AB5265408FF80EF6FA66 SWAP1 PUSH1 0x20 ADD PUSH2 0x1153 JUMP JUMPDEST PUSH2 0x147F PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD21 DUP3 DUP3 PUSH2 0x23B7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 TIMESTAMP PUSH1 0x1 PUSH1 0x78 SHL SWAP1 SWAP2 DIV PUSH5 0xFFFFFFFFFF AND LT PUSH2 0x14B8 JUMPI PUSH1 0xC SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14BB JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14D7 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH1 0xC SLOAD TIMESTAMP PUSH1 0x1 PUSH1 0x78 SHL SWAP1 SWAP2 DIV PUSH5 0xFFFFFFFFFF AND GT ISZERO PUSH2 0x1522 JUMPI PUSH1 0x40 MLOAD PUSH32 0x85DE62500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x10001 DUP3 LT ISZERO PUSH2 0x1546 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x156C JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xD DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD6EB9CF4D6E2902587C57E3163AAAFDB46E3B3F2086BDFA75C790228930A9D7 SWAP1 PUSH1 0x20 ADD PUSH2 0x1153 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x15B9 SWAP1 DUP4 PUSH2 0x2737 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x965 SWAP1 PUSH2 0x3B24 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D9 PUSH2 0x1F8A JUMP JUMPDEST PUSH1 0x14 PUSH1 0x0 DUP2 SLOAD PUSH2 0x15E8 SWAP1 PUSH2 0x3BFB JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP1 POP PUSH2 0x15F9 CALLER DUP3 PUSH2 0x2743 JUMP JUMPDEST PUSH2 0x1603 DUP2 DUP4 PUSH2 0x23B7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD21 CALLER DUP4 DUP4 PUSH2 0x28E9 JUMP JUMPDEST PUSH2 0x161B PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x0 PUSH2 0x23B7 JUMP JUMPDEST PUSH2 0x162E PUSH2 0x1F8A JUMP JUMPDEST DUP3 DUP2 DUP2 EQ PUSH2 0x1668 JUMPI PUSH1 0x40 MLOAD PUSH32 0x568EFCE200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF72 JUMPI PUSH2 0x16AD DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x1688 JUMPI PUSH2 0x1688 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP6 DUP6 DUP5 DUP2 DUP2 LT PUSH2 0x16A1 JUMPI PUSH2 0x16A1 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x166B JUMP JUMPDEST PUSH2 0x16BF CALLER DUP4 PUSH2 0x1B06 JUMP JUMPDEST PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0x173D DUP5 DUP5 DUP5 DUP5 PUSH2 0x29B7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x174E DUP3 PUSH2 0x1A27 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH1 0x40 MLOAD PUSH32 0xE9DC637500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE9DC6375 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x950 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C15 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x950 SWAP1 PUSH2 0x2A40 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1818 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D0483C5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1824 DUP5 DUP5 PUSH2 0x3C83 JUMP JUMPDEST PUSH2 0x182F SWAP1 PUSH1 0x1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x184C JUMPI PUSH2 0x184C PUSH2 0x395F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1875 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP4 DUP6 GT PUSH2 0x18B3 JUMPI PUSH2 0x188A DUP7 DUP7 PUSH2 0xBF1 JUMP JUMPDEST DUP2 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x189C JUMPI PUSH2 0x189C PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP5 PUSH1 0x1 ADD SWAP5 POP PUSH2 0x1879 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x18D7 DUP2 PUSH2 0x1DC7 JUMP JUMPDEST PUSH2 0xB40 DUP4 DUP4 PUSH2 0x1DF3 JUMP JUMPDEST PUSH2 0x18E9 PUSH2 0x1F8A JUMP JUMPDEST PUSH2 0xD2E DUP2 PUSH1 0x0 PUSH2 0x1FDF JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD21 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1952 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B9 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x2A4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x2A99 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x780E9D6300000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x2AD7 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x1ACD DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1B12 DUP4 PUSH2 0x108C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x1B59 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE11 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B72 DUP5 PUSH2 0x9E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B97 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1C8E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0x1C9B DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2B72 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CAE DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D2A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x3 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x2 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0xD2E DUP2 CALLER PUSH2 0x2BFA JUMP JUMPDEST PUSH2 0x1DDB DUP3 DUP3 PUSH2 0x18F4 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB40 SWAP1 DUP3 PUSH2 0x1996 JUMP JUMPDEST PUSH2 0x1DFD DUP3 DUP3 PUSH2 0x2C6F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB40 SWAP1 DUP3 PUSH2 0x2CF2 JUMP JUMPDEST DUP1 CALLER PUSH2 0x1E20 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E47 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND DUP1 DUP6 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 SWAP4 DUP5 SWAP1 DIV DUP2 AND SWAP5 DUP7 ADD DUP6 SWAP1 MSTORE PUSH1 0x10 DUP1 SLOAD DUP1 DUP6 AND DUP5 SWAP1 SUB SWAP1 SWAP5 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP5 AND DUP5 OR DUP6 SWAP1 DIV DUP3 AND SWAP6 SWAP1 SWAP6 SUB AND SWAP1 SWAP3 MUL OR SWAP1 SWAP2 SSTORE PUSH2 0x1ED1 DUP5 PUSH2 0x1F2C JUMP JUMPDEST PUSH2 0x1EE8 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x25E4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0xABD2AB552BC04CDBFA4A54107FA44AC8C9CB06F6D21DA11933AC05A653BE19E9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST DUP1 CALLER PUSH2 0x1F37 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1F5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x3 ADD SSTORE PUSH2 0xD21 DUP3 PUSH2 0x2D07 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F94 PUSH2 0x2DB7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x1FA2 DUP4 PUSH2 0x2E04 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH1 0x11 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1FBB SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x12 DUP1 SLOAD DUP3 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1FD5 SWAP1 DUP5 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 CALLER PUSH2 0x1FEA DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2011 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 DUP5 GT ISZERO PUSH2 0x2069 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF4D678B800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2074 DUP4 PUSH2 0x2E7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2082 DUP3 DUP8 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x20A5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND DUP10 SWAP1 SUB DUP3 AND SWAP1 DUP2 OR DUP1 DUP5 SSTORE DUP8 SLOAD PUSH13 0x1000000000000000000000000 SWAP1 DUP2 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP13 DUP11 SUB TIMESTAMP DUP2 DUP2 MUL SWAP6 DUP6 SWAP1 DIV DUP5 AND DUP7 ADD SWAP3 SWAP1 SWAP3 SUB DUP4 AND DUP5 MUL SWAP1 SWAP6 OR SWAP1 SWAP7 SSTORE SWAP3 SWAP1 SWAP4 AND SWAP2 AND SWAP1 SWAP2 MUL OR DUP6 SSTORE PUSH32 0xFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xD0 SHL PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 DUP3 MUL AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 MUL OR PUSH1 0x3 DUP6 ADD SSTORE PUSH1 0x11 SLOAD PUSH1 0x1 DUP6 ADD SSTORE PUSH1 0x12 SLOAD PUSH1 0x2 DUP6 ADD SSTORE PUSH2 0x2177 DUP2 PUSH2 0x25E4 JUMP JUMPDEST DUP2 DUP7 DUP9 PUSH32 0xABD2AB552BC04CDBFA4A54107FA44AC8C9CB06F6D21DA11933AC05A653BE19E9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 DUP3 DIV AND SWAP1 PUSH2 0x21E6 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND TIMESTAMP PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x950 SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x2239 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x950 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD DUP3 ISZERO PUSH2 0x22BD JUMPI PUSH1 0x0 PUSH2 0x224D PUSH2 0x2E97 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x225B DUP4 PUSH2 0x2E04 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x0 ADD SLOAD DUP5 PUSH1 0x11 PUSH1 0x0 ADD SLOAD PUSH2 0x2280 SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST PUSH2 0x228A SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x11 PUSH1 0x1 ADD SLOAD PUSH2 0x22A5 SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST PUSH2 0x22AF SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST DUP2 MSTORE POP SWAP5 POP POP POP POP POP PUSH2 0x950 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x11 SLOAD DUP3 SWAP2 PUSH2 0x22D7 SWAP2 PUSH2 0x3C83 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 ADD SLOAD PUSH1 0x11 PUSH1 0x1 ADD SLOAD PUSH2 0x22F1 SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST SWAP1 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND ISZERO PUSH2 0x23AE JUMPI PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH17 0x100000000000000000000000000000000 SWAP2 PUSH2 0x2349 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x3B74 JUMP JUMPDEST DUP4 SLOAD PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH2 0x237F SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 PUSH2 0x3B74 JUMP JUMPDEST DUP7 MLOAD PUSH2 0x238B SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH2 0x2395 SWAP2 SWAP1 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x239F SWAP2 SWAP1 PUSH2 0x3C9A JUMP JUMPDEST PUSH2 0x23A9 SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST PUSH2 0x15B9 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 CALLER PUSH2 0x23C2 DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x23E9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C62C2B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x2401 DUP3 PUSH2 0x2E7D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x240F DUP3 DUP7 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x2432 JUMPI PUSH1 0x40 MLOAD PUSH4 0x24D0659D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2451 SWAP1 DUP4 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2499 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35278D1200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH13 0x1000000000000000000000000 SWAP4 DUP5 SWAP1 DIV DUP2 AND TIMESTAMP DUP1 DUP10 MUL SWAP2 DUP3 ADD DUP4 AND DUP7 MUL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP7 SSTORE DUP10 SLOAD DUP1 DUP6 AND DUP1 DUP11 ADD SWAP1 SWAP6 AND SWAP4 AND DUP4 OR DUP6 SWAP1 DIV DUP3 AND ADD DUP2 AND SWAP1 SWAP4 MUL OR DUP8 SSTORE PUSH1 0x3 DUP8 ADD DUP1 SLOAD DUP1 DUP5 AND PUSH6 0xFFFFFFFFFFFF PUSH1 0x1 PUSH1 0xA0 SHL DUP4 DIV AND SWAP1 SWAP6 SUB SWAP1 SWAP3 MUL SWAP4 SWAP1 SWAP4 ADD SWAP1 SWAP2 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH2 0x259D DUP5 PUSH1 0x3 DUP2 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF TIMESTAMP AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH32 0xFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x11 SLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x12 SLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST DUP6 ISZERO PUSH2 0x25AC JUMPI PUSH2 0x25AC DUP7 PUSH2 0x26C5 JUMP JUMPDEST DUP3 DUP7 DUP9 PUSH32 0xC8ACFABCFB3AF3DF23B7B8A1AA1371D042BEE71E137EEEDC881FFA8F3C446261 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x266B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x268F SWAP2 SWAP1 PUSH2 0x3CB2 JUMP JUMPDEST PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH32 0xBFA871C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH2 0x264C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B9 DUP4 DUP4 PUSH2 0x2F16 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x2799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x27FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH2 0x280C PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2B72 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x2871 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x294A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x29C2 DUP5 DUP5 DUP5 PUSH2 0x1B84 JUMP JUMPDEST PUSH2 0x29CE DUP5 DUP5 DUP5 DUP5 PUSH2 0x2F40 JUMP JUMPDEST PUSH2 0x173D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x950 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2A91 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x950 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x950 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x950 JUMPI POP PUSH2 0x950 DUP3 PUSH2 0x19E9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x2B3A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x950 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x950 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EQ PUSH2 0x2BEE JUMPI PUSH1 0x13 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 SWAP2 PUSH2 0x2BB1 SWAP2 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP DUP1 TIMESTAMP GT PUSH2 0x2BEC JUMPI PUSH1 0x40 MLOAD PUSH32 0x85DE62500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH2 0x173D DUP5 DUP5 DUP5 DUP5 PUSH2 0x30C9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD21 JUMPI PUSH2 0x2C2D DUP2 PUSH2 0x3205 JUMP JUMPDEST PUSH2 0x2C38 DUP4 PUSH1 0x20 PUSH2 0x3217 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2C49 SWAP3 SWAP2 SWAP1 PUSH2 0x3CCF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0xA9F SWAP2 PUSH1 0x4 ADD PUSH2 0x374E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xD21 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B9 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x3440 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D12 DUP3 PUSH2 0x108C JUMP JUMPDEST SWAP1 POP PUSH2 0x2D22 DUP2 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH2 0x2B72 JUMP JUMPDEST PUSH2 0x2D2B DUP3 PUSH2 0x108C JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE PUSH1 0x3 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE DUP8 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE MLOAD SWAP3 SWAP4 POP DUP5 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DC1 PUSH2 0x2E97 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFF AND PUSH11 0x100000000000000000000 TIMESTAMP PUSH5 0xFFFFFFFFFF AND MUL OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2E13 PUSH1 0x10 PUSH2 0x21AF JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x2E77 JUMPI DUP1 PUSH17 0x100000000000000000000000000000000 PUSH2 0x2E38 TIMESTAMP DUP8 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x2E42 SWAP2 SWAP1 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x2E4C SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST SWAP3 POP DUP1 PUSH2 0x2E6A PUSH17 0x100000000000000000000000000000000 DUP7 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x2E74 SWAP2 SWAP1 PUSH2 0x3B93 JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E8B DUP4 PUSH1 0x0 PUSH2 0x21F0 JUMP JUMPDEST SWAP1 POP PUSH2 0x15B9 DUP2 DUP5 PUSH2 0x22FB JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x78 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP2 TIMESTAMP DUP3 LT PUSH2 0x2EB9 JUMPI TIMESTAMP PUSH2 0x2EBB JUMP JUMPDEST DUP2 JUMPDEST PUSH1 0xC SLOAD SWAP1 SWAP2 POP PUSH11 0x100000000000000000000 SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP1 DUP3 GT ISZERO PUSH2 0x2EF4 JUMPI PUSH1 0xC SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND DUP2 DUP4 SUB MUL SWAP4 POP JUMPDEST PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT ISZERO PUSH2 0x2F10 JUMPI PUSH2 0x2F10 PUSH2 0x3D50 JUMP JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2F2D JUMPI PUSH2 0x2F2D PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x30BE JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x2F9D SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3D66 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2FD8 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2FD5 SWAP2 DUP2 ADD SWAP1 PUSH2 0x3DA2 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x308B JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x3006 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x300B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x3083 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0xE11 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3140 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20636F6E7365637574697665207472 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616E7366657273206E6F7420737570706F727465640000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xA9F JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x319C JUMPI PUSH2 0x3197 DUP2 PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xF3F7A9FE364FAAB93B216DA50A3214154F22A0A2B415B23A84C8169E8B636EE3 ADD SSTORE JUMP JUMPDEST PUSH2 0x31BF JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x31BF JUMPI PUSH2 0x31BF DUP6 DUP3 PUSH2 0x3533 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x31DB JUMPI PUSH2 0x31D6 DUP2 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0x31FE JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x31FE JUMPI PUSH2 0x31FE DUP5 DUP3 PUSH2 0x367F JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x950 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x3226 DUP4 PUSH1 0x2 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x3231 SWAP1 PUSH1 0x2 PUSH2 0x3C9A JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3249 JUMPI PUSH2 0x3249 PUSH2 0x395F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3273 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x32AA JUMPI PUSH2 0x32AA PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x330D JUMPI PUSH2 0x330D PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x3349 DUP5 PUSH1 0x2 PUSH2 0x3B74 JUMP JUMPDEST PUSH2 0x3354 SWAP1 PUSH1 0x1 PUSH2 0x3C9A JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x33F1 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x3395 JUMPI PUSH2 0x3395 PUSH2 0x3BB5 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x33AB JUMPI PUSH2 0x33AB PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x33EA DUP2 PUSH2 0x3DBF JUMP JUMPDEST SWAP1 POP PUSH2 0x3357 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x15B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x3529 JUMPI PUSH1 0x0 PUSH2 0x3464 PUSH1 0x1 DUP4 PUSH2 0x3C83 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3478 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x34DD JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3498 JUMPI PUSH2 0x3498 PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x34BB JUMPI PUSH2 0x34BB PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x34EE JUMPI PUSH2 0x34EE PUSH2 0x3DD6 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x950 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x950 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x3540 DUP5 PUSH2 0x115F JUMP JUMPDEST PUSH2 0x354A SWAP2 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ PUSH2 0x359D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 SLOAD DUP5 DUP5 MSTORE DUP2 DUP5 KECCAK256 DUP2 SWAP1 SSTORE DUP4 MSTORE PUSH1 0x7 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP4 MSTORE PUSH1 0x6 DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x35E2 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3C83 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x8 DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x360A JUMPI PUSH2 0x360A PUSH2 0x3BB5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x362B JUMPI PUSH2 0x362B PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0x9 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0x8 DUP1 SLOAD DUP1 PUSH2 0x3663 JUMPI PUSH2 0x3663 PUSH2 0x3DD6 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x368A DUP4 PUSH2 0x115F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP6 SWAP1 SSTORE SWAP4 DUP3 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x15B9 DUP2 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3711 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x36F9 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x173D JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x373A DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x36F6 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x15B9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3722 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3773 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x37AD DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x37D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x37DB DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x37EB DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x380F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3821 DUP2 PUSH2 0x377A JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x383F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3860 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x3893 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x38B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x38C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38D4 DUP9 DUP4 DUP10 ADD PUSH2 0x384E JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x38ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x38FA DUP8 DUP3 DUP9 ADD PUSH2 0x384E JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3918 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x15B9 DUP2 PUSH2 0x377A JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xD2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x394F DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3821 DUP2 PUSH2 0x3923 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x399E JUMPI PUSH2 0x399E PUSH2 0x395F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x39C0 JUMPI PUSH2 0x39C0 PUSH2 0x395F JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x39E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x39EF DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x39FF DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x3A33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3A46 PUSH2 0x3A41 DUP3 PUSH2 0x39A6 JUMP JUMPDEST PUSH2 0x3975 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP9 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3A9D DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3AEA JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3ACE JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3B14 DUP2 PUSH2 0x377A JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3821 DUP2 PUSH2 0x377A JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3B38 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3B58 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3B8E JUMPI PUSH2 0x3B8E PUSH2 0x3B5E JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3BB0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x3BF2 JUMPI PUSH2 0x3BF2 PUSH2 0x3B5E JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x3C0E JUMPI PUSH2 0x3C0E PUSH2 0x3B5E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x3C4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x3C5D PUSH2 0x3A41 DUP3 PUSH2 0x39A6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3C72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B3 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x36F6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3C95 JUMPI PUSH2 0x3C95 PUSH2 0x3B5E JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x3CAD JUMPI PUSH2 0x3CAD PUSH2 0x3B5E JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15B9 DUP2 PUSH2 0x3923 JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x3D07 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x36F6 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x3D44 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x36F6 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3D98 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3722 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3DB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15B9 DUP2 PUSH2 0x36C3 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x3DCE JUMPI PUSH2 0x3DCE PUSH2 0x3B5E JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR LOG3 SWAP5 DUP2 0x2D SLT DUP7 0xDD SWAP12 SWAP6 MOD SWAP13 CALLDATALOAD SDIV DUP9 0xDC 0xD4 0x4F 0x49 INVALID AND GAS POP 0xAA STOP GT DUP15 0xD5 DELEGATECALL GASPRICE STATICCALL PUSH32 0x64736F6C634300080F0033000000000000000000000000000000000000000000 ","sourceMap":"2501:31556:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33730:324;;;;;;:::i;:::-;;:::i;:::-;;;611:14:60;;604:22;586:41;;574:2;559:18;33730:324:49;;;;;;;;2471:98:16;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1797:55:60;;;1779:74;;1767:2;1752:18;3935:167:16;1633:226:60;3468:406:16;;;;;;:::i;:::-;;:::i;:::-;;1277:30:50;;;;;-1:-1:-1;;;1277:30:50;;;;;;;;;2517:26:60;2505:39;;;2487:58;;2475:2;2460:18;1277:30:50;2343:208:60;1630:111:19;1717:10;:17;1630:111;;;2702:25:60;;;2690:2;2675:18;1630:111:19;2556:177:60;4612:326:16;;;;;;:::i;:::-;;:::i;4378:129:0:-;;;;;;:::i;:::-;4452:7;4478:12;;;:6;:12;;;;;:22;;;;4378:129;4803:145;;;;;;:::i;:::-;;:::i;1306:253:19:-;;;;;;:::i;:::-;;:::i;6575:46:49:-;;;;;;5912:214:0;;;;;;:::i;:::-;;:::i;12521:364:49:-;;;;;;:::i;:::-;;:::i;5004:179:16:-;;;;;;:::i;:::-;;:::i;12030:320:49:-;;;;;;:::i;:::-;;:::i;11535:317::-;;;;;;:::i;:::-;;:::i;16643:454::-;;;;;;:::i;:::-;;:::i;17454:593::-;;;;;;:::i;:::-;;:::i;1813:230:19:-;;;;;;:::i;:::-;;:::i;13221:766:49:-;;;;;;:::i;:::-;;:::i;3916:839:50:-;;;:::i;2190:219:16:-;;;;;;:::i;:::-;;:::i;15825:221:49:-;;;;;;:::i;:::-;;:::i;1929:204:16:-;;;;;;:::i;:::-;;:::i;4922:2264:50:-;;;;;;:::i;:::-;;:::i;15124:479:49:-;;;;;;:::i;:::-;;:::i;9658:435::-;;;;;;:::i;:::-;;:::i;7358:126:50:-;;;:::i;3226:584::-;;;;;;:::i;:::-;;:::i;1431:151:1:-;;;;;;:::i;:::-;;:::i;2895:145:0:-;;;;;;:::i;:::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145;2633:102:16;;;:::i;5254:45:49:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5254:45:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5254:45:49;;;;;-1:-1:-1;;;5254:45:49;;;;;;;;;6483:13:60;;6498:26;6479:46;6461:65;;6573:4;6561:17;;;6555:24;-1:-1:-1;;;;;6678:21:60;;;6656:20;;;6649:51;6736:13;;6716:18;;;6709:41;;;;6792:17;;;;6786:24;6781:2;6766:18;;6759:52;6848:15;;;;6842:3;6827:19;;6820:44;6883:14;6934:15;;;6928:3;6913:19;;6906:44;6987:15;6981:3;6966:19;;6959:44;6448:3;6433:19;5254:45:49;6070:939:60;8807:591:49;;;;;;:::i;:::-;;:::i;2027:49:0:-;;2072:4;2027:49;;4169:153:16;;;;;;:::i;:::-;;:::i;10836:348:49:-;;;;;;:::i;:::-;;:::i;14333:566::-;;;;;;:::i;:::-;;:::i;1413:39:50:-;;;;;;5249:314:16;;;;;;:::i;:::-;;:::i;1055:24:50:-;;;;;;;;;;;;;;;9497:12:60;9485:25;;;9467:44;;9455:2;9440:18;1055:24:50;9323:194:60;33476:246:49;;;;;;:::i;:::-;;:::i;1750:140:1:-;;;;;;:::i;:::-;;:::i;32252:493:49:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1530:36:50:-;;;;;5228:147:0;;;;;;:::i;:::-;;:::i;10279:351:49:-;;;;;;:::i;:::-;;:::i;5520:41::-;;;;;;;;;;;;-1:-1:-1;;;;;5520:41:49;;;;;;;10995:26:60;10983:39;;;10965:58;;-1:-1:-1;;;;;11059:55:60;;;11054:2;11039:18;;11032:83;10938:18;5520:41:49;10793:328:60;4388:162:16;;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:16;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;1187:26:50;;;;;-1:-1:-1;;;1187:26:50;;;;;;5400:35:49;;;;;-1:-1:-1;;;;;5400:35:49;;;5641:46;;;;;;;;;;;;;;11948:25:60;;;12004:2;11989:18;;11982:34;;;;11921:18;5641:46:49;11774:248:60;33730:324:49;33886:4;33928:54;33970:11;33928:41;:54::i;:::-;:118;;;;33999:47;34034:11;33999:34;:47::i;:::-;33908:138;33730:324;-1:-1:-1;;33730:324:49:o;2471:98:16:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:16;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:16;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:16;:2;-1:-1:-1;;;;;3605:11:16;;3597:57;;;;-1:-1:-1;;;3597:57:16;;12671:2:60;3597:57:16;;;12653:21:60;12710:2;12690:18;;;12683:30;12749:34;12729:18;;;12722:62;12820:3;12800:18;;;12793:31;12841:19;;3597:57:16;;;;;;;;;719:10:24;-1:-1:-1;;;;;3686:21:16;;;;:62;;-1:-1:-1;3711:37:16;3728:5;719:10:24;4388:162:16;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:16;;13073:2:60;3665:170:16;;;13055:21:60;13112:2;13092:18;;;13085:30;13151:34;13131:18;;;13124:62;13222:31;13202:18;;;13195:59;13271:19;;3665:170:16;12871:425:60;3665:170:16;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;719:10:24;4834:7:16;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:16;;13503:2:60;4793:99:16;;;13485:21:60;13542:2;13522:18;;;13515:30;13581:34;13561:18;;;13554:62;13652:15;13632:18;;;13625:43;13685:19;;4793:99:16;13301:409:60;4793:99:16;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;4803:145:0:-;4452:7;4478:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;1306:253:19:-:0;1403:7;1438:23;1455:5;1438:16;:23::i;:::-;1430:5;:31;1422:87;;;;-1:-1:-1;;;1422:87:19;;13917:2:60;1422:87:19;;;13899:21:60;13956:2;13936:18;;;13929:30;13995:34;13975:18;;;13968:62;14066:13;14046:18;;;14039:41;14097:19;;1422:87:19;13715:407:60;1422:87:19;-1:-1:-1;;;;;;1526:19:19;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;1306:253::o;5912:214:0:-;-1:-1:-1;;;;;6007:23:0;;719:10:24;6007:23:0;5999:83;;;;-1:-1:-1;;;5999:83:0;;14329:2:60;5999:83:0;;;14311:21:60;14368:2;14348:18;;;14341:30;14407:34;14387:18;;;14380:62;14478:17;14458:18;;;14451:45;14513:19;;5999:83:0;14127:411:60;5999:83:0;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;12521:364:49:-;12851:26;12866:10;12851:14;:26::i;:::-;12521:364;:::o;5004:179:16:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;12030:320:49:-;12168:21;;;;:9;:21;;;;;:44;;;:49;12164:76;;12226:14;;;;;;;;;;;;;;12164:76;12325:17;12331:10;12325:5;:17::i;11535:317::-;11676:25;:23;:25::i;:::-;11815:29;11825:10;11837:6;11815:9;:29::i;16643:454::-;16714:7;16780:18;16801:30;16811:19;16801:9;:30::i;:::-;16842:21;16876;;;:9;:21;;;;;16780:51;;-1:-1:-1;16842:21:49;16866:47;;:9;:47::i;:::-;16842:71;-1:-1:-1;17021:18:49;;:68;;17079:10;17062:13;17047:12;:10;:12::i;:::-;:28;;;;:::i;:::-;17046:43;;;;:::i;:::-;17021:68;;;17042:1;17021:68;17014:75;16643:454;-1:-1:-1;;;;16643:454:49:o;17454:593::-;17529:7;17632:21;;;:9;:21;;;;;17529:7;17838:41;17632:21;17874:4;17838:25;:41::i;:::-;17790:89;;17999:40;18007:21;18030:8;17999:7;:40::i;1813:230:19:-;1888:7;1923:30;1717:10;:17;;1630:111;1923:30;1915:5;:38;1907:95;;;;-1:-1:-1;;;1907:95:19;;15446:2:60;1907:95:19;;;15428:21:60;15485:2;15465:18;;;15458:30;15524:34;15504:18;;;15497:62;15595:14;15575:18;;;15568:42;15627:19;;1907:95:19;15244:408:60;1907:95:19;2019:10;2030:5;2019:17;;;;;;;;:::i;:::-;;;;;;;;;2012:24;;1813:230;;;:::o;13221:766:49:-;13568:25;:23;:25::i;:::-;13663:11;13696:24;;;13692:61;;13729:24;;;;;;;;;;;;;;13692:61;13771:9;13766:214;13790:6;13786:1;:10;13766:214;;;13815:34;13822:11;;13834:1;13822:14;;;;;;;:::i;:::-;;;;;;;13838:7;;13846:1;13838:10;;;;;;;:::i;:::-;;;;;;;13815:6;:34::i;:::-;13950:3;;13766:214;;;;13310:677;13221:766;;;;:::o;3916:839:50:-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;4069:12:50::1;::::0;-1:-1:-1;;;4069:12:50;::::1;;;4147:15;-1:-1:-1::0;;4143:56:50::1;;4190:9;;;;;;;;;;;;;;4143:56;4355:11;::::0;;4547:38:::1;4336:15;4547:38:::0;;::::1;-1:-1:-1::0;;;4547:38:50::1;::::0;4318:33;;::::1;4355:11;::::0;::::1;4317:49;4457:36;-1:-1:-1::0;;;4457:36:50;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;;4547:38:::0;;;;;;;;;;;;;;;::::1;::::0;;;4676:27:::1;4317:49:::0;4676:17:::1;:27::i;:::-;4723:13;::::0;::::1;::::0;;;::::1;4212:536;3975:780;3916:839:::0;:::o;2190:219:16:-;2262:7;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:16;;2324:56;;;;-1:-1:-1;;;2324:56:16;;16048:2:60;2324:56:16;;;16030:21:60;16087:2;16067:18;;;16060:30;16126:26;16106:18;;;16099:54;16170:18;;2324:56:16;15846:348:60;15825:221:49;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;15956:13:49::1;:32:::0;;-1:-1:-1;;15956:32:49::1;-1:-1:-1::0;;;;;15956:32:49;::::1;::::0;;::::1;::::0;;;16004:34:::1;::::0;1779:74:60;;;16004:34:49::1;::::0;1767:2:60;1752:18;16004:34:49::1;;;;;;;;15825:221:::0;;:::o;1929:204:16:-;2001:7;-1:-1:-1;;;;;2028:19:16;;2020:73;;;;-1:-1:-1;;;2020:73:16;;16401:2:60;2020:73:16;;;16383:21:60;16440:2;16420:18;;;16413:30;16479:34;16459:18;;;16452:62;16550:11;16530:18;;;16523:39;16579:19;;2020:73:16;16199:405:60;2020:73:16;-1:-1:-1;;;;;;2110:16:16;;;;;:9;:16;;;;;;;1929:204::o;4922:2264:50:-;2072:24;2505:16:0;2516:4;2505:10;:16::i;:::-;5086:14:50::1;::::0;1936:16:::1;5157:25:::0;::::1;5153:48;;;5191:10;;;;;;;;;;;;;;5153:48;5330:6;5303:16;;:34;;;;;;;;;;;;;;;;:::i;:::-;::::0;;::::1;::::0;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;::::1;;::::0;;-1:-1:-1;6051:12:50::1;::::0;-1:-1:-1;;6051:12:50::1;-1:-1:-1::0;;;6051:12:50;::::1;::::0;::::1;6037:10:::0;;;::::1;;:26;6033:496;;-1:-1:-1::0;6196:30:50;;::::1;6033:496;;;-1:-1:-1::0;6360:11:50::1;::::0;6346:10:::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;6330:12:50;::::1;::::0;;::::1;6322:34;6360:11;::::0;;::::1;6321:50;6443:21:::0;::::1;6439:45:::0;;::::1;6033:496;6625:13;6642:1;6625:18:::0;6621:41:::1;;6652:10;;-1:-1:-1::0;;;6652:10:50::1;;;;;;;;;;;6621:41;6794:11;:35:::0;;6935:15:::1;6988:35:::0;;::::1;6915:36;6966:58:::0;;::::1;-1:-1:-1::0;;;6966:58:50::1;::::0;6915:36;;;::::1;::::0;::::1;::::0;;;;6794:35:::1;::::0;::::1;6915:36:::0;;;;::::1;6966:58:::0;;;::::1;;::::0;;7116:27:::1;7136:6:::0;7116:19:::1;:27::i;:::-;7159:19;::::0;2702:25:60;;;7159:19:50::1;::::0;2690:2:60;2675:18;7159:19:50::1;;;;;;;4988:2198;;4922:2264:::0;;:::o;15124:479:49:-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;7094:6:49::1;15343:24;:54;15339:80;;;15406:13;;-1:-1:-1::0;;;15406:13:49::1;;;;;;;;;;;15339:80;15489:21;:48:::0;;;15553:42:::1;::::0;2702:25:60;;;15553:42:49::1;::::0;2690:2:60;2675:18;15553:42:49::1;2556:177:60::0;9658:435:49;9924:25;:23;:25::i;:::-;10059:26;10066:10;10078:6;10059;:26::i;7358:126:50:-;7428:12;;7401:7;;7443:15;-1:-1:-1;;;7428:12:50;;;;;:30;:48;;7465:11;;;;7428:48;;;7461:1;7428:48;7421:55;;;;7358:126;:::o;3226:584::-;2072:4:0;2505:16;2072:4;2505:10;:16::i;:::-;3374:12:50::1;::::0;3389:15:::1;-1:-1:-1::0;;;3374:12:50;;::::1;;;:30;3370:53;;;3413:10;;;;;;;;;;;;;;3370:53;1679:9;3496:11;:33;3492:59;;;3538:13;;-1:-1:-1::0;;;3538:13:50::1;;;;;;;;;;;3492:59;1801:5;3566:11;:33;3562:59;;;3608:13;;-1:-1:-1::0;;;3608:13:50::1;;;;;;;;;;;3562:59;3724:14;:28:::0;;;3768:34:::1;::::0;2702:25:60;;;3768:34:50::1;::::0;2690:2:60;2675:18;3768:34:50::1;2556:177:60::0;1431:151:1;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;:::-;1540:35;1431:151;-1:-1:-1;;;1431:151:1:o;2633:102:16:-;2689:13;2721:7;2714:14;;;;;:::i;8807:591:49:-;8855:18;9081:25;:23;:25::i;:::-;9198:16;;9196:18;;;;;:::i;:::-;;;;;-1:-1:-1;9196:18:49;-1:-1:-1;9225:29:49;9231:10;9196:18;9225:5;:29::i;:::-;9364:26;9371:10;9383:6;9364;:26::i;:::-;8807:591;;;:::o;4169:153:16:-;4263:52;719:10:24;4296:8:16;4306;4263:18;:52::i;10836:348:49:-;10961:25;:23;:25::i;:::-;11155:21;11162:10;11174:1;11155:6;:21::i;14333:566::-;14477:25;:23;:25::i;:::-;14572:11;14605:24;;;14601:61;;14638:24;;;;;;;;;;;;;;14601:61;14680:9;14675:217;14699:6;14695:1;:10;14675:217;;;14724:37;14734:11;;14746:1;14734:14;;;;;;;:::i;:::-;;;;;;;14750:7;;14758:1;14750:10;;;;;;;:::i;:::-;;;;;;;14724:9;:37::i;:::-;14862:3;;14675:217;;5249:314:16;5417:41;719:10:24;5450:7:16;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:16;;13503:2:60;5409:99:16;;;13485:21:60;13542:2;13522:18;;;13515:30;13581:34;13561:18;;;13554:62;13652:15;13632:18;;;13625:43;13685:19;;5409:99:16;13301:409:60;5409:99:16;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;33476:246:49:-;33541:13;33567:30;33589:7;33567:21;:30::i;:::-;33677:13;;:37;;;;;33700:4;33677:37;;;17266:74:60;17356:18;;;17349:34;;;-1:-1:-1;;;;;33677:13:49;;;;:22;;17239:18:60;;33677:37:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33677:37:49;;;;;;;;;;;;:::i;1750:140:1:-;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;32252:493:49:-;32380:16;32420:2;32413:4;:9;32409:35;;;32431:13;;-1:-1:-1;;;32431:13:49;;;;;;;;;;;32409:35;32457:14;32474:9;32479:4;32474:2;:9;:::i;:::-;:13;;32486:1;32474:13;:::i;:::-;32457:30;;32498:23;32538:6;32524:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32524:21:49;;32498:47;;32556:158;32571:2;32563:4;:10;32556:158;;32605:32;32625:5;32632:4;32605:19;:32::i;:::-;32590:6;32597:4;32590:12;;;;;;;;:::i;:::-;;;;;;:47;;;;;32681:6;;;;;32556:158;;;32731:6;32252:493;-1:-1:-1;;;;;32252:493:49:o;5228:147:0:-;4452:7;4478:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;10279:351:49:-:0;10403:25;:23;:25::i;:::-;10598:24;10608:10;10620:1;10598:9;:24::i;7461:233:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;634:212:1:-;719:4;-1:-1:-1;;;;;;742:57:1;;757:42;742:57;;:97;;;803:36;827:11;803:23;:36::i;1005:222:19:-;1107:4;-1:-1:-1;;;;;;1130:50:19;;1145:35;1130:50;;:90;;;1184:36;1208:11;1184:23;:36::i;13466:133:16:-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:16;13539:53;;;;-1:-1:-1;;;13539:53:16;;16048:2:60;13539:53:16;;;16030:21:60;16087:2;16067:18;;;16060:30;16126:26;16106:18;;;16099:54;16170:18;;13539:53:16;15846:348:60;12768:171:16;12842:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;12842:29:16;-1:-1:-1;;;;;12842:29:16;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:16;;;;;;;;;;;12768:171;;:::o;7540:261::-;7633:4;7649:13;7665:23;7680:7;7665:14;:23::i;:::-;7649:39;;7717:5;-1:-1:-1;;;;;7706:16:16;:7;-1:-1:-1;;;;;7706:16:16;;:52;;;-1:-1:-1;;;;;;4508:25:16;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7726:32;7706:87;;;;7786:7;-1:-1:-1;;;;;7762:31:16;:20;7774:7;7762:11;:20::i;:::-;-1:-1:-1;;;;;7762:31:16;;7698:96;7540:261;-1:-1:-1;;;;7540:261:16:o;11423:1233::-;11577:4;-1:-1:-1;;;;;11550:31:16;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:16;;11542:81;;;;-1:-1:-1;;;11542:81:16;;18499:2:60;11542:81:16;;;18481:21:60;18538:2;18518:18;;;18511:30;18577:34;18557:18;;;18550:62;18648:7;18628:18;;;18621:35;18673:19;;11542:81:16;18297:401:60;11542:81:16;-1:-1:-1;;;;;11641:16:16;;11633:65;;;;-1:-1:-1;;;11633:65:16;;18905:2:60;11633:65:16;;;18887:21:60;18944:2;18924:18;;;18917:30;18983:34;18963:18;;;18956:62;19054:6;19034:18;;;19027:34;19078:19;;11633:65:16;18703:400:60;11633:65:16;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;-1:-1:-1;;;;;11851:31:16;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:16;;11843:81;;;;-1:-1:-1;;;11843:81:16;;18499:2:60;11843:81:16;;;18481:21:60;18538:2;18518:18;;;18511:30;18577:34;18557:18;;;18550:62;18648:7;18628:18;;;18621:35;18673:19;;11843:81:16;18297:401:60;11843:81:16;11993:24;;;;:15;:24;;;;;;;;11986:31;;-1:-1:-1;;11986:31:16;;;;;;-1:-1:-1;;;;;12461:15:16;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:16;;;12495:13;;;;;;;;;:18;;11986:31;12495:18;;;12533:16;;;:7;:16;;;;;;:21;;;;;;;;;;12570:27;;12009:7;;12570:27;;;3538:336;3468:406;;:::o;3334:103:0:-;3400:30;3411:4;719:10:24;3400::0;:30::i;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;24133:774:49:-;24195:10;7845;7822:19;24195:10;7822:7;:19::i;:::-;-1:-1:-1;;;;;7822:33:49;;7818:66;;7864:20;;-1:-1:-1;;;7864:20:49;;;;;;;;;;;7818:66;24267:44:::1;24314:21:::0;;;:9:::1;:21;::::0;;;;;;;;24267:83;;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;24267:83:49;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;24527:19:::1;:38:::0;;;;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;24527:38:49;;::::1;::::0;::::1;24580:77:::0;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;::::1;;::::0;;;24722:17:::1;24324:10:::0;24722:5:::1;:17::i;:::-;24824:26;24842:7;24824:26;;:17;:26::i;:::-;24897:1;24888:7;24866:33;;24876:10;24866:33;;;;;;;;;;24207:700;;24133:774:::0;;:::o;32753:194::-;32813:7;7845:10;7822:19;32813:7;7822;:19::i;:::-;-1:-1:-1;;;;;7822:33:49;;7818:66;;7864:20;;-1:-1:-1;;;7864:20:49;;;;;;;;;;;7818:66;32890:18:::1;::::0;;;:9:::1;:18;::::0;;;;32883:25;;;;;::::1;::::0;;;;;;;;;::::1;;::::0;32919:20:::1;32900:7:::0;32919:11:::1;:20::i;25112:589::-:0;25237:15;25255:8;:6;:8::i;:::-;25237:26;;25351:35;25401:36;25451:44;25487:7;25451:35;:44::i;:::-;25336:159;;;;25586:27;25546:22;:36;;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;;25624:37:49;:69;;25665:28;;25624:37;;;:69;;25665:28;;25624:69;:::i;:::-;;;;-1:-1:-1;;;;;25112:589:49:o;21479:2176::-;21552:10;7845;7822:19;21552:10;7822:7;:19::i;:::-;-1:-1:-1;;;;;7822:33:49;;7818:66;;7864:20;;-1:-1:-1;;;7864:20:49;;;;;;;;;;;7818:66;21630:25:::1;21658:21:::0;;;:9:::1;:21;::::0;;;;21784:31;;::::1;;21830:19:::0;;::::1;21826:53;;;21858:21;;;;;;;;;;;;;;21826:53;21989:14;22006:33;22030:8;22006:23;:33::i;:::-;21989:50:::0;-1:-1:-1;22050:19:49::1;22072:15;21989:50:::0;22072:6;:15:::1;:::i;:::-;22050:37;;22102:11;22117:1;22102:16:::0;22098:39:::1;;22127:10;;-1:-1:-1::0;;;22127:10:49::1;;;;;;;;;;;22098:39;22355:19;:45:::0;;-1:-1:-1;;22355:45:49;::::1;;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;22769:38;;;;;;::::1;-1:-1:-1::0;;;;;22769:38:49;;::::1;22254:19:::0;;::::1;22481:15;:27:::0;;::::1;22673:35:::0;;;::::1;::::0;::::1;:72:::0;::::1;:134:::0;;;::::1;22609:213:::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;22940:50;;;::::1;23005:63:::0;::::1;::::0;;::::1;;::::0;;25989:45;-1:-1:-1;;;23307:50:49::1;::::0;;::::1;::::0;;::::1;25989:45:::0;-1:-1:-1;;;25989:45:49;;;;23174:23:::1;::::0;::::1;25989:45:::0;26077:22;26045:54;-1:-1:-1;26045:29:49;;:54;;;-1:-1:-1;26045:54:49;;;23564:30:::1;23582:11;23564:17;:30::i;:::-;23640:6;23632;23620:10;23610:37;;;;;;;;;;21564:2091;;;;21479:2176:::0;;;:::o;30968:188::-;31118:30;;31048:7;;-1:-1:-1;;;;;31118:30:49;;;;;31075:40;;31093:22;;31075:15;:40;:::i;:::-;:73;;;;:::i;27490:1803::-;-1:-1:-1;;;;;;;;;;;;;;;;;27736:19:49;;;;-1:-1:-1;;;27736:19:49;;;;27759:1;27736:24;27732:59;;-1:-1:-1;27769:22:49;;;;;;;;;-1:-1:-1;27769:22:49;;;;;;;27762:29;;27732:59;27919:29;;;28036:901;;;;28138:15;28156:17;:15;:17::i;:::-;28138:35;;28273;28327:36;28381:44;28417:7;28381:35;:44::i;:::-;28254:171;;;;28535:390;;;;;;;;28693:20;:34;;;28638:27;28574:22;:36;;;:91;;;;:::i;:::-;:153;;;;:::i;:::-;28535:390;;;;28871:20;:35;;;28815:28;28750:22;:37;;;:93;;;;:::i;:::-;:156;;;;:::i;:::-;28535:390;;;28511:414;;;;;;;;28036:901;29068:217;;;;;;;;;29142:34;;29103:22;:36;29068:217;;29103:73;;;:::i;:::-;29068:217;;;;29235:20;:35;;;29195:22;:37;;;:75;;;;:::i;:::-;29068:217;;29048:237;27490:1803;-1:-1:-1;;;;27490:1803:49:o;31499:638::-;31784:19;;;;31639:7;;-1:-1:-1;;;31784:19:49;;;;:24;:345;;32092:23;;;;32053:36;;;;6940:6;;32053:62;;-1:-1:-1;;;;;32092:23:49;;;;32053:62;:::i;:::-;31996:31;;31951:19;;;;31912:36;;;;31996:31;;;;;31912:58;;-1:-1:-1;;;31951:19:49;;;;;31912:58;:::i;:::-;31852:35;;:119;;;;:::i;:::-;31851:176;;;;:::i;:::-;31850:266;;;;:::i;:::-;31849:280;;;;:::i;:::-;31784:345;;;-1:-1:-1;31828:1:49;;31499:638;-1:-1:-1;;31499:638:49:o;18767:1914::-;18837:10;7845;7822:19;18837:10;7822:7;:19::i;:::-;-1:-1:-1;;;;;7822:33:49;;7818:66;;7864:20;;-1:-1:-1;;;7864:20:49;;;;;;;;;;;7818:66;18915:25:::1;18943:21:::0;;;:9:::1;:21;::::0;;;;;19043:33:::1;18943:21:::0;19043:23:::1;:33::i;:::-;19026:50:::0;-1:-1:-1;19153:19:49::1;19175:15;19026:50:::0;19175:6;:15:::1;:::i;:::-;19153:37;;19205:11;19220:1;19205:16:::0;19201:39:::1;;19230:10;;-1:-1:-1::0;;;19230:10:49::1;;;;;;;;;;;19201:39;19350:19;:27:::0;19325:22:::1;::::0;19350:41:::1;::::0;19380:11;;19350:27:::1;;:41;:::i;:::-;19325:66:::0;-1:-1:-1;19423:16:49::1;19406:33:::0;::::1;19402:56;;;19448:10;;;;;;;;;;;;;;19402:56;19660:19;:54:::0;;;19729:52;;::::1;-1:-1:-1::0;;;;;19660:54:49;;;;::::1;::::0;::::1;19615:15;:29:::0;;::::1;19660:54:::0;;::::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;19729:52:49;;;;;;::::1;::::0;;;19997:30;;;;::::1;20082:24:::0;;::::1;20042:65:::0;;::::1;::::0;::::1;::::0;::::1;20122:57:::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;;::::0;;20327:19:::1;::::0;::::1;::::0;;20242:120;;::::1;20327:19;-1:-1:-1::0;;;20327:19:49;::::1;;20309:37:::0;;::::1;20295:52:::0;;::::1;20242:120:::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;20242:120:49;;::::1;;::::0;;20438:35:::1;19938:8:::0;25989:19;;;:45;;;26018:15;25989:45;-1:-1:-1;;;25989:45:49;;;;;;;;26077:22;26045:54;-1:-1:-1;26045:29:49;;:54;;;-1:-1:-1;26045:54:49;;;;25908:199;20438:35:::1;20583:11:::0;;20579:44:::1;;20596:27;20616:6;20596:19;:27::i;:::-;20666:6;20658;20646:10;20639:34;;;;;;;;;;18849:1832;;;;18767:1914:::0;;;:::o;8160:142:50:-;8228:41;;;;;8250:10;8228:41;;;17266:74:60;17356:18;;;17349:34;;;8228:12:50;-1:-1:-1;;;;;8228:21:50;;;;17239:18:60;;8228:41:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8223:71;;8278:16;;;;;;;;;;;;;;8474:163;8544:60;;;;;8570:10;8544:60;;;19923:34:60;8590:4:50;19973:18:60;;;19966:43;20025:18;;;20018:34;;;8544:12:50;-1:-1:-1;;;;;8544:25:50;;;;19835:18:60;;8544:60:50;19660:398:60;9555:156:34;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;9091:920:16:-;-1:-1:-1;;;;;9170:16:16;;9162:61;;;;-1:-1:-1;;;9162:61:16;;20265:2:60;9162:61:16;;;20247:21:60;;;20284:18;;;20277:30;20343:34;20323:18;;;20316:62;20395:18;;9162:61:16;20063:356:60;9162:61:16;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:16;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:16;;20626:2:60;9233:58:16;;;20608:21:60;20665:2;20645:18;;;20638:30;20704;20684:18;;;20677:58;20752:18;;9233:58:16;20424:352:60;9233:58:16;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:16;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:16;;20626:2:60;9437:58:16;;;20608:21:60;20665:2;20645:18;;;20638:30;20704;20684:18;;;20677:58;20752:18;;9437:58:16;20424:352:60;9437:58:16;-1:-1:-1;;;;;9837:13:16;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;9876:21:16;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;5912:214:0;;:::o;13075:307:16:-;13225:8;-1:-1:-1;;;;;13216:17:16;:5;-1:-1:-1;;;;;13216:17:16;;13208:55;;;;-1:-1:-1;;;13208:55:16;;20983:2:60;13208:55:16;;;20965:21:60;21022:2;21002:18;;;20995:30;21061:27;21041:18;;;21034:55;21106:18;;13208:55:16;20781:349:60;13208:55:16;-1:-1:-1;;;;;13273:25:16;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13273:46:16;;;;;;;;;;13334:41;;586::60;;;13334::16;;559:18:60;13334:41:16;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;-1:-1:-1;;;6612:110:16;;21337:2:60;6612:110:16;;;21319:21:60;21376:2;21356:18;;;21349:30;21415:34;21395:18;;;21388:62;21486:20;21466:18;;;21459:48;21524:19;;6612:110:16;21135:414:60;9098:115:34;9161:7;9187:19;9195:3;4537:18;;4455:107;2206:404;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;2606:202:0;2691:4;-1:-1:-1;;;;;;2714:47:0;;2729:32;2714:47;;:87;;;2765:36;2789:11;2765:23;:36::i;1570:300:16:-;1672:4;-1:-1:-1;;;;;;1707:40:16;;1722:25;1707:40;;:104;;-1:-1:-1;;;;;;;1763:48:16;;1778:33;1763:48;1707:104;:156;;;-1:-1:-1;952:25:30;-1:-1:-1;;;;;;937:40:30;;;1827:36:16;829:155:30;32955:513:49;33197:10;-1:-1:-1;;;;;33197:18:49;;;33193:199;;33291:21;;33232:19;33254:18;;;:9;:18;;;;;:34;;;33232:19;;33254:58;;-1:-1:-1;;;33254:34:49;;;;:58;:::i;:::-;33232:80;;33350:11;33331:15;:30;33327:53;;33370:10;;;;;;;;;;;;;;33327:53;33217:175;33193:199;33404:56;33431:4;33437:2;33441:7;33450:9;33404:26;:56::i;3718:479:0:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:0;;;;;;;;;;-1:-1:-1;;;3844:336:0;;;;;;;:::i;7865:234::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7944:149;;;8018:5;7986:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7986:29:0;;;;;;;;;;:37;;-1:-1:-1;;7986:37:0;;;8042:40;719:10:24;;7986:12:0;;8042:40;;8018:5;8042:40;7865:234;;:::o;8615:156:34:-;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:34;;8711:7;:53::i;10337:762:16:-;10396:13;10412:23;10427:7;10412:14;:23::i;:::-;10396:39;;10446:51;10467:5;10482:1;10486:7;10495:1;10446:20;:51::i;:::-;10607:23;10622:7;10607:14;:23::i;:::-;10675:24;;;;:15;:24;;;;;;;;10668:31;;-1:-1:-1;;10668:31:16;;;;;;-1:-1:-1;;;;;10915:16:16;;;;;:9;:16;;;;;:21;;-1:-1:-1;;10915:21:16;;;10963:16;;;:7;:16;;;;;;10956:23;;;;;;;10995:36;10599:31;;-1:-1:-1;10691:7:16;;10995:36;;10675:24;;10995:36;5912:214:0;;:::o;7727:261:50:-;7763:14;7877:17;:15;:17::i;:::-;7944:10;:36;;;;;7964:15;7944:36;;;;;;7868:26;;-1:-1:-1;7727:261:50:o;29741:575:49:-;29852:35;29889:36;30037:18;30058:30;30068:19;30058:9;:30::i;:::-;30037:51;-1:-1:-1;30103:15:49;;30099:210;;30207:10;6940:6;30166:25;30176:15;30166:7;:25;:::i;:::-;:37;;;;:::i;:::-;30165:52;;;;:::i;:::-;30135:82;-1:-1:-1;30287:10:49;30264:19;6940:6;30264:7;:19;:::i;:::-;30263:34;;;;:::i;:::-;30232:65;;30099:210;29932:384;29741:575;;;:::o;26462:512::-;26544:7;26760:45;26808:42;26834:8;26844:5;26808:25;:42::i;:::-;26760:90;;26926:40;26934:21;26957:8;26926:7;:40::i;8886:1150:50:-;9057:12;;8936:15;;-1:-1:-1;;;9057:12:50;;;;8936:15;9359;9341:33;;:95;;9421:15;9341:95;;;9390:15;9341:95;9646:10;;9306:130;;-1:-1:-1;9646:10:50;;;;;9802:40;;;9798:183;;;9943:11;;;;9899:40;;;9898:56;;-1:-1:-1;9798:183:50;10011:16;10000:27;;;9993:35;;;;:::i;:::-;8953:1083;;;8886:1150;:::o;4904:118:34:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;14151:831:16:-;14300:4;-1:-1:-1;;;;;14320:13:16;;1465:19:22;:23;14316:660:16;;14355:71;;;;;-1:-1:-1;;;;;14355:36:16;;;;;:71;;719:10:24;;14406:4:16;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:16;;;;;;;;-1:-1:-1;;14355:71:16;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:16;;21337:2:60;14635:60:16;;;21319:21:60;21376:2;21356:18;;;21349:30;21415:34;21395:18;;;21388:62;21486:20;21466:18;;;21459:48;21524:19;;14635:60:16;21135:414:60;14589:321:16;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;-1:-1:-1;;;;;;14476:51:16;14486:41;14476:51;;-1:-1:-1;14469:58:16;;14316:660;-1:-1:-1;14961:4:16;14151:831;;;;;;:::o;2112:890:19:-;2371:1;2359:9;:13;2355:219;;;2500:63;;-1:-1:-1;;;2500:63:19;;23507:2:60;2500:63:19;;;23489:21:60;23546:2;23526:18;;;23519:30;23585:34;23565:18;;;23558:62;23656:23;23636:18;;;23629:51;23697:19;;2500:63:19;23305:417:60;2355:219:19;2602:12;-1:-1:-1;;;;;2629:18:19;;2625:183;;2663:40;2695:7;3811:10;:17;;3784:24;;;;:15;:24;;;;;:44;;;3838:24;;;;;;;;;;;;3708:161;2663:40;2625:183;;;2732:2;-1:-1:-1;;;;;2724:10:19;:4;-1:-1:-1;;;;;2724:10:19;;2720:88;;2750:47;2783:4;2789:7;2750:32;:47::i;:::-;-1:-1:-1;;;;;2821:16:19;;2817:179;;2853:45;2890:7;2853:36;:45::i;:::-;2817:179;;;2925:4;-1:-1:-1;;;;;2919:10:19;:2;-1:-1:-1;;;;;2919:10:19;;2915:81;;2945:40;2973:2;2977:7;2945:27;:40::i;:::-;2273:729;2112:890;;;;:::o;2102:149:26:-;2160:13;2192:52;-1:-1:-1;;;;;2204:22:26;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:26;;1613:47;;1670:15;:6;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1695;:6;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1725:9:26;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;1791:8;1800:5;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;;;;;;;;;;-1:-1:-1;1836:1:26;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:26;;1857:55;;;;-1:-1:-1;;;1857:55:26;;24130:2:60;1857:55:26;;;24112:21:60;;;24149:18;;;24142:30;24208:34;24188:18;;;24181:62;24260:18;;1857:55:26;23928:356:60;2778:1388:34;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:34;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;4486:970:19;4748:22;4798:1;4773:22;4790:4;4773:16;:22::i;:::-;:26;;;;:::i;:::-;4809:18;4830:26;;;:17;:26;;;;;;4748:51;;-1:-1:-1;4960:28:19;;;4956:323;;-1:-1:-1;;;;;5026:18:19;;5004:19;5026:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5075:30;;;;;;:44;;;5191:30;;:17;:30;;;;;:43;;;4956:323;-1:-1:-1;5372:26:19;;;;:17;:26;;;;;;;;5365:33;;;-1:-1:-1;;;;;5415:18:19;;;;;:12;:18;;;;;:34;;;;;;;5408:41;4486:970::o;5744:1061::-;6018:10;:17;5993:22;;6018:21;;6038:1;;6018:21;:::i;:::-;6049:18;6070:24;;;:15;:24;;;;;;6438:10;:26;;5993:46;;-1:-1:-1;6070:24:19;;5993:46;;6438:26;;;;;;:::i;:::-;;;;;;;;;6416:48;;6500:11;6475:10;6486;6475:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;6579:28;;;:15;:28;;;;;;;:41;;;6748:24;;;;;6741:31;6782:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5815:990;;;5744:1061;:::o;3296:217::-;3380:14;3397:20;3414:2;3397:16;:20::i;:::-;-1:-1:-1;;;;;3427:16:19;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3471:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3296:217:19:o;14:177:60:-;-1:-1:-1;;;;;;92:5:60;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;638:258::-;710:1;720:113;734:6;731:1;728:13;720:113;;;810:11;;;804:18;791:11;;;784:39;756:2;749:10;720:113;;;851:6;848:1;845:13;842:48;;;-1:-1:-1;;886:1:60;868:16;;861:27;638:258::o;901:317::-;943:3;981:5;975:12;1008:6;1003:3;996:19;1024:63;1080:6;1073:4;1068:3;1064:14;1057:4;1050:5;1046:16;1024:63;:::i;:::-;1132:2;1120:15;-1:-1:-1;;1116:88:60;1107:98;;;;1207:4;1103:109;;901:317;-1:-1:-1;;901:317:60:o;1223:220::-;1372:2;1361:9;1354:21;1335:4;1392:45;1433:2;1422:9;1418:18;1410:6;1392:45;:::i;1448:180::-;1507:6;1560:2;1548:9;1539:7;1535:23;1531:32;1528:52;;;1576:1;1573;1566:12;1528:52;-1:-1:-1;1599:23:60;;1448:180;-1:-1:-1;1448:180:60:o;1864:154::-;-1:-1:-1;;;;;1943:5:60;1939:54;1932:5;1929:65;1919:93;;2008:1;2005;1998:12;2023:315;2091:6;2099;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2207:9;2194:23;2226:31;2251:5;2226:31;:::i;:::-;2276:5;2328:2;2313:18;;;;2300:32;;-1:-1:-1;;;2023:315:60:o;2738:456::-;2815:6;2823;2831;2884:2;2872:9;2863:7;2859:23;2855:32;2852:52;;;2900:1;2897;2890:12;2852:52;2939:9;2926:23;2958:31;2983:5;2958:31;:::i;:::-;3008:5;-1:-1:-1;3065:2:60;3050:18;;3037:32;3078:33;3037:32;3078:33;:::i;:::-;2738:456;;3130:7;;-1:-1:-1;;;3184:2:60;3169:18;;;;3156:32;;2738:456::o;3566:315::-;3634:6;3642;3695:2;3683:9;3674:7;3670:23;3666:32;3663:52;;;3711:1;3708;3701:12;3663:52;3747:9;3734:23;3724:33;;3807:2;3796:9;3792:18;3779:32;3820:31;3845:5;3820:31;:::i;:::-;3870:5;3860:15;;;3566:315;;;;;:::o;3886:248::-;3954:6;3962;4015:2;4003:9;3994:7;3990:23;3986:32;3983:52;;;4031:1;4028;4021:12;3983:52;-1:-1:-1;;4054:23:60;;;4124:2;4109:18;;;4096:32;;-1:-1:-1;3886:248:60:o;4139:367::-;4202:8;4212:6;4266:3;4259:4;4251:6;4247:17;4243:27;4233:55;;4284:1;4281;4274:12;4233:55;-1:-1:-1;4307:20:60;;4350:18;4339:30;;4336:50;;;4382:1;4379;4372:12;4336:50;4419:4;4411:6;4407:17;4395:29;;4479:3;4472:4;4462:6;4459:1;4455:14;4447:6;4443:27;4439:38;4436:47;4433:67;;;4496:1;4493;4486:12;4433:67;4139:367;;;;;:::o;4511:773::-;4633:6;4641;4649;4657;4710:2;4698:9;4689:7;4685:23;4681:32;4678:52;;;4726:1;4723;4716:12;4678:52;4766:9;4753:23;4795:18;4836:2;4828:6;4825:14;4822:34;;;4852:1;4849;4842:12;4822:34;4891:70;4953:7;4944:6;4933:9;4929:22;4891:70;:::i;:::-;4980:8;;-1:-1:-1;4865:96:60;-1:-1:-1;5068:2:60;5053:18;;5040:32;;-1:-1:-1;5084:16:60;;;5081:36;;;5113:1;5110;5103:12;5081:36;;5152:72;5216:7;5205:8;5194:9;5190:24;5152:72;:::i;:::-;4511:773;;;;-1:-1:-1;5243:8:60;-1:-1:-1;;;;4511:773:60:o;5289:271::-;5372:6;5425:2;5413:9;5404:7;5400:23;5396:32;5393:52;;;5441:1;5438;5431:12;5393:52;5480:9;5467:23;5499:31;5524:5;5499:31;:::i;7014:118::-;7100:5;7093:13;7086:21;7079:5;7076:32;7066:60;;7122:1;7119;7112:12;7137:382;7202:6;7210;7263:2;7251:9;7242:7;7238:23;7234:32;7231:52;;;7279:1;7276;7269:12;7231:52;7318:9;7305:23;7337:31;7362:5;7337:31;:::i;:::-;7387:5;-1:-1:-1;7444:2:60;7429:18;;7416:32;7457:30;7416:32;7457:30;:::i;7524:184::-;-1:-1:-1;;;7573:1:60;7566:88;7673:4;7670:1;7663:15;7697:4;7694:1;7687:15;7713:334;7784:2;7778:9;7840:2;7830:13;;-1:-1:-1;;7826:86:60;7814:99;;7943:18;7928:34;;7964:22;;;7925:62;7922:88;;;7990:18;;:::i;:::-;8026:2;8019:22;7713:334;;-1:-1:-1;7713:334:60:o;8052:245::-;8100:4;8133:18;8125:6;8122:30;8119:56;;;8155:18;;:::i;:::-;-1:-1:-1;8212:2:60;8200:15;-1:-1:-1;;8196:88:60;8286:4;8192:99;;8052:245::o;8302:1016::-;8397:6;8405;8413;8421;8474:3;8462:9;8453:7;8449:23;8445:33;8442:53;;;8491:1;8488;8481:12;8442:53;8530:9;8517:23;8549:31;8574:5;8549:31;:::i;:::-;8599:5;-1:-1:-1;8656:2:60;8641:18;;8628:32;8669:33;8628:32;8669:33;:::i;:::-;8721:7;-1:-1:-1;8775:2:60;8760:18;;8747:32;;-1:-1:-1;8830:2:60;8815:18;;8802:32;8857:18;8846:30;;8843:50;;;8889:1;8886;8879:12;8843:50;8912:22;;8965:4;8957:13;;8953:27;-1:-1:-1;8943:55:60;;8994:1;8991;8984:12;8943:55;9030:2;9017:16;9055:48;9071:31;9099:2;9071:31;:::i;:::-;9055:48;:::i;:::-;9126:2;9119:5;9112:17;9166:7;9161:2;9156;9152;9148:11;9144:20;9141:33;9138:53;;;9187:1;9184;9177:12;9138:53;9242:2;9237;9233;9229:11;9224:2;9217:5;9213:14;9200:45;9286:1;9281:2;9276;9269:5;9265:14;9261:23;9254:34;9307:5;9297:15;;;;;8302:1016;;;;;;;:::o;9522:383::-;9599:6;9607;9615;9668:2;9656:9;9647:7;9643:23;9639:32;9636:52;;;9684:1;9681;9674:12;9636:52;9723:9;9710:23;9742:31;9767:5;9742:31;:::i;:::-;9792:5;9844:2;9829:18;;9816:32;;-1:-1:-1;9895:2:60;9880:18;;;9867:32;;9522:383;-1:-1:-1;;;9522:383:60:o;9910:632::-;10081:2;10133:21;;;10203:13;;10106:18;;;10225:22;;;10052:4;;10081:2;10304:15;;;;10278:2;10263:18;;;10052:4;10347:169;10361:6;10358:1;10355:13;10347:169;;;10422:13;;10410:26;;10491:15;;;;10456:12;;;;10383:1;10376:9;10347:169;;;-1:-1:-1;10533:3:60;;9910:632;-1:-1:-1;;;;;;9910:632:60:o;11126:388::-;11194:6;11202;11255:2;11243:9;11234:7;11230:23;11226:32;11223:52;;;11271:1;11268;11261:12;11223:52;11310:9;11297:23;11329:31;11354:5;11329:31;:::i;:::-;11379:5;-1:-1:-1;11436:2:60;11421:18;;11408:32;11449:33;11408:32;11449:33;:::i;12027:437::-;12106:1;12102:12;;;;12149;;;12170:61;;12224:4;12216:6;12212:17;12202:27;;12170:61;12277:2;12269:6;12266:14;12246:18;12243:38;12240:218;;-1:-1:-1;;;12311:1:60;12304:88;12415:4;12412:1;12405:15;12443:4;12440:1;12433:15;12240:218;;12027:437;;;:::o;14543:184::-;-1:-1:-1;;;14592:1:60;14585:88;14692:4;14689:1;14682:15;14716:4;14713:1;14706:15;14732:228;14772:7;14898:1;-1:-1:-1;;14826:74:60;14823:1;14820:81;14815:1;14808:9;14801:17;14797:105;14794:131;;;14905:18;;:::i;:::-;-1:-1:-1;14945:9:60;;14732:228::o;14965:274::-;15005:1;15031;15021:189;;-1:-1:-1;;;15063:1:60;15056:88;15167:4;15164:1;15157:15;15195:4;15192:1;15185:15;15021:189;-1:-1:-1;15224:9:60;;14965:274::o;15657:184::-;-1:-1:-1;;;15706:1:60;15699:88;15806:4;15803:1;15796:15;15830:4;15827:1;15820:15;16609:244;16648:3;16676:26;16729:2;16726:1;16722:10;16759:2;16756:1;16752:10;16790:3;16786:2;16782:12;16777:3;16774:21;16771:47;;;16798:18;;:::i;:::-;16834:13;;16609:244;-1:-1:-1;;;;16609:244:60:o;16858:195::-;16897:3;-1:-1:-1;;16921:5:60;16918:77;16915:103;;16998:18;;:::i;:::-;-1:-1:-1;17045:1:60;17034:13;;16858:195::o;17394:635::-;17474:6;17527:2;17515:9;17506:7;17502:23;17498:32;17495:52;;;17543:1;17540;17533:12;17495:52;17576:9;17570:16;17609:18;17601:6;17598:30;17595:50;;;17641:1;17638;17631:12;17595:50;17664:22;;17717:4;17709:13;;17705:27;-1:-1:-1;17695:55:60;;17746:1;17743;17736:12;17695:55;17775:2;17769:9;17800:48;17816:31;17844:2;17816:31;:::i;17800:48::-;17871:2;17864:5;17857:17;17911:7;17906:2;17901;17897;17893:11;17889:20;17886:33;17883:53;;;17932:1;17929;17922:12;17883:53;17945:54;17996:2;17991;17984:5;17980:14;17975:2;17971;17967:11;17945:54;:::i;18034:125::-;18074:4;18102:1;18099;18096:8;18093:34;;;18107:18;;:::i;:::-;-1:-1:-1;18144:9:60;;18034:125::o;18164:128::-;18204:3;18235:1;18231:6;18228:1;18225:13;18222:39;;;18241:18;;:::i;:::-;-1:-1:-1;18277:9:60;;18164:128::o;19410:245::-;19477:6;19530:2;19518:9;19509:7;19505:23;19501:32;19498:52;;;19546:1;19543;19536:12;19498:52;19578:9;19572:16;19597:28;19619:5;19597:28;:::i;21554:786::-;21965:25;21960:3;21953:38;21935:3;22020:6;22014:13;22036:62;22091:6;22086:2;22081:3;22077:12;22070:4;22062:6;22058:17;22036:62;:::i;:::-;22162:19;22157:2;22117:16;;;22149:11;;;22142:40;22207:13;;22229:63;22207:13;22278:2;22270:11;;22263:4;22251:17;;22229:63;:::i;:::-;22312:17;22331:2;22308:26;;21554:786;-1:-1:-1;;;;21554:786:60:o;22345:184::-;-1:-1:-1;;;22394:1:60;22387:88;22494:4;22491:1;22484:15;22518:4;22515:1;22508:15;22534:512;22728:4;-1:-1:-1;;;;;22838:2:60;22830:6;22826:15;22815:9;22808:34;22890:2;22882:6;22878:15;22873:2;22862:9;22858:18;22851:43;;22930:6;22925:2;22914:9;22910:18;22903:34;22973:3;22968:2;22957:9;22953:18;22946:31;22994:46;23035:3;23024:9;23020:19;23012:6;22994:46;:::i;:::-;22986:54;22534:512;-1:-1:-1;;;;;;22534:512:60:o;23051:249::-;23120:6;23173:2;23161:9;23152:7;23148:23;23144:32;23141:52;;;23189:1;23186;23179:12;23141:52;23221:9;23215:16;23240:30;23264:5;23240:30;:::i;23727:196::-;23766:3;23794:5;23784:39;;23803:18;;:::i;:::-;-1:-1:-1;;;23839:78:60;;23727:196::o;24289:184::-;-1:-1:-1;;;24338:1:60;24331:88;24438:4;24435:1;24428:15;24462:4;24459:1;24452:15"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","addReward(uint256)":"74de4ec4","approvalPauseDuration()":"340b1336","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","compound(uint256)":"aa5f7e26","emergencyExit(uint256)":"4231b0bd","endPeriod()":"5faa65ff","getApproved(uint256)":"081812fc","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","harvest(uint256)":"ddc63262","hasRole(bytes32,address)":"91d14854","isApprovedForAll(address,address)":"e985e9c5","lastUpdate()":"c0463711","mint(uint256)":"a0712d68","multiStake(uint256[],uint256[])":"5e4c911f","multiWithdraw(uint256[],uint256[])":"aea62e3f","name()":"06fdde03","ownerOf(uint256)":"6352211e","periodDuration()":"b470aade","periodFinish()":"ebe2b12b","positionPendingRewards(uint256)":"496cea98","positionRewardRate(uint256)":"468cc41e","positions(uint256)":"99fbab88","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rewardRate()":"7b0a47ee","rewardSummationsStored()":"f5c45500","rewardsToken()":"d1af0c7d","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setApprovalPauseDuration(uint256)":"75c3fd3f","setPeriodDuration(uint256)":"7c2d6e01","setTokenMetadata(address)":"6fdff40f","stake(uint256,uint256)":"7b0472f0","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenByIndex(uint256)":"4f6ccce7","tokenMetadata()":"f5b2cad7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","tokensOfOwnerByIndex(address,uint256,uint256)":"ce9e2daa","totalRewardAdded()":"098b8858","totalSupply()":"18160ddd","totalValueVariables()":"df3e1aa4","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,uint256)":"441a3e70"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRewardsToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"contract ITokenMetadata\",\"name\":\"newTokenMetadata\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"FailedTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HighSlippage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Locked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedArrayLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEffect\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooLate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Underflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnprivilegedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newApprovalPauseDuration\",\"type\":\"uint256\"}],\"name\":\"PauseDurationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"PeriodDurationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract ITokenMetadata\",\"name\":\"newTokenMetadata\",\"type\":\"address\"}],\"name\":\"TokenMetadataSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalPauseDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"compound\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"emergencyExit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"harvest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdate\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"positionIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"multiStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"positionIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"multiWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"positionPendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"positionRewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"positions\",\"outputs\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"balance\",\"type\":\"uint96\"},{\"internalType\":\"uint160\",\"name\":\"sumOfEntryTimes\",\"type\":\"uint160\"}],\"internalType\":\"struct PangolinStakingPositions.ValueVariables\",\"name\":\"valueVariables\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"idealPosition\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerValue\",\"type\":\"uint256\"}],\"internalType\":\"struct PangolinStakingPositions.RewardSummations\",\"name\":\"rewardSummationsPaid\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"previousValues\",\"type\":\"uint160\"},{\"internalType\":\"uint48\",\"name\":\"lastUpdate\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"lastDevaluation\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardSummationsStored\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"idealPosition\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerValue\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newApprovalPauseDuration\",\"type\":\"uint256\"}],\"name\":\"setApprovalPauseDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"setPeriodDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITokenMetadata\",\"name\":\"newTokenMetadata\",\"type\":\"address\"}],\"name\":\"setTokenMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenMetadata\",\"outputs\":[{\"internalType\":\"contract ITokenMetadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"}],\"name\":\"tokensOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRewardAdded\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalValueVariables\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"balance\",\"type\":\"uint96\"},{\"internalType\":\"uint160\",\"name\":\"sumOfEntryTimes\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"shung for Pangolin\",\"details\":\"SAR Algorithm:      SAR allocates a user (or position) the following proportion of any given rewards:      `(balance_position / balance_total) * (stakingDuration_position /      stakingDuration_average)`.      Staking duration is how long a token has been staked. The staking duration of a token      starts when it is staked, restarts when its rewards are harvested, and ends when it is      withdrawn.      We can refer to `balance * stakingDuration` as `value`. Based on this definition, the      formula above can be simplified to `value_position / value_total`.      Although this looks similar to just `balance_position / balance_total`, unlike balance, the      value of every position is constantly changing as a function of time. Therefore, we cannot      simply use the standard staking algorithm (i.e.: Synthetix StakingRewards) for calculating      rewards of users in constant time. A new algorithm had to be invented for this reason.      To understand the algorithm, one must read the Proofs. Then      `_getRewardSummationsIncrementations()` and `_earned()` functions will make sense.Assumptions (not checked to be true):      - `rewardsToken` reverts or returns false on invalid transfers,      - `block.timestamp * totalRewardAdded` fits 128 bits,      - `block.timestamp` is never greater than `2**40 - 1 - 2**32`.Limitations (checked to be true):      - `totalStaked` fits 96 bits.      - `totalRewardAdded` fits 96 bits.\",\"kind\":\"dev\",\"methods\":{\"addReward(uint256)\":{\"params\":{\"amount\":\"The amount of reward tokens to add to the contract.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"params\":{\"positionId\":\"The identifier of the position to close.\"}},\"compound(uint256)\":{\"params\":{\"positionId\":\"The identifier of the position to compound the rewards of.\"}},\"constructor\":{\"params\":{\"newAdmin\":\"The initial owner of the contract.\",\"newRewardsToken\":\"The token used for both for staking and reward.\",\"newTokenMetadata\":\"The contract that constructs tokenURIs for position NFTs.\"}},\"emergencyExit(uint256)\":{\"params\":{\"positionId\":\"The identifier of the position to exit.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"harvest(uint256)\":{\"params\":{\"positionId\":\"The identifier of the position to claim the rewards of.\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"mint(uint256)\":{\"params\":{\"amount\":\"The amount of tokens to transfer from the caller to the position.\",\"positionId\":\"The identifier of the newly created position.\"}},\"multiStake(uint256[],uint256[])\":{\"details\":\"This saves gas by updating summations only once.\",\"params\":{\"amounts\":\"An array of amount of tokens to stake to the corresponding positions.\",\"positionIds\":\"An array of identifiers of positions to stake to.\"}},\"multiWithdraw(uint256[],uint256[])\":{\"details\":\"This saves gas by updating summations only once.\",\"params\":{\"amounts\":\"An array of amount of tokens to withdraw from corresponding positions.\",\"positionIds\":\"An array of identifiers of positions to withdraw from.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"positionPendingRewards(uint256)\":{\"params\":{\"positionId\":\"The identifier of the position to check the accrued rewards of.\"},\"returns\":{\"_0\":\"The amount of rewards that have been accrued in the position.\"}},\"positionRewardRate(uint256)\":{\"details\":\"In SAR, positions have different APRs, unlike other staking algorithms. This external      function clearly demonstrates how the SAR algorithm is supposed to distribute the      rewards based on \\u201cvalue\\u201d, which is balance times staking duration. This external      function can be considered as a specification.\",\"params\":{\"positionId\":\"The identifier of the position to check the reward rate of.\"},\"returns\":{\"_0\":\"The rewards per second of the position.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"rewardRate()\":{\"returns\":{\"_0\":\"The reward per second being distributed.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setApprovalPauseDuration(uint256)\":{\"params\":{\"newApprovalPauseDuration\":\"The new duration during which token approvals are ignored.\"}},\"setPeriodDuration(uint256)\":{\"params\":{\"newDuration\":\"The duration the feature periods will last.\"}},\"setTokenMetadata(address)\":{\"params\":{\"newTokenMetadata\":\"The addresses of the new contract address that constructs tokenURIs.\"}},\"stake(uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to deposit into the position.\",\"positionId\":\"The identifier of the position to deposit the funds into.\"}},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"withdraw(uint256,uint256)\":{\"params\":{\"amount\":\"The amount of staked tokens, excluding rewards, to withdraw from the position.\",\"positionId\":\"The identifier of the position to withdraw the balance.\"}}},\"stateVariables\":{\"_positionsLength\":{\"details\":\"This is simply a counter for determining the next position identifier.\"},\"approvalPauseDuration\":{\"details\":\"This is a hacky solution to prevent frontrunning NFT sales. This is a general issue      with all NFTs with mutable state, because NFT marketplaces do not have a standard      method for \\u201cslippage control\\u201d. This allows a malicious actor utilizing MEV to      devalue the NFT token in the same block as someone buying the NFT. For example, if a      position has 5 PNG tokens, and someone makes a transaction to buy its NFT, the owner      of the position can withdraw all PNG in the position, resulting in buyer to buy a      position with 0 balance instead of 5. By using `approvalPauseDuration` we simply      disable transfers made by non-owners (i.e.: marketplace contract) for a period.\"}},\"title\":\"Pangolin Staking Positions\",\"version\":1},\"userdoc\":{\"events\":{\"PauseDurationSet(uint256)\":{\"notice\":\"The event emitted when admin changes `approvalPauseDuration`. \"},\"PeriodDurationUpdated(uint256)\":{\"notice\":\"The event emitted when the period duration is changed. \"},\"PeriodEnded()\":{\"notice\":\"The event emitted when a period is manually cut short. \"},\"RewardAdded(uint256)\":{\"notice\":\"The event emitted when a period is started or extended through funding. \"},\"Staked(uint256,uint256,uint256)\":{\"notice\":\"The event emitted when staking to, minting, or compounding a position. \"},\"TokenMetadataSet(address)\":{\"notice\":\"The event emitted when admin changes `tokenMetadata`. \"},\"Withdrawn(uint256,uint256,uint256)\":{\"notice\":\"The event emitted when withdrawing or harvesting from a position. \"}},\"kind\":\"user\",\"methods\":{\"addReward(uint256)\":{\"notice\":\"External restricted function to fund the contract.\"},\"approvalPauseDuration()\":{\"notice\":\"The duration during NFT approvals are ignored after an update that devalues it.\"},\"burn(uint256)\":{\"notice\":\"External function to close a position by burning the associated NFT.\"},\"compound(uint256)\":{\"notice\":\"External function to deposit the accrued rewards of a position back to itself.\"},\"constructor\":{\"notice\":\"Constructor to create and initialize PangolinStakingPositions contract.\"},\"emergencyExit(uint256)\":{\"notice\":\"External function to exit from a position by forgoing rewards.\"},\"endPeriod()\":{\"notice\":\"External restricted function to end the period and withdraw leftover rewards. \"},\"harvest(uint256)\":{\"notice\":\"External function to claim the accrued rewards of a position.\"},\"lastUpdate()\":{\"notice\":\"The timestamp when the last time the rewards were claimed by the child contract. \"},\"mint(uint256)\":{\"notice\":\"External function to open a new position to the caller.\"},\"multiStake(uint256[],uint256[])\":{\"notice\":\"External function to stake to or compound multiple positions.\"},\"multiWithdraw(uint256[],uint256[])\":{\"notice\":\"External function to withdraw or harvest from multiple positions.\"},\"periodDuration()\":{\"notice\":\"The duration for how long the rewards will last after `addReward` is called. \"},\"periodFinish()\":{\"notice\":\"The timestamp when the current period will end or the latest period has ended. \"},\"positionPendingRewards(uint256)\":{\"notice\":\"External view function to get the accrued rewards of a position. It takes the         pending rewards since lastUpdate into consideration.\"},\"positionRewardRate(uint256)\":{\"notice\":\"External view function to get the reward rate of a position.\"},\"positions(uint256)\":{\"notice\":\"The mapping of position identifiers to their properties. \"},\"rewardRate()\":{\"notice\":\"Public view function to return the total rewards distributed per second.\"},\"rewardSummationsStored()\":{\"notice\":\"The variables that govern the reward distribution. \"},\"rewardsToken()\":{\"notice\":\"The reward token that is distributed to stakers. \"},\"setApprovalPauseDuration(uint256)\":{\"notice\":\"External only-owner function to set how long the token approvals should be ignored.\"},\"setPeriodDuration(uint256)\":{\"notice\":\"External restricted function to change the reward period duration.\"},\"setTokenMetadata(address)\":{\"notice\":\"External only-owner function to change the contract that constructs tokenURIs.\"},\"stake(uint256,uint256)\":{\"notice\":\"External function to deposit tokens to an existing position.\"},\"tokenMetadata()\":{\"notice\":\"The contract that constructs and returns tokenURIs for position tokens. \"},\"totalRewardAdded()\":{\"notice\":\"The amount of total rewards added. \"},\"totalValueVariables()\":{\"notice\":\"The struct holding the totalStaked and sumOfEntryTimes. \"},\"withdraw(uint256,uint256)\":{\"notice\":\"External function to withdraw given amount of staked balance, plus all the accrued         rewards from the position.\"}},\"notice\":\"Pangolin Staking Positions is a unique staking solution. It utilizes the Sunshine and         Rainbows (SAR) algorithm, which distributes rewards as a function of balance and staking         duration. See README and the Proofs paper to see how SAR works. In this implementation,         the staking token is the same as the reward token, and staking information is recorded         as positions where each position is an NFT.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/PangolinStakingPositions.sol\":\"PangolinStakingPositions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x1e854874c68bec05be100dc0092cb5fbbc71253d370ae98ddef248bbfc3fe118\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0fb6e809779426dc2ac201149bbad4aecdc5810874f2843b050e8b5fef8d30\",\"dweb:/ipfs/QmPDRjaNxmcyxLUKvv8Fxk5eWcf7xvC5S9JpbtqvE7Cadu\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0xa8796bd16014cefb8c26449413981a49c510f92a98d6828494f5fd046223ced3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a5e0bb5a7d182e0d0eef87033f78115eab791de3626a929bc98c157087880a\",\"dweb:/ipfs/QmetkXAu2CJKS4qrZtEQPU8okAPwUwa6HL4XYwk8vrYMk8\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]},\"contracts/staking-positions/PangolinStakingPositions.sol\":{\"keccak256\":\"0xe4c6b5b2eaa8b5085381cb3475bbbc674778ae02ac7722969b98d9be29eb7ce2\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://ed60765a392e6f50ae8ef915ac64f362a9b25edb9ee2d8532f68c5f67df38b17\",\"dweb:/ipfs/QmT2EFZD3rmTezMpJepDGMuCtVLVLKiqMAWhymgEHR6M2g\"]},\"contracts/staking-positions/PangolinStakingPositionsFunding.sol\":{\"keccak256\":\"0xefcee662026897a273c4e6961f286c49d93e1e2e284faec89a9adca1b7915783\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://f9a6167411900d27c4c764127d283b63b109fdde912059c52fd664dd06bf3325\",\"dweb:/ipfs/QmSu7FSkt3oX4eckdnHCVyGczLFBJP9u3DuLW8ZyjwCuUT\"]}},\"version\":1}"}},"contracts/staking-positions/PangolinStakingPositionsFunding.sol":{"PangolinStakingPositionsFunding":{"abi":[{"inputs":[],"name":"FailedTransfer","type":"error"},{"inputs":[],"name":"HighSlippage","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"InvalidType","type":"error"},{"inputs":[],"name":"Locked","type":"error"},{"inputs":[],"name":"MismatchedArrayLengths","type":"error"},{"inputs":[],"name":"NoEffect","type":"error"},{"inputs":[],"name":"NonExistentToken","type":"error"},{"inputs":[],"name":"NullInput","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"},{"inputs":[],"name":"Overflow","type":"error"},{"inputs":[],"name":"TooEarly","type":"error"},{"inputs":[],"name":"TooLate","type":"error"},{"inputs":[],"name":"Underflow","type":"error"},{"inputs":[],"name":"UnprivilegedCaller","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"PeriodDurationUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"PeriodEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"setPeriodDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardAdded","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","addReward(uint256)":"74de4ec4","endPeriod()":"5faa65ff","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","lastUpdate()":"c0463711","periodDuration()":"b470aade","periodFinish()":"ebe2b12b","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rewardRate()":"7b0a47ee","rewardsToken()":"d1af0c7d","setPeriodDuration(uint256)":"7c2d6e01","supportsInterface(bytes4)":"01ffc9a7","totalRewardAdded()":"098b8858"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HighSlippage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Locked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MismatchedArrayLengths\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoEffect\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonExistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooLate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Underflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnprivilegedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"PeriodDurationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"RewardAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdate\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"periodFinish\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"setPeriodDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRewardAdded\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Shung for Pangolin\",\"details\":\"The inheriting contract must call `_claim()` to check its reward since the last time the      same call was made. Then, based on the reward amount, the inheriting contract shall      determine the distribution to stakers. The purpose of this architecture is to separate the      logic of funding from the staking and reward distribution.\",\"kind\":\"dev\",\"methods\":{\"addReward(uint256)\":{\"params\":{\"amount\":\"The amount of reward tokens to add to the contract.\"}},\"constructor\":{\"params\":{\"newAdmin\":\"The initial owner of the contract.\",\"newRewardsToken\":\"The token used for both for staking and reward.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"rewardRate()\":{\"returns\":{\"_0\":\"The reward per second being distributed.\"}},\"setPeriodDuration(uint256)\":{\"params\":{\"newDuration\":\"The duration the feature periods will last.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"FUNDER_ROLE\":{\"details\":\"The privileged role that can call `addReward` function \"},\"MAX_PERIOD_DURATION\":{\"details\":\"The maximum duration a period can last. \"},\"MAX_TOTAL_REWARD\":{\"details\":\"The maximum amount of rewards that can ever be distributed. \"},\"MIN_PERIOD_DURATION\":{\"details\":\"The minimum duration a period can last. \"}},\"title\":\"Pangolin Staking Positions Funding\",\"version\":1},\"userdoc\":{\"events\":{\"PeriodDurationUpdated(uint256)\":{\"notice\":\"The event emitted when the period duration is changed. \"},\"PeriodEnded()\":{\"notice\":\"The event emitted when a period is manually cut short. \"},\"RewardAdded(uint256)\":{\"notice\":\"The event emitted when a period is started or extended through funding. \"}},\"kind\":\"user\",\"methods\":{\"addReward(uint256)\":{\"notice\":\"External restricted function to fund the contract.\"},\"constructor\":{\"notice\":\"Constructor to create PangolinStakingPositionsFunding contract.\"},\"endPeriod()\":{\"notice\":\"External restricted function to end the period and withdraw leftover rewards. \"},\"lastUpdate()\":{\"notice\":\"The timestamp when the last time the rewards were claimed by the child contract. \"},\"periodDuration()\":{\"notice\":\"The duration for how long the rewards will last after `addReward` is called. \"},\"periodFinish()\":{\"notice\":\"The timestamp when the current period will end or the latest period has ended. \"},\"rewardRate()\":{\"notice\":\"Public view function to return the total rewards distributed per second.\"},\"rewardsToken()\":{\"notice\":\"The reward token that is distributed to stakers. \"},\"setPeriodDuration(uint256)\":{\"notice\":\"External restricted function to change the reward period duration.\"},\"totalRewardAdded()\":{\"notice\":\"The amount of total rewards added. \"}},\"notice\":\"A contract that is only the rewards part of `StakingRewards`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/PangolinStakingPositionsFunding.sol\":\"PangolinStakingPositionsFunding\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]},\"contracts/staking-positions/PangolinStakingPositionsFunding.sol\":{\"keccak256\":\"0xefcee662026897a273c4e6961f286c49d93e1e2e284faec89a9adca1b7915783\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://f9a6167411900d27c4c764127d283b63b109fdde912059c52fd664dd06bf3325\",\"dweb:/ipfs/QmSu7FSkt3oX4eckdnHCVyGczLFBJP9u3DuLW8ZyjwCuUT\"]}},\"version\":1}"}},"contracts/staking-positions/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[{"inputs":[],"name":"Reentrancy","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Shung for PangolinModified from Solmate         (https://github.com/Rari-Capital/solmate/blob/main/src/utils/ReentrancyGuard.sol)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"ReentrancyGuard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/staking-positions/ReentrancyGuard.sol\":{\"keccak256\":\"0x77a8bd6a27ca0173cf07e52ad5c905be1128bfdb9140b7552370698e023ed9f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://459d9e8fa4ec115394c008002310e98071346cee67eb4f1a550c2edf4006d47d\",\"dweb:/ipfs/QmRACbAwiucFy3QELqctZw4MqcUqCvoDMem5XVeo137zW3\"]}},\"version\":1}"}},"contracts/staking-positions/RewardFundingForwarder.sol":{"IPangoChef":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addReward(uint256)":"74de4ec4","hasRole(bytes32,address)":"91d14854","rewardsToken()":"d1af0c7d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/RewardFundingForwarder.sol\":\"IPangoChef\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/staking-positions/RewardFundingForwarder.sol\":{\"keccak256\":\"0xc5d019477258ef377728dc224e9d74194589b369404041c897b0f3fc70e692d8\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://c41237878c6ceac85d254d5b721316c73cb47328a50cf44880352aa9736a7148\",\"dweb:/ipfs/Qmek9Z9mYFvvQcqRSeE8MQ5LbCHU6gz57GdP2dno742TxH\"]}},\"version\":1}"},"RewardFundingForwarder":{"abi":[{"inputs":[{"internalType":"address","name":"newPangoChef","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"fundRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pangoChef","outputs":[{"internalType":"contract IPangoChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_16823":{"entryPoint":null,"id":16823,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":370,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":418,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1210:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:60","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:60"},"nodeType":"YulFunctionCall","src":"143:12:60"},"nodeType":"YulExpressionStatement","src":"143:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:60"},"nodeType":"YulFunctionCall","src":"112:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:60"},"nodeType":"YulFunctionCall","src":"108:32:60"},"nodeType":"YulIf","src":"105:52:60"},{"nodeType":"YulVariableDeclaration","src":"166:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:60"},"nodeType":"YulFunctionCall","src":"179:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:60"},"nodeType":"YulFunctionCall","src":"260:12:60"},"nodeType":"YulExpressionStatement","src":"260:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:60"},"nodeType":"YulFunctionCall","src":"239:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:60"},"nodeType":"YulFunctionCall","src":"235:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:60"},"nodeType":"YulFunctionCall","src":"224:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:60"},"nodeType":"YulFunctionCall","src":"214:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:60"},"nodeType":"YulFunctionCall","src":"207:50:60"},"nodeType":"YulIf","src":"204:70:60"},{"nodeType":"YulAssignment","src":"283:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:60"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:60","type":""}],"src":"14:290:60"},{"body":{"nodeType":"YulBlock","src":"483:164:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"500:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"511:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:60"},"nodeType":"YulFunctionCall","src":"493:21:60"},"nodeType":"YulExpressionStatement","src":"493:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"534:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"545:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:60"},"nodeType":"YulFunctionCall","src":"530:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"550:2:60","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"523:6:60"},"nodeType":"YulFunctionCall","src":"523:30:60"},"nodeType":"YulExpressionStatement","src":"523:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"573:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"584:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"569:3:60"},"nodeType":"YulFunctionCall","src":"569:18:60"},{"hexValue":"656d70747920636f6e7472616374","kind":"string","nodeType":"YulLiteral","src":"589:16:60","type":"","value":"empty contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"562:6:60"},"nodeType":"YulFunctionCall","src":"562:44:60"},"nodeType":"YulExpressionStatement","src":"562:44:60"},{"nodeType":"YulAssignment","src":"615:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"627:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"638:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"623:3:60"},"nodeType":"YulFunctionCall","src":"623:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"615:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"460:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"474:4:60","type":""}],"src":"309:338:60"},{"body":{"nodeType":"YulBlock","src":"781:145:60","statements":[{"nodeType":"YulAssignment","src":"791:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"803:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"799:3:60"},"nodeType":"YulFunctionCall","src":"799:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"791:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"833:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"848:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"864:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"869:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"860:3:60"},"nodeType":"YulFunctionCall","src":"860:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"873:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"856:3:60"},"nodeType":"YulFunctionCall","src":"856:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"844:3:60"},"nodeType":"YulFunctionCall","src":"844:32:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"826:6:60"},"nodeType":"YulFunctionCall","src":"826:51:60"},"nodeType":"YulExpressionStatement","src":"826:51:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"897:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"908:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"893:3:60"},"nodeType":"YulFunctionCall","src":"893:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"913:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"886:6:60"},"nodeType":"YulFunctionCall","src":"886:34:60"},"nodeType":"YulExpressionStatement","src":"886:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"742:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"761:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"772:4:60","type":""}],"src":"652:274:60"},{"body":{"nodeType":"YulBlock","src":"1009:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"1055:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1064:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1067:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1057:6:60"},"nodeType":"YulFunctionCall","src":"1057:12:60"},"nodeType":"YulExpressionStatement","src":"1057:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1030:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1039:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1026:3:60"},"nodeType":"YulFunctionCall","src":"1026:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1051:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1022:3:60"},"nodeType":"YulFunctionCall","src":"1022:32:60"},"nodeType":"YulIf","src":"1019:52:60"},{"nodeType":"YulVariableDeclaration","src":"1080:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1099:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1093:5:60"},"nodeType":"YulFunctionCall","src":"1093:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1084:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1162:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1171:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1174:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1164:6:60"},"nodeType":"YulFunctionCall","src":"1164:12:60"},"nodeType":"YulExpressionStatement","src":"1164:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1131:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1152:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1145:6:60"},"nodeType":"YulFunctionCall","src":"1145:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1138:6:60"},"nodeType":"YulFunctionCall","src":"1138:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1128:2:60"},"nodeType":"YulFunctionCall","src":"1128:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1121:6:60"},"nodeType":"YulFunctionCall","src":"1121:40:60"},"nodeType":"YulIf","src":"1118:60:60"},{"nodeType":"YulAssignment","src":"1187:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1197:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1187:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"975:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"986:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"998:6:60","type":""}],"src":"931:277:60"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_3fda751e8acd64a71ef85c9986e77d2f31fac5b52e33f29f7769477bb58746b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 14)\n        mstore(add(headStart, 64), \"empty contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561001057600080fd5b5060405161081d38038061081d83398101604081905261002f91610172565b806001600160a01b03163b60000361007e5760405162461bcd60e51b815260206004820152600e60248201526d195b5c1d1e4818dbdb9d1c9858dd60921b604482015260640160405180910390fd5b6000816001600160a01b031663d1af0c7d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e29190610172565b60405163095ea7b360e01b81526001600160a01b03848116600483015260001960248301529192509082169063095ea7b3906044016020604051808303816000875af1158015610136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015a91906101a2565b506001600160a01b039182166080521660a0526101c4565b60006020828403121561018457600080fd5b81516001600160a01b038116811461019b57600080fd5b9392505050565b6000602082840312156101b457600080fd5b8151801515811461019b57600080fd5b60805160a05161061361020a6000396000818160fc015261048301526000818160710152818161017f0152818161029901528181610362015261053501526106136000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80633c6b16ab116100505780633c6b16ab146100d157806374de4ec4146100e4578063d1af0c7d146100f757600080fd5b80631870510b1461006c57806328662551146100bc575b600080fd5b6100937f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100cf6100ca366004610579565b61011e565b005b6100cf6100df36600461059b565b61012b565b6100cf6100f236600461059b565b61030e565b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6101278261030e565b5050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156101db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ff91906105b4565b61026a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec4906024015b600060405180830381600087803b1580156102f357600080fd5b505af1158015610307573d6000803e3d6000fd5b5050505050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156103be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e291906105b4565b610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610261565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303816000875af11580156104e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050591906105b4565b506040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec4906024016102d9565b6000806040838503121561058c57600080fd5b50508035926020909101359150565b6000602082840312156105ad57600080fd5b5035919050565b6000602082840312156105c657600080fd5b815180151581146105d657600080fd5b939250505056fea26469706673582212209eb1fdd84e32cf4f7eecee924b9c61d2e25472c5b32081f4a17793e295b0b97064736f6c634300080f0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x81D CODESIZE SUB DUP1 PUSH2 0x81D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x172 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x195B5C1D1E4818DBDB9D1C9858DD PUSH1 0x92 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD1AF0C7D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0x172 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 NOT PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP3 AND SWAP1 PUSH4 0x95EA7B3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x136 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A SWAP2 SWAP1 PUSH2 0x1A2 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x80 MSTORE AND PUSH1 0xA0 MSTORE PUSH2 0x1C4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x613 PUSH2 0x20A PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0xFC ADD MSTORE PUSH2 0x483 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH1 0x71 ADD MSTORE DUP2 DUP2 PUSH2 0x17F ADD MSTORE DUP2 DUP2 PUSH2 0x299 ADD MSTORE DUP2 DUP2 PUSH2 0x362 ADD MSTORE PUSH2 0x535 ADD MSTORE PUSH2 0x613 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3C6B16AB GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x74DE4EC4 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1870510B EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x28662551 EQ PUSH2 0xBC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x11E JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCF PUSH2 0xDF CALLDATASIZE PUSH1 0x4 PUSH2 0x59B JUMP JUMPDEST PUSH2 0x12B JUMP JUMPDEST PUSH2 0xCF PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x59B JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x127 DUP3 PUSH2 0x30E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FF SWAP2 SWAP1 PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x307 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3E2 SWAP2 SWAP1 PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x261 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x505 SWAP2 SWAP1 PUSH2 0x5B4 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x58C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x5D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0xB1 REVERT 0xD8 0x4E ORIGIN 0xCF 0x4F PUSH31 0xECEE924B9C61D2E25472C5B32081F4A17793E295B0B97064736F6C63430008 0xF STOP CALLER ","sourceMap":"722:1081:52:-:0;;;1049:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1102:12;-1:-1:-1;;;;;1102:24:52;;1130:1;1102:29;1094:56;;;;-1:-1:-1;;;1094:56:52;;511:2:60;1094:56:52;;;493:21:60;550:2;530:18;;;523:30;-1:-1:-1;;;569:18:60;;;562:44;623:18;;1094:56:52;;;;;;;;1161:23;1198:12;-1:-1:-1;;;;;1187:37:52;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1237:64;;-1:-1:-1;;;1237:64:52;;-1:-1:-1;;;;;844:32:60;;;1237:64:52;;;826:51:60;-1:-1:-1;;893:18:60;;;886:34;1161:65:52;;-1:-1:-1;1237:31:52;;;;;;799:18:60;;1237:64:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1312:36:52;;;;;1359:30;;;722:1081;;14:290:60;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:60;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:60:o;931:277::-;998:6;1051:2;1039:9;1030:7;1026:23;1022:32;1019:52;;;1067:1;1064;1057:12;1019:52;1099:9;1093:16;1152:5;1145:13;1138:21;1131:5;1128:32;1118:60;;1174:1;1171;1164:12;931:277;722:1081:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@addReward_16876":{"entryPoint":782,"id":16876,"parameterSlots":1,"returnSlots":0},"@fundRewards_16849":{"entryPoint":286,"id":16849,"parameterSlots":2,"returnSlots":0},"@notifyRewardAmount_16837":{"entryPoint":299,"id":16837,"parameterSlots":1,"returnSlots":0},"@pangoChef_16757":{"entryPoint":null,"id":16757,"parameterSlots":0,"returnSlots":0},"@rewardsToken_16759":{"entryPoint":null,"id":16759,"parameterSlots":0,"returnSlots":0},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":1460,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":1435,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":1401,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IPangoChef_$16753__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2441:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:125:60","statements":[{"nodeType":"YulAssignment","src":"145:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"157:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"168:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"153:3:60"},"nodeType":"YulFunctionCall","src":"153:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"145:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"187:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"202:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"210:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"198:3:60"},"nodeType":"YulFunctionCall","src":"198:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"180:6:60"},"nodeType":"YulFunctionCall","src":"180:74:60"},"nodeType":"YulExpressionStatement","src":"180:74:60"}]},"name":"abi_encode_tuple_t_contract$_IPangoChef_$16753__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:60","type":""}],"src":"14:246:60"},{"body":{"nodeType":"YulBlock","src":"352:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"398:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"407:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"410:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"400:6:60"},"nodeType":"YulFunctionCall","src":"400:12:60"},"nodeType":"YulExpressionStatement","src":"400:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"373:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"382:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"369:3:60"},"nodeType":"YulFunctionCall","src":"369:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"365:3:60"},"nodeType":"YulFunctionCall","src":"365:32:60"},"nodeType":"YulIf","src":"362:52:60"},{"nodeType":"YulAssignment","src":"423:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"446:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"433:12:60"},"nodeType":"YulFunctionCall","src":"433:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"423:6:60"}]},{"nodeType":"YulAssignment","src":"465:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"492:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"503:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"488:3:60"},"nodeType":"YulFunctionCall","src":"488:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"475:12:60"},"nodeType":"YulFunctionCall","src":"475:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"465:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"310:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"321:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"333:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"341:6:60","type":""}],"src":"265:248:60"},{"body":{"nodeType":"YulBlock","src":"588:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"634:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"643:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"646:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"636:6:60"},"nodeType":"YulFunctionCall","src":"636:12:60"},"nodeType":"YulExpressionStatement","src":"636:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"609:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"618:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"605:3:60"},"nodeType":"YulFunctionCall","src":"605:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"630:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"601:3:60"},"nodeType":"YulFunctionCall","src":"601:32:60"},"nodeType":"YulIf","src":"598:52:60"},{"nodeType":"YulAssignment","src":"659:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"682:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"669:12:60"},"nodeType":"YulFunctionCall","src":"669:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"659:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"554:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"565:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"577:6:60","type":""}],"src":"518:180:60"},{"body":{"nodeType":"YulBlock","src":"804:125:60","statements":[{"nodeType":"YulAssignment","src":"814:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"826:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"837:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:60"},"nodeType":"YulFunctionCall","src":"822:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"814:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"871:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"879:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"867:3:60"},"nodeType":"YulFunctionCall","src":"867:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"849:6:60"},"nodeType":"YulFunctionCall","src":"849:74:60"},"nodeType":"YulExpressionStatement","src":"849:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"773:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"784:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"795:4:60","type":""}],"src":"703:226:60"},{"body":{"nodeType":"YulBlock","src":"1063:168:60","statements":[{"nodeType":"YulAssignment","src":"1073:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1085:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1096:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1081:3:60"},"nodeType":"YulFunctionCall","src":"1081:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1073:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1115:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"1126:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1108:6:60"},"nodeType":"YulFunctionCall","src":"1108:25:60"},"nodeType":"YulExpressionStatement","src":"1108:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1153:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1164:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1149:3:60"},"nodeType":"YulFunctionCall","src":"1149:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1173:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1181:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1169:3:60"},"nodeType":"YulFunctionCall","src":"1169:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1142:6:60"},"nodeType":"YulFunctionCall","src":"1142:83:60"},"nodeType":"YulExpressionStatement","src":"1142:83:60"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1024:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1035:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1043:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1054:4:60","type":""}],"src":"934:297:60"},{"body":{"nodeType":"YulBlock","src":"1314:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"1360:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1369:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1372:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1362:6:60"},"nodeType":"YulFunctionCall","src":"1362:12:60"},"nodeType":"YulExpressionStatement","src":"1362:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1335:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1344:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1331:3:60"},"nodeType":"YulFunctionCall","src":"1331:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1356:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1327:3:60"},"nodeType":"YulFunctionCall","src":"1327:32:60"},"nodeType":"YulIf","src":"1324:52:60"},{"nodeType":"YulVariableDeclaration","src":"1385:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1404:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1398:5:60"},"nodeType":"YulFunctionCall","src":"1398:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1389:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1467:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1476:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1479:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1469:6:60"},"nodeType":"YulFunctionCall","src":"1469:12:60"},"nodeType":"YulExpressionStatement","src":"1469:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1436:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1457:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1450:6:60"},"nodeType":"YulFunctionCall","src":"1450:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1443:6:60"},"nodeType":"YulFunctionCall","src":"1443:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1433:2:60"},"nodeType":"YulFunctionCall","src":"1433:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1426:6:60"},"nodeType":"YulFunctionCall","src":"1426:40:60"},"nodeType":"YulIf","src":"1423:60:60"},{"nodeType":"YulAssignment","src":"1492:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1502:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1492:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1280:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1291:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1303:6:60","type":""}],"src":"1236:277:60"},{"body":{"nodeType":"YulBlock","src":"1692:162:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1709:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1720:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1702:6:60"},"nodeType":"YulFunctionCall","src":"1702:21:60"},"nodeType":"YulExpressionStatement","src":"1702:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1743:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1754:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1739:3:60"},"nodeType":"YulFunctionCall","src":"1739:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"1759:2:60","type":"","value":"12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1732:6:60"},"nodeType":"YulFunctionCall","src":"1732:30:60"},"nodeType":"YulExpressionStatement","src":"1732:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1782:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1793:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1778:3:60"},"nodeType":"YulFunctionCall","src":"1778:18:60"},{"hexValue":"756e617574686f72697a6564","kind":"string","nodeType":"YulLiteral","src":"1798:14:60","type":"","value":"unauthorized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1771:6:60"},"nodeType":"YulFunctionCall","src":"1771:42:60"},"nodeType":"YulExpressionStatement","src":"1771:42:60"},{"nodeType":"YulAssignment","src":"1822:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1845:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:60"},"nodeType":"YulFunctionCall","src":"1830:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1822:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1669:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1683:4:60","type":""}],"src":"1518:336:60"},{"body":{"nodeType":"YulBlock","src":"1960:76:60","statements":[{"nodeType":"YulAssignment","src":"1970:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1982:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1993:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1978:3:60"},"nodeType":"YulFunctionCall","src":"1978:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1970:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2012:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"2023:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2005:6:60"},"nodeType":"YulFunctionCall","src":"2005:25:60"},"nodeType":"YulExpressionStatement","src":"2005:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1929:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1940:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1951:4:60","type":""}],"src":"1859:177:60"},{"body":{"nodeType":"YulBlock","src":"2198:241:60","statements":[{"nodeType":"YulAssignment","src":"2208:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2220:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2231:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2216:3:60"},"nodeType":"YulFunctionCall","src":"2216:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2208:4:60"}]},{"nodeType":"YulVariableDeclaration","src":"2243:52:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2253:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2247:2:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2311:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2326:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2334:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2322:3:60"},"nodeType":"YulFunctionCall","src":"2322:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2304:6:60"},"nodeType":"YulFunctionCall","src":"2304:34:60"},"nodeType":"YulExpressionStatement","src":"2304:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2358:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2369:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2354:3:60"},"nodeType":"YulFunctionCall","src":"2354:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2378:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2386:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2374:3:60"},"nodeType":"YulFunctionCall","src":"2374:15:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2347:6:60"},"nodeType":"YulFunctionCall","src":"2347:43:60"},"nodeType":"YulExpressionStatement","src":"2347:43:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2410:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2421:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2406:3:60"},"nodeType":"YulFunctionCall","src":"2406:18:60"},{"name":"value2","nodeType":"YulIdentifier","src":"2426:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2399:6:60"},"nodeType":"YulFunctionCall","src":"2399:34:60"},"nodeType":"YulExpressionStatement","src":"2399:34:60"}]},"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":"2151:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2162:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2170:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2178:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2189:4:60","type":""}],"src":"2041:398:60"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_contract$_IPangoChef_$16753__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_926a1b84b861d31f2d45224162461e1d5ff4377725d977d8f792bb84825a0348__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 12)\n        mstore(add(headStart, 64), \"unauthorized\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"16757":[{"length":32,"start":113},{"length":32,"start":383},{"length":32,"start":665},{"length":32,"start":866},{"length":32,"start":1333}],"16759":[{"length":32,"start":252},{"length":32,"start":1155}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c80633c6b16ab116100505780633c6b16ab146100d157806374de4ec4146100e4578063d1af0c7d146100f757600080fd5b80631870510b1461006c57806328662551146100bc575b600080fd5b6100937f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100cf6100ca366004610579565b61011e565b005b6100cf6100df36600461059b565b61012b565b6100cf6100f236600461059b565b61030e565b6100937f000000000000000000000000000000000000000000000000000000000000000081565b6101278261030e565b5050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156101db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ff91906105b4565b61026a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec4906024015b600060405180830381600087803b1580156102f357600080fd5b505af1158015610307573d6000803e3d6000fd5b5050505050565b6040517f91d148540000000000000000000000000000000000000000000000000000000081527f0914bb97ca83e85ef385857d9d418f187ff630589e0c9f44db92976d8e4519cb60048201523360248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906391d1485490604401602060405180830381865afa1580156103be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e291906105b4565b610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610261565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303816000875af11580156104e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050591906105b4565b506040517f74de4ec4000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906374de4ec4906024016102d9565b6000806040838503121561058c57600080fd5b50508035926020909101359150565b6000602082840312156105ad57600080fd5b5035919050565b6000602082840312156105c657600080fd5b815180151581146105d657600080fd5b939250505056fea26469706673582212209eb1fdd84e32cf4f7eecee924b9c61d2e25472c5b32081f4a17793e295b0b97064736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3C6B16AB GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x3C6B16AB EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x74DE4EC4 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0xD1AF0C7D EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1870510B EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x28662551 EQ PUSH2 0xBC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCF PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x11E JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCF PUSH2 0xDF CALLDATASIZE PUSH1 0x4 PUSH2 0x59B JUMP JUMPDEST PUSH2 0x12B JUMP JUMPDEST PUSH2 0xCF PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x59B JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST PUSH2 0x93 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x127 DUP3 PUSH2 0x30E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FF SWAP2 SWAP1 PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x307 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x91D1485400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x914BB97CA83E85EF385857D9D418F187FF630589E0C9F44DB92976D8E4519CB PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3E2 SWAP2 SWAP1 PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E617574686F72697A65640000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x261 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x505 SWAP2 SWAP1 PUSH2 0x5B4 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x74DE4EC400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0x74DE4EC4 SWAP1 PUSH1 0x24 ADD PUSH2 0x2D9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x58C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x5D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0xB1 REVERT 0xD8 0x4E ORIGIN 0xCF 0x4F PUSH31 0xECEE924B9C61D2E25472C5B32081F4A17793E295B0B97064736F6C63430008 0xF STOP CALLER ","sourceMap":"722:1081:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;761:37;;;;;;;;210:42:60;198:55;;;180:74;;168:2;153:18;761:37:52;;;;;;;1523:91;;;;;;:::i;:::-;;:::i;:::-;;1405:110;;;;;;:::i;:::-;;:::i;1622:178::-;;;;;;:::i;:::-;;:::i;805:37::-;;;;;1523:91;1589:17;1599:6;1589:9;:17::i;:::-;1523:91;;:::o;1405:110::-;962:42;;;;;888:24;962:42;;;1108:25:60;993:10:52;1149:18:60;;;1142:83;962:9:52;:17;;;;;1081:18:60;;962:42:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;954:67;;;;;;;1720:2:60;954:67:52;;;1702:21:60;1759:2;1739:18;;;1732:30;1798:14;1778:18;;;1771:42;1830:18;;954:67:52;;;;;;;;;1480:27:::1;::::0;;;;::::1;::::0;::::1;2005:25:60::0;;;1480:9:52::1;:19;;::::0;::::1;::::0;1978:18:60;;1480:27:52::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1405:110:::0;:::o;1622:178::-;962:42;;;;;888:24;962:42;;;1108:25:60;993:10:52;1149:18:60;;;1142:83;962:9:52;:17;;;;;1081:18:60;;962:42:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;954:67;;;;;;;1720:2:60;954:67:52;;;1702:21:60;1759:2;1739:18;;;1732:30;1798:14;1778:18;;;1771:42;1830:18;;954:67:52;1518:336:60;954:67:52;1686:68:::1;::::0;;;;1720:10:::1;1686:68;::::0;::::1;2304:34:60::0;1740:4:52::1;2354:18:60::0;;;2347:43;2406:18;;;2399:34;;;1693:12:52::1;1686:33;;::::0;::::1;::::0;2216:18:60;;1686:68:52::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;1765:27:52::1;::::0;;;;::::1;::::0;::::1;2005:25:60::0;;;1765:9:52::1;:19;;::::0;::::1;::::0;1978:18:60;;1765:27:52::1;1859:177:60::0;265:248;333:6;341;394:2;382:9;373:7;369:23;365:32;362:52;;;410:1;407;400:12;362:52;-1:-1:-1;;433:23:60;;;503:2;488:18;;;475:32;;-1:-1:-1;265:248:60:o;518:180::-;577:6;630:2;618:9;609:7;605:23;601:32;598:52;;;646:1;643;636:12;598:52;-1:-1:-1;669:23:60;;518:180;-1:-1:-1;518:180:60:o;1236:277::-;1303:6;1356:2;1344:9;1335:7;1331:23;1327:32;1324:52;;;1372:1;1369;1362:12;1324:52;1404:9;1398:16;1457:5;1450:13;1443:21;1436:5;1433:32;1423:60;;1479:1;1476;1469:12;1423:60;1502:5;1236:277;-1:-1:-1;;;1236:277:60:o"},"methodIdentifiers":{"addReward(uint256)":"74de4ec4","fundRewards(uint256,uint256)":"28662551","notifyRewardAmount(uint256)":"3c6b16ab","pangoChef()":"1870510b","rewardsToken()":"d1af0c7d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPangoChef\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"fundRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyRewardAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pangoChef\",\"outputs\":[{\"internalType\":\"contract IPangoChef\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rewardsToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"shung for Pangolin\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Funder -> RewardFundingForwarder -> PangoChef               OR Funder -> RewardFundingForwarder -> PangolinStakingPositions Funder is any contract that was written for Synthetix' StakingRewards, or for MiniChef. RewardFundingForwarder provides compatibility for these old funding contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/RewardFundingForwarder.sol\":\"RewardFundingForwarder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/staking-positions/RewardFundingForwarder.sol\":{\"keccak256\":\"0xc5d019477258ef377728dc224e9d74194589b369404041c897b0f3fc70e692d8\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://c41237878c6ceac85d254d5b721316c73cb47328a50cf44880352aa9736a7148\",\"dweb:/ipfs/Qmek9Z9mYFvvQcqRSeE8MQ5LbCHU6gz57GdP2dno742TxH\"]}},\"version\":1}"}},"contracts/staking-positions/RewarderViaMultiplierForPangoChefOnSongbird.sol":{"RewarderViaMultiplierForPangoChefOnSongbird":{"abi":[{"inputs":[{"internalType":"contract ERC20[]","name":"_rewardTokens","type":"address[]"},{"internalType":"uint256[]","name":"_rewardMultipliers","type":"uint256[]"},{"internalType":"uint256","name":"_baseRewardTokenDecimals","type":"uint256"},{"internalType":"address","name":"_chefV2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"getRewardMultipliers","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardTokens","outputs":[{"internalType":"contract ERC20[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"destructiveAction","type":"bool"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"onReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"pendingTokens","outputs":[{"internalType":"contract ERC20[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"pendingTokensDebt","outputs":[{"internalType":"contract ERC20[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardMultipliers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewardTokens","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17020":{"entryPoint":null,"id":17020,"parameterSlots":4,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":1249,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_uint256_dyn_fromMemory":{"entryPoint":1134,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_uint256t_address_fromMemory":{"entryPoint":1267,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_stringliteral_2ad21c71912dab131d520aa785e1e91d59501c9a6c3922905ac25a032fdbe0c8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_44553d1def395a1d46a38ccd648dbb9ebf8e03d1167d802f3fc2cb1984dff866__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4c1b2670b1c034bdc586d4c4c2027d826cf6e20c0858290dabfc75b746ac9e9b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e4e78b74300fa63485578eb710a08b46cf09c7db2c43b33da296feadee82c030__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fce1791cbc48c3c3c1d27e19f2328ab885b99a698504b450b8f9c19adc8111b5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1020,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_contract_ERC20_dyn":{"entryPoint":1071,"id":null,"parameterSlots":1,"returnSlots":1},"checked_exp_helper":{"entryPoint":1577,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint256":{"entryPoint":1832,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":1650,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":1549,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":1527,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":1505,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":998,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_ERC20":{"entryPoint":1109,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6828:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:60"},"nodeType":"YulFunctionCall","src":"66:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:60"},"nodeType":"YulFunctionCall","src":"56:31:60"},"nodeType":"YulExpressionStatement","src":"56:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:60"},"nodeType":"YulFunctionCall","src":"96:15:60"},"nodeType":"YulExpressionStatement","src":"96:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:60"},"nodeType":"YulFunctionCall","src":"120:15:60"},"nodeType":"YulExpressionStatement","src":"120:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:60"},{"body":{"nodeType":"YulBlock","src":"191:230:60","statements":[{"nodeType":"YulAssignment","src":"201:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"217:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"211:5:60"},"nodeType":"YulFunctionCall","src":"211:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"201:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"229:58:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"251:6:60"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"267:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"273:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"263:3:60"},"nodeType":"YulFunctionCall","src":"263:13:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"282:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"278:3:60"},"nodeType":"YulFunctionCall","src":"278:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"259:3:60"},"nodeType":"YulFunctionCall","src":"259:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"247:3:60"},"nodeType":"YulFunctionCall","src":"247:40:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"233:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"362:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"364:16:60"},"nodeType":"YulFunctionCall","src":"364:18:60"},"nodeType":"YulExpressionStatement","src":"364:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"305:10:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"325:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"329:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"321:3:60"},"nodeType":"YulFunctionCall","src":"321:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"333:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"317:3:60"},"nodeType":"YulFunctionCall","src":"317:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"302:2:60"},"nodeType":"YulFunctionCall","src":"302:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"341:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"353:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"338:2:60"},"nodeType":"YulFunctionCall","src":"338:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"299:2:60"},"nodeType":"YulFunctionCall","src":"299:62:60"},"nodeType":"YulIf","src":"296:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"400:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"404:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"393:6:60"},"nodeType":"YulFunctionCall","src":"393:22:60"},"nodeType":"YulExpressionStatement","src":"393:22:60"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"171:4:60","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"180:6:60","type":""}],"src":"146:275:60"},{"body":{"nodeType":"YulBlock","src":"502:114:60","statements":[{"body":{"nodeType":"YulBlock","src":"546:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"548:16:60"},"nodeType":"YulFunctionCall","src":"548:18:60"},"nodeType":"YulExpressionStatement","src":"548:18:60"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"518:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"534:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"538:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"530:3:60"},"nodeType":"YulFunctionCall","src":"530:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"542:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"526:3:60"},"nodeType":"YulFunctionCall","src":"526:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"515:2:60"},"nodeType":"YulFunctionCall","src":"515:30:60"},"nodeType":"YulIf","src":"512:56:60"},{"nodeType":"YulAssignment","src":"577:33:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"593:1:60","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"596:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"589:3:60"},"nodeType":"YulFunctionCall","src":"589:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"605:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"585:3:60"},"nodeType":"YulFunctionCall","src":"585:25:60"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"577:4:60"}]}]},"name":"array_allocation_size_array_contract_ERC20_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"482:6:60","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"493:4:60","type":""}],"src":"426:190:60"},{"body":{"nodeType":"YulBlock","src":"673:86:60","statements":[{"body":{"nodeType":"YulBlock","src":"737:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"746:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"749:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"739:6:60"},"nodeType":"YulFunctionCall","src":"739:12:60"},"nodeType":"YulExpressionStatement","src":"739:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"696:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"707:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"722:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"727:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"718:3:60"},"nodeType":"YulFunctionCall","src":"718:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"731:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"714:3:60"},"nodeType":"YulFunctionCall","src":"714:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"703:3:60"},"nodeType":"YulFunctionCall","src":"703:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"693:2:60"},"nodeType":"YulFunctionCall","src":"693:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"686:6:60"},"nodeType":"YulFunctionCall","src":"686:50:60"},"nodeType":"YulIf","src":"683:70:60"}]},"name":"validator_revert_contract_ERC20","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"662:5:60","type":""}],"src":"621:138:60"},{"body":{"nodeType":"YulBlock","src":"839:591:60","statements":[{"body":{"nodeType":"YulBlock","src":"888:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"897:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"900:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"890:6:60"},"nodeType":"YulFunctionCall","src":"890:12:60"},"nodeType":"YulExpressionStatement","src":"890:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"867:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"875:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"863:3:60"},"nodeType":"YulFunctionCall","src":"863:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"882:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"859:3:60"},"nodeType":"YulFunctionCall","src":"859:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"852:6:60"},"nodeType":"YulFunctionCall","src":"852:35:60"},"nodeType":"YulIf","src":"849:55:60"},{"nodeType":"YulVariableDeclaration","src":"913:23:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"929:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"923:5:60"},"nodeType":"YulFunctionCall","src":"923:13:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"917:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"945:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"955:4:60","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"949:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"968:78:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1042:2:60"}],"functionName":{"name":"array_allocation_size_array_contract_ERC20_dyn","nodeType":"YulIdentifier","src":"995:46:60"},"nodeType":"YulFunctionCall","src":"995:50:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"979:15:60"},"nodeType":"YulFunctionCall","src":"979:67:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"972:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1055:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"1068:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1059:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1087:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1092:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1080:6:60"},"nodeType":"YulFunctionCall","src":"1080:15:60"},"nodeType":"YulExpressionStatement","src":"1080:15:60"},{"nodeType":"YulAssignment","src":"1104:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1115:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1120:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1111:3:60"},"nodeType":"YulFunctionCall","src":"1111:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1104:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"1132:46:60","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1154:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1166:1:60","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1169:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1162:3:60"},"nodeType":"YulFunctionCall","src":"1162:10:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1150:3:60"},"nodeType":"YulFunctionCall","src":"1150:23:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1175:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1146:3:60"},"nodeType":"YulFunctionCall","src":"1146:32:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1136:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1206:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1215:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1218:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1208:6:60"},"nodeType":"YulFunctionCall","src":"1208:12:60"},"nodeType":"YulExpressionStatement","src":"1208:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1193:6:60"},{"name":"end","nodeType":"YulIdentifier","src":"1201:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1190:2:60"},"nodeType":"YulFunctionCall","src":"1190:15:60"},"nodeType":"YulIf","src":"1187:35:60"},{"nodeType":"YulVariableDeclaration","src":"1231:26:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1246:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1254:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1242:3:60"},"nodeType":"YulFunctionCall","src":"1242:15:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1235:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1322:79:60","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1343:3:60"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1354:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1348:5:60"},"nodeType":"YulFunctionCall","src":"1348:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1336:6:60"},"nodeType":"YulFunctionCall","src":"1336:23:60"},"nodeType":"YulExpressionStatement","src":"1336:23:60"},{"nodeType":"YulAssignment","src":"1372:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1383:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1388:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1379:3:60"},"nodeType":"YulFunctionCall","src":"1379:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1372:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1277:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1282:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1274:2:60"},"nodeType":"YulFunctionCall","src":"1274:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1290:23:60","statements":[{"nodeType":"YulAssignment","src":"1292:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1303:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1308:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1299:3:60"},"nodeType":"YulFunctionCall","src":"1299:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1292:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1270:3:60","statements":[]},"src":"1266:135:60"},{"nodeType":"YulAssignment","src":"1410:14:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1419:5:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1410:5:60"}]}]},"name":"abi_decode_array_uint256_dyn_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"813:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"821:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"829:5:60","type":""}],"src":"764:666:60"},{"body":{"nodeType":"YulBlock","src":"1495:85:60","statements":[{"nodeType":"YulAssignment","src":"1505:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1520:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1514:5:60"},"nodeType":"YulFunctionCall","src":"1514:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1505:5:60"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1568:5:60"}],"functionName":{"name":"validator_revert_contract_ERC20","nodeType":"YulIdentifier","src":"1536:31:60"},"nodeType":"YulFunctionCall","src":"1536:38:60"},"nodeType":"YulExpressionStatement","src":"1536:38:60"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1474:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1485:5:60","type":""}],"src":"1435:145:60"},{"body":{"nodeType":"YulBlock","src":"1781:1188:60","statements":[{"body":{"nodeType":"YulBlock","src":"1828:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1837:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1840:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1830:6:60"},"nodeType":"YulFunctionCall","src":"1830:12:60"},"nodeType":"YulExpressionStatement","src":"1830:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1802:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1811:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1798:3:60"},"nodeType":"YulFunctionCall","src":"1798:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1823:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1794:3:60"},"nodeType":"YulFunctionCall","src":"1794:33:60"},"nodeType":"YulIf","src":"1791:53:60"},{"nodeType":"YulVariableDeclaration","src":"1853:30:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1873:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1867:5:60"},"nodeType":"YulFunctionCall","src":"1867:16:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1857:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1892:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1910:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1914:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1906:3:60"},"nodeType":"YulFunctionCall","src":"1906:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1918:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1902:3:60"},"nodeType":"YulFunctionCall","src":"1902:18:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1896:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1947:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1956:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1959:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1949:6:60"},"nodeType":"YulFunctionCall","src":"1949:12:60"},"nodeType":"YulExpressionStatement","src":"1949:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1935:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1943:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1932:2:60"},"nodeType":"YulFunctionCall","src":"1932:14:60"},"nodeType":"YulIf","src":"1929:34:60"},{"nodeType":"YulVariableDeclaration","src":"1972:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1986:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"1997:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1982:3:60"},"nodeType":"YulFunctionCall","src":"1982:22:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1976:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2052:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2064:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2054:6:60"},"nodeType":"YulFunctionCall","src":"2054:12:60"},"nodeType":"YulExpressionStatement","src":"2054:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2031:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"2035:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2027:3:60"},"nodeType":"YulFunctionCall","src":"2027:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2042:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2023:3:60"},"nodeType":"YulFunctionCall","src":"2023:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2016:6:60"},"nodeType":"YulFunctionCall","src":"2016:35:60"},"nodeType":"YulIf","src":"2013:55:60"},{"nodeType":"YulVariableDeclaration","src":"2077:19:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2093:2:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2087:5:60"},"nodeType":"YulFunctionCall","src":"2087:9:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2081:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2105:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2115:4:60","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2109:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2128:78:60","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2202:2:60"}],"functionName":{"name":"array_allocation_size_array_contract_ERC20_dyn","nodeType":"YulIdentifier","src":"2155:46:60"},"nodeType":"YulFunctionCall","src":"2155:50:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2139:15:60"},"nodeType":"YulFunctionCall","src":"2139:67:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2132:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2215:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"2228:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2219:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2247:3:60"},{"name":"_3","nodeType":"YulIdentifier","src":"2252:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2240:6:60"},"nodeType":"YulFunctionCall","src":"2240:15:60"},"nodeType":"YulExpressionStatement","src":"2240:15:60"},{"nodeType":"YulAssignment","src":"2264:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2275:3:60"},{"name":"_4","nodeType":"YulIdentifier","src":"2280:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2271:3:60"},"nodeType":"YulFunctionCall","src":"2271:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2264:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"2292:42:60","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2314:2:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2322:1:60","type":"","value":"5"},{"name":"_3","nodeType":"YulIdentifier","src":"2325:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2318:3:60"},"nodeType":"YulFunctionCall","src":"2318:10:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2310:3:60"},"nodeType":"YulFunctionCall","src":"2310:19:60"},{"name":"_4","nodeType":"YulIdentifier","src":"2331:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2306:3:60"},"nodeType":"YulFunctionCall","src":"2306:28:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2296:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2366:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2375:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2378:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2368:6:60"},"nodeType":"YulFunctionCall","src":"2368:12:60"},"nodeType":"YulExpressionStatement","src":"2368:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2349:6:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2357:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2346:2:60"},"nodeType":"YulFunctionCall","src":"2346:19:60"},"nodeType":"YulIf","src":"2343:39:60"},{"nodeType":"YulVariableDeclaration","src":"2391:22:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2406:2:60"},{"name":"_4","nodeType":"YulIdentifier","src":"2410:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:60"},"nodeType":"YulFunctionCall","src":"2402:11:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2395:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2478:161:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2492:23:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2511:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2505:5:60"},"nodeType":"YulFunctionCall","src":"2505:10:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2496:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2560:5:60"}],"functionName":{"name":"validator_revert_contract_ERC20","nodeType":"YulIdentifier","src":"2528:31:60"},"nodeType":"YulFunctionCall","src":"2528:38:60"},"nodeType":"YulExpressionStatement","src":"2528:38:60"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2586:3:60"},{"name":"value","nodeType":"YulIdentifier","src":"2591:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2579:6:60"},"nodeType":"YulFunctionCall","src":"2579:18:60"},"nodeType":"YulExpressionStatement","src":"2579:18:60"},{"nodeType":"YulAssignment","src":"2610:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2621:3:60"},{"name":"_4","nodeType":"YulIdentifier","src":"2626:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2617:3:60"},"nodeType":"YulFunctionCall","src":"2617:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2610:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2433:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2438:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2430:2:60"},"nodeType":"YulFunctionCall","src":"2430:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2446:23:60","statements":[{"nodeType":"YulAssignment","src":"2448:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2459:3:60"},{"name":"_4","nodeType":"YulIdentifier","src":"2464:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2455:3:60"},"nodeType":"YulFunctionCall","src":"2455:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2448:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2426:3:60","statements":[]},"src":"2422:217:60"},{"nodeType":"YulAssignment","src":"2648:15:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2658:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2648:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"2672:41:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2698:9:60"},{"name":"_4","nodeType":"YulIdentifier","src":"2709:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2694:3:60"},"nodeType":"YulFunctionCall","src":"2694:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2688:5:60"},"nodeType":"YulFunctionCall","src":"2688:25:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2676:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2742:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2751:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2754:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2744:6:60"},"nodeType":"YulFunctionCall","src":"2744:12:60"},"nodeType":"YulExpressionStatement","src":"2744:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2728:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2738:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2725:2:60"},"nodeType":"YulFunctionCall","src":"2725:16:60"},"nodeType":"YulIf","src":"2722:36:60"},{"nodeType":"YulAssignment","src":"2767:84:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2821:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2832:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2817:3:60"},"nodeType":"YulFunctionCall","src":"2817:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2843:7:60"}],"functionName":{"name":"abi_decode_array_uint256_dyn_fromMemory","nodeType":"YulIdentifier","src":"2777:39:60"},"nodeType":"YulFunctionCall","src":"2777:74:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2767:6:60"}]},{"nodeType":"YulAssignment","src":"2860:35:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2880:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2891:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2876:3:60"},"nodeType":"YulFunctionCall","src":"2876:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2870:5:60"},"nodeType":"YulFunctionCall","src":"2870:25:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2860:6:60"}]},{"nodeType":"YulAssignment","src":"2904:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2948:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2959:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2944:3:60"},"nodeType":"YulFunctionCall","src":"2944:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"2914:29:60"},"nodeType":"YulFunctionCall","src":"2914:49:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2904:6:60"}]}]},"name":"abi_decode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1723:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1734:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1746:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1754:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1762:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1770:6:60","type":""}],"src":"1585:1384:60"},{"body":{"nodeType":"YulBlock","src":"3148:234:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3165:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3176:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3158:6:60"},"nodeType":"YulFunctionCall","src":"3158:21:60"},"nodeType":"YulExpressionStatement","src":"3158:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3199:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3210:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3195:3:60"},"nodeType":"YulFunctionCall","src":"3195:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3215:2:60","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3188:6:60"},"nodeType":"YulFunctionCall","src":"3188:30:60"},"nodeType":"YulExpressionStatement","src":"3188:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3238:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3249:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3234:3:60"},"nodeType":"YulFunctionCall","src":"3234:18:60"},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c69642069","kind":"string","nodeType":"YulLiteral","src":"3254:34:60","type":"","value":"RewarderViaMultiplier::Invalid i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3227:6:60"},"nodeType":"YulFunctionCall","src":"3227:62:60"},"nodeType":"YulExpressionStatement","src":"3227:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3309:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3320:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3305:3:60"},"nodeType":"YulFunctionCall","src":"3305:18:60"},{"hexValue":"6e707574206c656e67746873","kind":"string","nodeType":"YulLiteral","src":"3325:14:60","type":"","value":"nput lengths"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3298:6:60"},"nodeType":"YulFunctionCall","src":"3298:42:60"},"nodeType":"YulExpressionStatement","src":"3298:42:60"},{"nodeType":"YulAssignment","src":"3349:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3361:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3372:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3357:3:60"},"nodeType":"YulFunctionCall","src":"3357:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3349:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4c1b2670b1c034bdc586d4c4c2027d826cf6e20c0858290dabfc75b746ac9e9b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3125:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3139:4:60","type":""}],"src":"2974:408:60"},{"body":{"nodeType":"YulBlock","src":"3561:247:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3578:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3589:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3571:6:60"},"nodeType":"YulFunctionCall","src":"3571:21:60"},"nodeType":"YulExpressionStatement","src":"3571:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3612:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3623:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3608:3:60"},"nodeType":"YulFunctionCall","src":"3608:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:60","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3601:6:60"},"nodeType":"YulFunctionCall","src":"3601:30:60"},"nodeType":"YulExpressionStatement","src":"3601:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:60"},"nodeType":"YulFunctionCall","src":"3647:18:60"},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c69642062","kind":"string","nodeType":"YulLiteral","src":"3667:34:60","type":"","value":"RewarderViaMultiplier::Invalid b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3640:6:60"},"nodeType":"YulFunctionCall","src":"3640:62:60"},"nodeType":"YulExpressionStatement","src":"3640:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3722:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3733:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3718:3:60"},"nodeType":"YulFunctionCall","src":"3718:18:60"},{"hexValue":"6173652072657761726420746f6b656e20646563696d616c73","kind":"string","nodeType":"YulLiteral","src":"3738:27:60","type":"","value":"ase reward token decimals"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3711:6:60"},"nodeType":"YulFunctionCall","src":"3711:55:60"},"nodeType":"YulExpressionStatement","src":"3711:55:60"},{"nodeType":"YulAssignment","src":"3775:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3787:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3798:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3783:3:60"},"nodeType":"YulFunctionCall","src":"3783:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3775:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_2ad21c71912dab131d520aa785e1e91d59501c9a6c3922905ac25a032fdbe0c8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3538:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3552:4:60","type":""}],"src":"3387:421:60"},{"body":{"nodeType":"YulBlock","src":"3987:233:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4004:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4015:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3997:6:60"},"nodeType":"YulFunctionCall","src":"3997:21:60"},"nodeType":"YulExpressionStatement","src":"3997:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4038:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4049:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4034:3:60"},"nodeType":"YulFunctionCall","src":"4034:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4054:2:60","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4027:6:60"},"nodeType":"YulFunctionCall","src":"4027:30:60"},"nodeType":"YulExpressionStatement","src":"4027:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4077:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4088:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4073:3:60"},"nodeType":"YulFunctionCall","src":"4073:18:60"},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c69642063","kind":"string","nodeType":"YulLiteral","src":"4093:34:60","type":"","value":"RewarderViaMultiplier::Invalid c"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4066:6:60"},"nodeType":"YulFunctionCall","src":"4066:62:60"},"nodeType":"YulExpressionStatement","src":"4066:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4148:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4159:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4144:3:60"},"nodeType":"YulFunctionCall","src":"4144:18:60"},{"hexValue":"6865662061646472657373","kind":"string","nodeType":"YulLiteral","src":"4164:13:60","type":"","value":"hef address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4137:6:60"},"nodeType":"YulFunctionCall","src":"4137:41:60"},"nodeType":"YulExpressionStatement","src":"4137:41:60"},{"nodeType":"YulAssignment","src":"4187:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4199:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4210:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4195:3:60"},"nodeType":"YulFunctionCall","src":"4195:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4187:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_e4e78b74300fa63485578eb710a08b46cf09c7db2c43b33da296feadee82c030__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3964:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3978:4:60","type":""}],"src":"3813:407:60"},{"body":{"nodeType":"YulBlock","src":"4257:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4274:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4281:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4286:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4277:3:60"},"nodeType":"YulFunctionCall","src":"4277:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4267:6:60"},"nodeType":"YulFunctionCall","src":"4267:31:60"},"nodeType":"YulExpressionStatement","src":"4267:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4314:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4317:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4307:6:60"},"nodeType":"YulFunctionCall","src":"4307:15:60"},"nodeType":"YulExpressionStatement","src":"4307:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4338:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4341:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4331:6:60"},"nodeType":"YulFunctionCall","src":"4331:15:60"},"nodeType":"YulExpressionStatement","src":"4331:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"4225:127:60"},{"body":{"nodeType":"YulBlock","src":"4531:239:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4548:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4559:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4541:6:60"},"nodeType":"YulFunctionCall","src":"4541:21:60"},"nodeType":"YulExpressionStatement","src":"4541:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4582:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4593:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4578:3:60"},"nodeType":"YulFunctionCall","src":"4578:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4598:2:60","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4571:6:60"},"nodeType":"YulFunctionCall","src":"4571:30:60"},"nodeType":"YulExpressionStatement","src":"4571:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4632:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4617:3:60"},"nodeType":"YulFunctionCall","src":"4617:18:60"},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a43616e6e6f74207265","kind":"string","nodeType":"YulLiteral","src":"4637:34:60","type":"","value":"RewarderViaMultiplier::Cannot re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4610:6:60"},"nodeType":"YulFunctionCall","src":"4610:62:60"},"nodeType":"YulExpressionStatement","src":"4610:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4692:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4703:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4688:3:60"},"nodeType":"YulFunctionCall","src":"4688:18:60"},{"hexValue":"77617264207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"4708:19:60","type":"","value":"ward zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4681:6:60"},"nodeType":"YulFunctionCall","src":"4681:47:60"},"nodeType":"YulExpressionStatement","src":"4681:47:60"},{"nodeType":"YulAssignment","src":"4737:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4749:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4760:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4745:3:60"},"nodeType":"YulFunctionCall","src":"4745:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4737:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_44553d1def395a1d46a38ccd648dbb9ebf8e03d1167d802f3fc2cb1984dff866__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4508:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4522:4:60","type":""}],"src":"4357:413:60"},{"body":{"nodeType":"YulBlock","src":"4949:231:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4966:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4977:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4959:6:60"},"nodeType":"YulFunctionCall","src":"4959:21:60"},"nodeType":"YulExpressionStatement","src":"4959:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5000:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5011:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4996:3:60"},"nodeType":"YulFunctionCall","src":"4996:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5016:2:60","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4989:6:60"},"nodeType":"YulFunctionCall","src":"4989:30:60"},"nodeType":"YulExpressionStatement","src":"4989:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5039:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5050:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5035:3:60"},"nodeType":"YulFunctionCall","src":"5035:18:60"},{"hexValue":"52657761726465725669614d756c7469706c6965723a3a496e76616c6964206d","kind":"string","nodeType":"YulLiteral","src":"5055:34:60","type":"","value":"RewarderViaMultiplier::Invalid m"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5028:6:60"},"nodeType":"YulFunctionCall","src":"5028:62:60"},"nodeType":"YulExpressionStatement","src":"5028:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5110:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5121:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5106:3:60"},"nodeType":"YulFunctionCall","src":"5106:18:60"},{"hexValue":"756c7469706c696572","kind":"string","nodeType":"YulLiteral","src":"5126:11:60","type":"","value":"ultiplier"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5099:6:60"},"nodeType":"YulFunctionCall","src":"5099:39:60"},"nodeType":"YulExpressionStatement","src":"5099:39:60"},{"nodeType":"YulAssignment","src":"5147:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5159:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5170:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5155:3:60"},"nodeType":"YulFunctionCall","src":"5155:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5147:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fce1791cbc48c3c3c1d27e19f2328ab885b99a698504b450b8f9c19adc8111b5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4926:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4940:4:60","type":""}],"src":"4775:405:60"},{"body":{"nodeType":"YulBlock","src":"5217:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5234:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5241:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5246:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5237:3:60"},"nodeType":"YulFunctionCall","src":"5237:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5227:6:60"},"nodeType":"YulFunctionCall","src":"5227:31:60"},"nodeType":"YulExpressionStatement","src":"5227:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5274:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5277:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5267:6:60"},"nodeType":"YulFunctionCall","src":"5267:15:60"},"nodeType":"YulExpressionStatement","src":"5267:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5298:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5301:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5291:6:60"},"nodeType":"YulFunctionCall","src":"5291:15:60"},"nodeType":"YulExpressionStatement","src":"5291:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5185:127:60"},{"body":{"nodeType":"YulBlock","src":"5364:88:60","statements":[{"body":{"nodeType":"YulBlock","src":"5395:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5397:16:60"},"nodeType":"YulFunctionCall","src":"5397:18:60"},"nodeType":"YulExpressionStatement","src":"5397:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5380:5:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5391:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5387:3:60"},"nodeType":"YulFunctionCall","src":"5387:6:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5377:2:60"},"nodeType":"YulFunctionCall","src":"5377:17:60"},"nodeType":"YulIf","src":"5374:43:60"},{"nodeType":"YulAssignment","src":"5426:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5437:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"5444:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5433:3:60"},"nodeType":"YulFunctionCall","src":"5433:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5426:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5346:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"5356:3:60","type":""}],"src":"5317:135:60"},{"body":{"nodeType":"YulBlock","src":"5521:358:60","statements":[{"nodeType":"YulVariableDeclaration","src":"5531:16:60","value":{"kind":"number","nodeType":"YulLiteral","src":"5546:1:60","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"5535:7:60","type":""}]},{"nodeType":"YulAssignment","src":"5556:16:60","value":{"name":"power_1","nodeType":"YulIdentifier","src":"5565:7:60"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"5556:5:60"}]},{"nodeType":"YulAssignment","src":"5581:13:60","value":{"name":"_base","nodeType":"YulIdentifier","src":"5589:5:60"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"5581:4:60"}]},{"body":{"nodeType":"YulBlock","src":"5645:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"5690:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5692:16:60"},"nodeType":"YulFunctionCall","src":"5692:18:60"},"nodeType":"YulExpressionStatement","src":"5692:18:60"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"5665:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5679:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5675:3:60"},"nodeType":"YulFunctionCall","src":"5675:6:60"},{"name":"base","nodeType":"YulIdentifier","src":"5683:4:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5671:3:60"},"nodeType":"YulFunctionCall","src":"5671:17:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5662:2:60"},"nodeType":"YulFunctionCall","src":"5662:27:60"},"nodeType":"YulIf","src":"5659:53:60"},{"body":{"nodeType":"YulBlock","src":"5751:29:60","statements":[{"nodeType":"YulAssignment","src":"5753:25:60","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"5766:5:60"},{"name":"base","nodeType":"YulIdentifier","src":"5773:4:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5762:3:60"},"nodeType":"YulFunctionCall","src":"5762:16:60"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"5753:5:60"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"5732:8:60"},{"name":"power_1","nodeType":"YulIdentifier","src":"5742:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5728:3:60"},"nodeType":"YulFunctionCall","src":"5728:22:60"},"nodeType":"YulIf","src":"5725:55:60"},{"nodeType":"YulAssignment","src":"5793:23:60","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"5805:4:60"},{"name":"base","nodeType":"YulIdentifier","src":"5811:4:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5801:3:60"},"nodeType":"YulFunctionCall","src":"5801:15:60"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"5793:4:60"}]},{"nodeType":"YulAssignment","src":"5829:34:60","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"5845:7:60"},{"name":"exponent","nodeType":"YulIdentifier","src":"5854:8:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5841:3:60"},"nodeType":"YulFunctionCall","src":"5841:22:60"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"5829:8:60"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"5614:8:60"},{"name":"power_1","nodeType":"YulIdentifier","src":"5624:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5611:2:60"},"nodeType":"YulFunctionCall","src":"5611:21:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5633:3:60","statements":[]},"pre":{"nodeType":"YulBlock","src":"5607:3:60","statements":[]},"src":"5603:270:60"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"5485:5:60","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"5492:8:60","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"5505:5:60","type":""},{"name":"base","nodeType":"YulTypedName","src":"5512:4:60","type":""}],"src":"5457:422:60"},{"body":{"nodeType":"YulBlock","src":"5943:747:60","statements":[{"body":{"nodeType":"YulBlock","src":"5981:52:60","statements":[{"nodeType":"YulAssignment","src":"5995:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6004:1:60","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"5995:5:60"}]},{"nodeType":"YulLeave","src":"6018:5:60"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"5963:8:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5956:6:60"},"nodeType":"YulFunctionCall","src":"5956:16:60"},"nodeType":"YulIf","src":"5953:80:60"},{"body":{"nodeType":"YulBlock","src":"6066:52:60","statements":[{"nodeType":"YulAssignment","src":"6080:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6089:1:60","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6080:5:60"}]},{"nodeType":"YulLeave","src":"6103:5:60"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6052:4:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6045:6:60"},"nodeType":"YulFunctionCall","src":"6045:12:60"},"nodeType":"YulIf","src":"6042:76:60"},{"cases":[{"body":{"nodeType":"YulBlock","src":"6154:52:60","statements":[{"nodeType":"YulAssignment","src":"6168:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6177:1:60","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6168:5:60"}]},{"nodeType":"YulLeave","src":"6191:5:60"}]},"nodeType":"YulCase","src":"6147:59:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6152:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"6222:123:60","statements":[{"body":{"nodeType":"YulBlock","src":"6257:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6259:16:60"},"nodeType":"YulFunctionCall","src":"6259:18:60"},"nodeType":"YulExpressionStatement","src":"6259:18:60"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6242:8:60"},{"kind":"number","nodeType":"YulLiteral","src":"6252:3:60","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6239:2:60"},"nodeType":"YulFunctionCall","src":"6239:17:60"},"nodeType":"YulIf","src":"6236:43:60"},{"nodeType":"YulAssignment","src":"6292:25:60","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6305:8:60"},{"kind":"number","nodeType":"YulLiteral","src":"6315:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6301:3:60"},"nodeType":"YulFunctionCall","src":"6301:16:60"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6292:5:60"}]},{"nodeType":"YulLeave","src":"6330:5:60"}]},"nodeType":"YulCase","src":"6215:130:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6220:1:60","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"6134:4:60"},"nodeType":"YulSwitch","src":"6127:218:60"},{"body":{"nodeType":"YulBlock","src":"6443:70:60","statements":[{"nodeType":"YulAssignment","src":"6457:28:60","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6470:4:60"},{"name":"exponent","nodeType":"YulIdentifier","src":"6476:8:60"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"6466:3:60"},"nodeType":"YulFunctionCall","src":"6466:19:60"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6457:5:60"}]},{"nodeType":"YulLeave","src":"6498:5:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6367:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"6373:2:60","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6364:2:60"},"nodeType":"YulFunctionCall","src":"6364:12:60"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6381:8:60"},{"kind":"number","nodeType":"YulLiteral","src":"6391:2:60","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6378:2:60"},"nodeType":"YulFunctionCall","src":"6378:16:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6360:3:60"},"nodeType":"YulFunctionCall","src":"6360:35:60"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6404:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"6410:3:60","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6401:2:60"},"nodeType":"YulFunctionCall","src":"6401:13:60"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"6419:8:60"},{"kind":"number","nodeType":"YulLiteral","src":"6429:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6416:2:60"},"nodeType":"YulFunctionCall","src":"6416:16:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6397:3:60"},"nodeType":"YulFunctionCall","src":"6397:36:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6357:2:60"},"nodeType":"YulFunctionCall","src":"6357:77:60"},"nodeType":"YulIf","src":"6354:159:60"},{"nodeType":"YulVariableDeclaration","src":"6522:57:60","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6564:4:60"},{"name":"exponent","nodeType":"YulIdentifier","src":"6570:8:60"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"6545:18:60"},"nodeType":"YulFunctionCall","src":"6545:34:60"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"6526:7:60","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"6535:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6624:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6626:16:60"},"nodeType":"YulFunctionCall","src":"6626:18:60"},"nodeType":"YulExpressionStatement","src":"6626:18:60"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"6594:7:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6611:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6607:3:60"},"nodeType":"YulFunctionCall","src":"6607:6:60"},{"name":"base_1","nodeType":"YulIdentifier","src":"6615:6:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6603:3:60"},"nodeType":"YulFunctionCall","src":"6603:19:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6591:2:60"},"nodeType":"YulFunctionCall","src":"6591:32:60"},"nodeType":"YulIf","src":"6588:58:60"},{"nodeType":"YulAssignment","src":"6655:29:60","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"6668:7:60"},{"name":"base_1","nodeType":"YulIdentifier","src":"6677:6:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6664:3:60"},"nodeType":"YulFunctionCall","src":"6664:20:60"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6655:5:60"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"5914:4:60","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"5920:8:60","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"5933:5:60","type":""}],"src":"5884:806:60"},{"body":{"nodeType":"YulBlock","src":"6765:61:60","statements":[{"nodeType":"YulAssignment","src":"6775:45:60","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"6805:4:60"},{"name":"exponent","nodeType":"YulIdentifier","src":"6811:8:60"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"6784:20:60"},"nodeType":"YulFunctionCall","src":"6784:36:60"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"6775:5:60"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"6736:4:60","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"6742:8:60","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"6755:5:60","type":""}],"src":"6695:131:60"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_contract_ERC20_dyn(length) -> size\n    {\n        if gt(length, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function validator_revert_contract_ERC20(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ERC20_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_contract_ERC20(value)\n    }\n    function abi_decode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let dst := allocate_memory(array_allocation_size_array_contract_ERC20_dyn(_3))\n        let dst_1 := dst\n        mstore(dst, _3)\n        dst := add(dst, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_contract_ERC20(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := dst_1\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        value2 := mload(add(headStart, 64))\n        value3 := abi_decode_address_fromMemory(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_4c1b2670b1c034bdc586d4c4c2027d826cf6e20c0858290dabfc75b746ac9e9b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 44)\n        mstore(add(headStart, 64), \"RewarderViaMultiplier::Invalid i\")\n        mstore(add(headStart, 96), \"nput lengths\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_2ad21c71912dab131d520aa785e1e91d59501c9a6c3922905ac25a032fdbe0c8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"RewarderViaMultiplier::Invalid b\")\n        mstore(add(headStart, 96), \"ase reward token decimals\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_e4e78b74300fa63485578eb710a08b46cf09c7db2c43b33da296feadee82c030__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"RewarderViaMultiplier::Invalid c\")\n        mstore(add(headStart, 96), \"hef address\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_44553d1def395a1d46a38ccd648dbb9ebf8e03d1167d802f3fc2cb1984dff866__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"RewarderViaMultiplier::Cannot re\")\n        mstore(add(headStart, 96), \"ward zero address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_fce1791cbc48c3c3c1d27e19f2328ab885b99a698504b450b8f9c19adc8111b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"RewarderViaMultiplier::Invalid m\")\n        mstore(add(headStart, 96), \"ultiplier\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function checked_exp_helper(_base, exponent) -> power, base\n    {\n        let power_1 := 1\n        power := power_1\n        base := _base\n        for { } gt(exponent, power_1) { }\n        {\n            if gt(base, div(not(0), base)) { panic_error_0x11() }\n            if and(exponent, power_1) { power := mul(power, base) }\n            base := mul(base, base)\n            exponent := shr(power_1, exponent)\n        }\n    }\n    function checked_exp_unsigned(base, exponent) -> power\n    {\n        if iszero(exponent)\n        {\n            power := 1\n            leave\n        }\n        if iszero(base)\n        {\n            power := 0\n            leave\n        }\n        switch base\n        case 1 {\n            power := 1\n            leave\n        }\n        case 2 {\n            if gt(exponent, 255) { panic_error_0x11() }\n            power := shl(exponent, 1)\n            leave\n        }\n        if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n        {\n            power := exp(base, exponent)\n            leave\n        }\n        let power_1, base_1 := checked_exp_helper(base, exponent)\n        if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n        power := mul(power_1, base_1)\n    }\n    function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, exponent)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c06040523480156200001157600080fd5b50604051620016f9380380620016f98339810160408190526200003491620004f3565b600084511180156200004857506064845111155b801562000056575082518451145b620000bd5760405162461bcd60e51b815260206004820152602c60248201527f52657761726465725669614d756c7469706c6965723a3a496e76616c6964206960448201526b6e707574206c656e6774687360a01b60648201526084015b60405180910390fd5b604d821115620001365760405162461bcd60e51b815260206004820152603960248201527f52657761726465725669614d756c7469706c6965723a3a496e76616c6964206260448201527f6173652072657761726420746f6b656e20646563696d616c73000000000000006064820152608401620000b4565b6001600160a01b038116620001a25760405162461bcd60e51b815260206004820152602b60248201527f52657761726465725669614d756c7469706c6965723a3a496e76616c6964206360448201526a686566206164647265737360a81b6064820152608401620000b4565b60005b8451811015620002d457848181518110620001c457620001c4620005e1565b60200260200101516001600160a01b03163b600003620002415760405162461bcd60e51b815260206004820152603160248201527f52657761726465725669614d756c7469706c6965723a3a43616e6e6f7420726560448201527077617264207a65726f206164647265737360781b6064820152608401620000b4565b6000848281518110620002585762000258620005e1565b602002602001015111620002c15760405162461bcd60e51b815260206004820152602960248201527f52657761726465725669614d756c7469706c6965723a3a496e76616c6964206d6044820152683ab63a34b83634b2b960b91b6064820152608401620000b4565b620002cc816200060d565b9050620001a5565b508351620002ea90600090602087019062000327565b5082516200030090600190602086019062000391565b506200030e82600a62000728565b60a0526001600160a01b0316608052506200073d915050565b8280548282559060005260206000209081019282156200037f579160200282015b828111156200037f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000348565b506200038d929150620003cf565b5090565b8280548282559060005260206000209081019282156200037f579160200282015b828111156200037f578251825591602001919060010190620003b2565b5b808211156200038d5760008155600101620003d0565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620004275762000427620003e6565b604052919050565b60006001600160401b038211156200044b576200044b620003e6565b5060051b60200190565b6001600160a01b03811681146200046b57600080fd5b50565b600082601f8301126200048057600080fd5b815160206200049962000493836200042f565b620003fc565b82815260059290921b84018101918181019086841115620004b957600080fd5b8286015b84811015620004d65780518352918301918301620004bd565b509695505050505050565b8051620004ee8162000455565b919050565b600080600080608085870312156200050a57600080fd5b84516001600160401b03808211156200052257600080fd5b818701915087601f8301126200053757600080fd5b815160206200054a62000493836200042f565b82815260059290921b8401810191818101908b8411156200056a57600080fd5b948201945b8386101562000595578551620005858162000455565b825294820194908201906200056f565b918a0151919850909350505080821115620005af57600080fd5b50620005be878288016200046e565b93505060408501519150620005d660608601620004e1565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620006225762000622620005f7565b5060010190565b600181815b808511156200066a5781600019048211156200064e576200064e620005f7565b808516156200065c57918102915b93841c93908002906200062e565b509250929050565b600082620006835750600162000722565b81620006925750600062000722565b8160018114620006ab5760028114620006b657620006d6565b600191505062000722565b60ff841115620006ca57620006ca620005f7565b50506001821b62000722565b5060208310610133831016604e8410600b8410161715620006fb575081810a62000722565b62000707838362000629565b80600019048211156200071e576200071e620005f7565b0290505b92915050565b600062000736838362000672565b9392505050565b60805160a051610f81620007786000396000818161046a01528181610751015261099f0152600081816101f801526102ec0152610f816000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063ba782bee1161005b578063ba782bee146100ec578063c4f59f9b14610101578063d63b3c4914610116578063f2f3e82d1461013757600080fd5b806337e211ba146100825780637bb7bed1146100a0578063981962a7146100cb575b600080fd5b61008a61014a565b6040516100979190610b4a565b60405180910390f35b6100b36100ae366004610b64565b6101a2565b6040516001600160a01b039091168152602001610097565b6100de6100d9366004610b64565b6101cc565b604051908152602001610097565b6100ff6100fa366004610b99565b6101ed565b005b610109610693565b6040516100979190610c27565b610129610124366004610c3a565b6106f4565b604051610097929190610c6f565b610129610145366004610c3a565b610942565b6060600180548060200260200160405190810160405280929190818152602001828054801561019857602002820191906000526020600020905b815481526020019060010190808311610184575b5050505050905090565b600081815481106101b257600080fd5b6000918252602090912001546001600160a01b0316905081565b600181815481106101dc57600080fd5b600091825260209091200154905081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e60448201527f2e0000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517f257664a4000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b0385811660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063257664a49060440161010060405180830381865afa158015610336573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035a9190610db7565b5160008781526003602090815260408083206001600160a01b038a16808552818452828520835180850190945280546cffffffffffffffffffffffffff80821686526d01000000000000000000000000009182900472ffffffffffffffffffffffffffffffffffffff908116878901529390975292855286519487015194909516931602919091179091559091508480156103f457508215155b156104595780518251602080840151908501516cffffffffffffffffffffffffff928316929093169182149272ffffffffffffffffffffffffffffffffffffff90811691161490158061044c575081801561044c5750805b1561045657600096505b50505b60005b6000548110156106895760007f00000000000000000000000000000000000000000000000000000000000000006001838154811061049c5761049c610e7c565b9060005260206000200154876104b29190610ea8565b6104bc9190610ec7565b6001600160a01b03891660009081526002602090815260408083208684529091529020546104ea9190610ee9565b9050600080838154811061050057610500610e7c565b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561056a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058e9190610f01565b9050876105c0576001600160a01b03891660009081526002602090815260408083208684529091529020829055610676565b80821115610635576105d28183610f1a565b6001600160a01b038a1660009081526002602090815260408083208784529091528120919091558054610630918b918491908790811061061457610614610e7c565b6000918252602090912001546001600160a01b03169190610a50565b610676565b6001600160a01b038916600090815260026020908152604080832086845290915281208190558054610676918b918591908790811061061457610614610e7c565b50508061068290610f31565b905061045c565b5050505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561019857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106cd575050505050905090565b600054606090819067ffffffffffffffff81111561071457610714610c9d565b60405190808252806020026020018201604052801561073d578160200160208202803683370190505b50905060005b6000548110156108d65760007f00000000000000000000000000000000000000000000000000000000000000006001838154811061078357610783610e7c565b9060005260206000200154866107999190610ea8565b6107a39190610ec7565b6001600160a01b03871660009081526002602090815260408083208684529091529020546107d19190610ee9565b905060008083815481106107e7576107e7610e7c565b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108759190610f01565b9050808211156108a3578084848151811061089257610892610e7c565b6020026020010181815250506108c3565b818484815181106108b6576108b6610e7c565b6020026020010181815250505b5050806108cf90610f31565b9050610743565b506000818180548060200260200160405190810160405280929190818152602001828054801561092f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610911575b5050505050915091509150935093915050565b600054606090819067ffffffffffffffff81111561096257610962610c9d565b60405190808252806020026020018201604052801561098b578160200160208202803683370190505b50905060005b6000548110156108d65760007f0000000000000000000000000000000000000000000000000000000000000000600183815481106109d1576109d1610e7c565b9060005260206000200154866109e79190610ea8565b6109f19190610ec7565b6001600160a01b0387166000908152600260209081526040808320868452909152902054610a1f9190610ee9565b905080838381518110610a3457610a34610e7c565b602090810291909101015250610a4981610f31565b9050610991565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610b09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016102a1565b50505050565b600081518084526020808501945080840160005b83811015610b3f57815187529582019590820190600101610b23565b509495945050505050565b602081526000610b5d6020830184610b0f565b9392505050565b600060208284031215610b7657600080fd5b5035919050565b80356001600160a01b0381168114610b9457600080fd5b919050565b600080600080600060a08688031215610bb157600080fd5b85359450610bc160208701610b7d565b935060408601358015158114610bd657600080fd5b94979396509394606081013594506080013592915050565b600081518084526020808501945080840160005b83811015610b3f5781516001600160a01b031687529582019590820190600101610c02565b602081526000610b5d6020830184610bee565b600080600060608486031215610c4f57600080fd5b83359250610c5f60208501610b7d565b9150604084013590509250925092565b604081526000610c826040830185610bee565b8281036020840152610c948185610b0f565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610ce457634e487b7160e01b600052604160045260246000fd5b60405290565b60405160c0810167ffffffffffffffff81118282101715610ce457634e487b7160e01b600052604160045260246000fd5b805172ffffffffffffffffffffffffffffffffffffff81168114610b9457600080fd5b600060408284031215610d5057600080fd5b610d58610cb3565b9050815181526020820151602082015292915050565b805165ffffffffffff81168114610b9457600080fd5b805166ffffffffffffff81168114610b9457600080fd5b80516bffffffffffffffffffffffff81168114610b9457600080fd5b6000818303610100811215610dcb57600080fd5b610dd3610cea565b6040821215610de157600080fd5b610de9610cb3565b915083516cffffffffffffffffffffffffff81168114610e0857600080fd5b8252610e1660208501610d1b565b6020830152818152610e2b8560408601610d3e565b6020820152610e3c60808501610d1b565b6040820152610e4d60a08501610d6e565b6060820152610e5e60c08501610d84565b6080820152610e6f60e08501610d9b565b60a0820152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610ec257610ec2610e92565b500290565b600082610ee457634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610efc57610efc610e92565b500190565b600060208284031215610f1357600080fd5b5051919050565b600082821015610f2c57610f2c610e92565b500390565b60006000198203610f4457610f44610e92565b506001019056fea264697066735822122021a1089dfe503272dfbcb9204d27f65a6758c87f28fc21bf4cf340129b79979864736f6c634300080f0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x16F9 CODESIZE SUB DUP1 PUSH3 0x16F9 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F3 JUMP JUMPDEST PUSH1 0x0 DUP5 MLOAD GT DUP1 ISZERO PUSH3 0x48 JUMPI POP PUSH1 0x64 DUP5 MLOAD GT ISZERO JUMPDEST DUP1 ISZERO PUSH3 0x56 JUMPI POP DUP3 MLOAD DUP5 MLOAD EQ JUMPDEST PUSH3 0xBD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x52657761726465725669614D756C7469706C6965723A3A496E76616C69642069 PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x6E707574206C656E67746873 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4D DUP3 GT ISZERO PUSH3 0x136 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x52657761726465725669614D756C7469706C6965723A3A496E76616C69642062 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6173652072657761726420746F6B656E20646563696D616C7300000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xB4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x1A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x52657761726465725669614D756C7469706C6965723A3A496E76616C69642063 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6865662061646472657373 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xB4 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH3 0x2D4 JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH3 0x1C4 JUMPI PUSH3 0x1C4 PUSH3 0x5E1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH3 0x241 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x52657761726465725669614D756C7469706C6965723A3A43616E6E6F74207265 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x77617264207A65726F2061646472657373 PUSH1 0x78 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xB4 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x258 JUMPI PUSH3 0x258 PUSH3 0x5E1 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD GT PUSH3 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x52657761726465725669614D756C7469706C6965723A3A496E76616C6964206D PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3AB63A34B83634B2B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xB4 JUMP JUMPDEST PUSH3 0x2CC DUP2 PUSH3 0x60D JUMP JUMPDEST SWAP1 POP PUSH3 0x1A5 JUMP JUMPDEST POP DUP4 MLOAD PUSH3 0x2EA SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP8 ADD SWAP1 PUSH3 0x327 JUMP JUMPDEST POP DUP3 MLOAD PUSH3 0x300 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x391 JUMP JUMPDEST POP PUSH3 0x30E DUP3 PUSH1 0xA PUSH3 0x728 JUMP JUMPDEST PUSH1 0xA0 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE POP PUSH3 0x73D SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x37F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x37F JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH3 0x348 JUMP JUMPDEST POP PUSH3 0x38D SWAP3 SWAP2 POP PUSH3 0x3CF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x37F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x37F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x3B2 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x38D JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3D0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x427 JUMPI PUSH3 0x427 PUSH3 0x3E6 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH3 0x44B JUMPI PUSH3 0x44B PUSH3 0x3E6 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x480 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH3 0x499 PUSH3 0x493 DUP4 PUSH3 0x42F JUMP JUMPDEST PUSH3 0x3FC JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH3 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH3 0x4D6 JUMPI DUP1 MLOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH3 0x4BD JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x4EE DUP2 PUSH3 0x455 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x50A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH3 0x54A PUSH3 0x493 DUP4 PUSH3 0x42F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP12 DUP5 GT ISZERO PUSH3 0x56A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH3 0x595 JUMPI DUP6 MLOAD PUSH3 0x585 DUP2 PUSH3 0x455 JUMP JUMPDEST DUP3 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP1 DUP3 ADD SWAP1 PUSH3 0x56F JUMP JUMPDEST SWAP2 DUP11 ADD MLOAD SWAP2 SWAP9 POP SWAP1 SWAP4 POP POP POP DUP1 DUP3 GT ISZERO PUSH3 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x5BE DUP8 DUP3 DUP9 ADD PUSH3 0x46E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH3 0x5D6 PUSH1 0x60 DUP7 ADD PUSH3 0x4E1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x622 JUMPI PUSH3 0x622 PUSH3 0x5F7 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH3 0x66A JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH3 0x64E JUMPI PUSH3 0x64E PUSH3 0x5F7 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH3 0x65C JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH3 0x62E JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x683 JUMPI POP PUSH1 0x1 PUSH3 0x722 JUMP JUMPDEST DUP2 PUSH3 0x692 JUMPI POP PUSH1 0x0 PUSH3 0x722 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH3 0x6AB JUMPI PUSH1 0x2 DUP2 EQ PUSH3 0x6B6 JUMPI PUSH3 0x6D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH3 0x722 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH3 0x6CA JUMPI PUSH3 0x6CA PUSH3 0x5F7 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH3 0x722 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH3 0x6FB JUMPI POP DUP2 DUP2 EXP PUSH3 0x722 JUMP JUMPDEST PUSH3 0x707 DUP4 DUP4 PUSH3 0x629 JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH3 0x71E JUMPI PUSH3 0x71E PUSH3 0x5F7 JUMP JUMPDEST MUL SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x736 DUP4 DUP4 PUSH3 0x672 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0xF81 PUSH3 0x778 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x46A ADD MSTORE DUP2 DUP2 PUSH2 0x751 ADD MSTORE PUSH2 0x99F ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x1F8 ADD MSTORE PUSH2 0x2EC ADD MSTORE PUSH2 0xF81 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBA782BEE GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xBA782BEE EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0xC4F59F9B EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xD63B3C49 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xF2F3E82D EQ PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x37E211BA EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x7BB7BED1 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x981962A7 EQ PUSH2 0xCB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x14A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0xAE CALLDATASIZE PUSH1 0x4 PUSH2 0xB64 JUMP JUMPDEST PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x97 JUMP JUMPDEST PUSH2 0xDE PUSH2 0xD9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB64 JUMP JUMPDEST PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x97 JUMP JUMPDEST PUSH2 0xFF PUSH2 0xFA CALLDATASIZE PUSH1 0x4 PUSH2 0xB99 JUMP JUMPDEST PUSH2 0x1ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0xC3A JUMP JUMPDEST PUSH2 0x6F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP3 SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x129 PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xC3A JUMP JUMPDEST PUSH2 0x942 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x184 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x2AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79204D4356322063616E2063616C6C20746869732066756E6374696F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2E00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x257664A400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x257664A4 SWAP1 PUSH1 0x44 ADD PUSH2 0x100 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x336 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x35A SWAP2 SWAP1 PUSH2 0xDB7 JUMP JUMPDEST MLOAD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND DUP1 DUP6 MSTORE DUP2 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND DUP7 MSTORE PUSH14 0x100000000000000000000000000 SWAP2 DUP3 SWAP1 DIV PUSH19 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND DUP8 DUP10 ADD MSTORE SWAP4 SWAP1 SWAP8 MSTORE SWAP3 DUP6 MSTORE DUP7 MLOAD SWAP5 DUP8 ADD MLOAD SWAP5 SWAP1 SWAP6 AND SWAP4 AND MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 SWAP2 POP DUP5 DUP1 ISZERO PUSH2 0x3F4 JUMPI POP DUP3 ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x459 JUMPI DUP1 MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MLOAD PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND SWAP3 SWAP1 SWAP4 AND SWAP2 DUP3 EQ SWAP3 PUSH19 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ SWAP1 ISZERO DUP1 PUSH2 0x44C JUMPI POP DUP2 DUP1 ISZERO PUSH2 0x44C JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x456 JUMPI PUSH1 0x0 SWAP7 POP JUMPDEST POP POP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x0 SLOAD DUP2 LT ISZERO PUSH2 0x689 JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x49C JUMPI PUSH2 0x49C PUSH2 0xE7C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0xEA8 JUMP JUMPDEST PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x4EA SWAP2 SWAP1 PUSH2 0xEE9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x58E SWAP2 SWAP1 PUSH2 0xF01 JUMP JUMPDEST SWAP1 POP DUP8 PUSH2 0x5C0 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x676 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x635 JUMPI PUSH2 0x5D2 DUP2 DUP4 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD PUSH2 0x630 SWAP2 DUP12 SWAP2 DUP5 SWAP2 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x614 JUMPI PUSH2 0x614 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0xA50 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 SWAP1 SSTORE DUP1 SLOAD PUSH2 0x676 SWAP2 DUP12 SWAP2 DUP6 SWAP2 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x614 JUMPI PUSH2 0x614 PUSH2 0xE7C JUMP JUMPDEST POP POP DUP1 PUSH2 0x682 SWAP1 PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP PUSH2 0x45C JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6CD JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 DUP2 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x714 JUMPI PUSH2 0x714 PUSH2 0xC9D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x73D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 SLOAD DUP2 LT ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x783 JUMPI PUSH2 0x783 PUSH2 0xE7C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH2 0x799 SWAP2 SWAP1 PUSH2 0xEA8 JUMP JUMPDEST PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x7D1 SWAP2 SWAP1 PUSH2 0xEE9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x7E7 JUMPI PUSH2 0x7E7 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x875 SWAP2 SWAP1 PUSH2 0xF01 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x8A3 JUMPI DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x892 JUMPI PUSH2 0x892 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x8C3 JUMP JUMPDEST DUP2 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x8B6 JUMPI PUSH2 0x8B6 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST POP POP DUP1 PUSH2 0x8CF SWAP1 PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP PUSH2 0x743 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x92F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x911 JUMPI JUMPDEST POP POP POP POP POP SWAP2 POP SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 DUP2 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x962 JUMPI PUSH2 0x962 PUSH2 0xC9D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x98B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 SLOAD DUP2 LT ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x9D1 JUMPI PUSH2 0x9D1 PUSH2 0xE7C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH2 0x9E7 SWAP2 SWAP1 PUSH2 0xEA8 JUMP JUMPDEST PUSH2 0x9F1 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xA1F SWAP2 SWAP1 PUSH2 0xEE9 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xA34 JUMPI PUSH2 0xA34 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xA49 DUP2 PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP4 PUSH1 0x4 DUP3 ADD MSTORE DUP3 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 PUSH1 0x44 DUP4 PUSH1 0x0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1F RETURNDATASIZE GT PUSH1 0x1 PUSH1 0x0 MLOAD EQ AND OR AND SWAP2 POP POP DUP1 PUSH2 0xB09 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5452414E534645525F4641494C45440000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2A1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xB23 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB5D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xB0F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xBB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0xBC1 PUSH1 0x20 DUP8 ADD PUSH2 0xB7D JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xBD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xC02 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB5D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xBEE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH2 0xC5F PUSH1 0x20 DUP6 ADD PUSH2 0xB7D JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC82 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xBEE JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xC94 DUP2 DUP6 PUSH2 0xB0F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xCE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xC0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xCE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD PUSH19 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD58 PUSH2 0xCB3 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH6 0xFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH7 0xFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB PUSH2 0x100 DUP2 SLT ISZERO PUSH2 0xDCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD3 PUSH2 0xCEA JUMP JUMPDEST PUSH1 0x40 DUP3 SLT ISZERO PUSH2 0xDE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDE9 PUSH2 0xCB3 JUMP JUMPDEST SWAP2 POP DUP4 MLOAD PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xE08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE PUSH2 0xE16 PUSH1 0x20 DUP6 ADD PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0xE2B DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0xD3E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE3C PUSH1 0x80 DUP6 ADD PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0xE4D PUSH1 0xA0 DUP6 ADD PUSH2 0xD6E JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0xE5E PUSH1 0xC0 DUP6 ADD PUSH2 0xD84 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0xE6F PUSH1 0xE0 DUP6 ADD PUSH2 0xD9B JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xEC2 JUMPI PUSH2 0xEC2 PUSH2 0xE92 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xEE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xEFC JUMPI PUSH2 0xEFC PUSH2 0xE92 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xF2C JUMPI PUSH2 0xF2C PUSH2 0xE92 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xF44 JUMPI PUSH2 0xF44 PUSH2 0xE92 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 LOG1 ADDMOD SWAP14 INVALID POP ORIGIN PUSH19 0xDFBCB9204D27F65A6758C87F28FC21BF4CF340 SLT SWAP12 PUSH26 0x979864736F6C634300080F003300000000000000000000000000 ","sourceMap":"89:6357:53:-:0;;;1423:1177;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1653:1;1630:13;:20;:24;:76;;;;;522:3;1671:13;:20;:35;;1630:76;:142;;;;;1747:18;:25;1723:13;:20;:49;1630:142;1608:236;;;;-1:-1:-1;;;1608:236:53;;3176:2:60;1608:236:53;;;3158:21:60;3215:2;3195:18;;;3188:30;3254:34;3234:18;;;3227:62;-1:-1:-1;;;3305:18:60;;;3298:42;3357:19;;1608:236:53;;;;;;;;;1907:2;1879:24;:30;;1857:137;;;;-1:-1:-1;;;1857:137:53;;3589:2:60;1857:137:53;;;3571:21:60;3628:2;3608:18;;;3601:30;3667:34;3647:18;;;3640:62;3738:27;3718:18;;;3711:55;3783:19;;1857:137:53;3387:421:60;1857:137:53;-1:-1:-1;;;;;2029:21:53;;2007:114;;;;-1:-1:-1;;;2007:114:53;;4015:2:60;2007:114:53;;;3997:21:60;4054:2;4034:18;;;4027:30;4093:34;4073:18;;;4066:62;-1:-1:-1;;;4144:18:60;;;4137:41;4195:19;;2007:114:53;3813:407:60;2007:114:53;2139:9;2134:272;2154:13;:20;2150:1;:24;2134:272;;;2212:13;2226:1;2212:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2204:37:53;;2245:1;2204:42;2196:104;;;;-1:-1:-1;;;2196:104:53;;4559:2:60;2196:104:53;;;4541:21:60;4598:2;4578:18;;;4571:30;4637:34;4617:18;;;4610:62;-1:-1:-1;;;4688:18:60;;;4681:47;4745:19;;2196:104:53;4357:413:60;2196:104:53;2347:1;2323:18;2342:1;2323:21;;;;;;;;:::i;:::-;;;;;;;:25;2315:79;;;;-1:-1:-1;;;2315:79:53;;4977:2:60;2315:79:53;;;4959:21:60;5016:2;4996:18;;;4989:30;5055:34;5035:18;;;5028:62;-1:-1:-1;;;5106:18:60;;;5099:39;5155:19;;2315:79:53;4775:405:60;2315:79:53;2176:3;;;:::i;:::-;;;2134:272;;;-1:-1:-1;2418:28:53;;;;:12;;:28;;;;;:::i;:::-;-1:-1:-1;2457:38:53;;;;:17;;:38;;;;;:::i;:::-;-1:-1:-1;2534:30:53;2540:24;2534:2;:30;:::i;:::-;2506:58;;-1:-1:-1;;;;;2575:17:53;;;-1:-1:-1;89:6357:53;;-1:-1:-1;;89:6357:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;89:6357:53;-1:-1:-1;;;;;89:6357:53;;;;;;;;;;;-1:-1:-1;89:6357:53;;;;;;;-1:-1:-1;89:6357:53;;;-1:-1:-1;89:6357:53;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:127:60;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:60;247:40;;-1:-1:-1;;;;;302:34:60;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:60:o;426:190::-;493:4;-1:-1:-1;;;;;515:30:60;;512:56;;;548:18;;:::i;:::-;-1:-1:-1;593:1:60;589:14;605:4;585:25;;426:190::o;621:138::-;-1:-1:-1;;;;;703:31:60;;693:42;;683:70;;749:1;746;739:12;683:70;621:138;:::o;764:666::-;829:5;882:3;875:4;867:6;863:17;859:27;849:55;;900:1;897;890:12;849:55;929:6;923:13;955:4;979:67;995:50;1042:2;995:50;:::i;:::-;979:67;:::i;:::-;1080:15;;;1166:1;1162:10;;;;1150:23;;1146:32;;;1111:12;;;;1190:15;;;1187:35;;;1218:1;1215;1208:12;1187:35;1254:2;1246:6;1242:15;1266:135;1282:6;1277:3;1274:15;1266:135;;;1348:10;;1336:23;;1379:12;;;;1299;;1266:135;;;-1:-1:-1;1419:5:60;764:666;-1:-1:-1;;;;;;764:666:60:o;1435:145::-;1514:13;;1536:38;1514:13;1536:38;:::i;:::-;1435:145;;;:::o;1585:1384::-;1746:6;1754;1762;1770;1823:3;1811:9;1802:7;1798:23;1794:33;1791:53;;;1840:1;1837;1830:12;1791:53;1867:16;;-1:-1:-1;;;;;1932:14:60;;;1929:34;;;1959:1;1956;1949:12;1929:34;1997:6;1986:9;1982:22;1972:32;;2042:7;2035:4;2031:2;2027:13;2023:27;2013:55;;2064:1;2061;2054:12;2013:55;2093:2;2087:9;2115:4;2139:67;2155:50;2202:2;2155:50;:::i;2139:67::-;2240:15;;;2322:1;2318:10;;;;2310:19;;2306:28;;;2271:12;;;;2346:19;;;2343:39;;;2378:1;2375;2368:12;2343:39;2402:11;;;;2422:217;2438:6;2433:3;2430:15;2422:217;;;2511:3;2505:10;2528:38;2560:5;2528:38;:::i;:::-;2579:18;;2455:12;;;;2617;;;;2422:217;;;2694:18;;;2688:25;2658:5;;-1:-1:-1;2688:25:60;;-1:-1:-1;;;2725:16:60;;;2722:36;;;2754:1;2751;2744:12;2722:36;;2777:74;2843:7;2832:8;2821:9;2817:24;2777:74;:::i;:::-;2767:84;;;2891:2;2880:9;2876:18;2870:25;2860:35;;2914:49;2959:2;2948:9;2944:18;2914:49;:::i;:::-;2904:59;;1585:1384;;;;;;;:::o;4225:127::-;4286:10;4281:3;4277:20;4274:1;4267:31;4317:4;4314:1;4307:15;4341:4;4338:1;4331:15;5185:127;5246:10;5241:3;5237:20;5234:1;5227:31;5277:4;5274:1;5267:15;5301:4;5298:1;5291:15;5317:135;5356:3;5377:17;;;5374:43;;5397:18;;:::i;:::-;-1:-1:-1;5444:1:60;5433:13;;5317:135::o;5457:422::-;5546:1;5589:5;5546:1;5603:270;5624:7;5614:8;5611:21;5603:270;;;5683:4;5679:1;5675:6;5671:17;5665:4;5662:27;5659:53;;;5692:18;;:::i;:::-;5742:7;5732:8;5728:22;5725:55;;;5762:16;;;;5725:55;5841:22;;;;5801:15;;;;5603:270;;;5607:3;5457:422;;;;;:::o;5884:806::-;5933:5;5963:8;5953:80;;-1:-1:-1;6004:1:60;6018:5;;5953:80;6052:4;6042:76;;-1:-1:-1;6089:1:60;6103:5;;6042:76;6134:4;6152:1;6147:59;;;;6220:1;6215:130;;;;6127:218;;6147:59;6177:1;6168:10;;6191:5;;;6215:130;6252:3;6242:8;6239:17;6236:43;;;6259:18;;:::i;:::-;-1:-1:-1;;6315:1:60;6301:16;;6330:5;;6127:218;;6429:2;6419:8;6416:16;6410:3;6404:4;6401:13;6397:36;6391:2;6381:8;6378:16;6373:2;6367:4;6364:12;6360:35;6357:77;6354:159;;;-1:-1:-1;6466:19:60;;;6498:5;;6354:159;6545:34;6570:8;6564:4;6545:34;:::i;:::-;6615:6;6611:1;6607:6;6603:19;6594:7;6591:32;6588:58;;;6626:18;;:::i;:::-;6664:20;;-1:-1:-1;5884:806:60;;;;;:::o;6695:131::-;6755:5;6784:36;6811:8;6805:4;6784:36;:::i;:::-;6775:45;6695:131;-1:-1:-1;;;6695:131:60:o;:::-;89:6357:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@getRewardMultipliers_17377":{"entryPoint":330,"id":17377,"parameterSlots":0,"returnSlots":1},"@getRewardTokens_17367":{"entryPoint":1683,"id":17367,"parameterSlots":0,"returnSlots":1},"@onReward_17200":{"entryPoint":493,"id":17200,"parameterSlots":5,"returnSlots":0},"@pendingTokensDebt_17356":{"entryPoint":2370,"id":17356,"parameterSlots":3,"returnSlots":2},"@pendingTokens_17290":{"entryPoint":1780,"id":17290,"parameterSlots":3,"returnSlots":2},"@rewardMultipliers_16893":{"entryPoint":460,"id":16893,"parameterSlots":0,"returnSlots":0},"@rewardTokens_16890":{"entryPoint":418,"id":16890,"parameterSlots":0,"returnSlots":0},"@safeTransfer_9459":{"entryPoint":2640,"id":9459,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":2941,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_RewardSummations_fromMemory":{"entryPoint":3390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_User_$12117_memory_ptr_fromMemory":{"entryPoint":3511,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2916,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3841,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_addresst_boolt_uint256t_uint256":{"entryPoint":2969,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint256t_addresst_uint256":{"entryPoint":3130,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_uint152_fromMemory":{"entryPoint":3355,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint48_fromMemory":{"entryPoint":3438,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint56_fromMemory":{"entryPoint":3460,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint96_fromMemory":{"entryPoint":3483,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_contract_ERC20_dyn":{"entryPoint":3054,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_uint256_dyn":{"entryPoint":2831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":3111,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":3183,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":2890,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ERC20_$9395__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3119d70f54e65f7fc05dc3fff78f1ae1d0c82eaf50b477c40260718556fca1cd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":3306,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_1250":{"entryPoint":3251,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3817,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":3783,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":3752,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":3866,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":3889,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3730,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3708,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3229,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:9635:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"75:374:60","statements":[{"nodeType":"YulVariableDeclaration","src":"85:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"105:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"99:5:60"},"nodeType":"YulFunctionCall","src":"99:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"89:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"127:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"132:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"120:6:60"},"nodeType":"YulFunctionCall","src":"120:19:60"},"nodeType":"YulExpressionStatement","src":"120:19:60"},{"nodeType":"YulVariableDeclaration","src":"148:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"158:4:60","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"152:2:60","type":""}]},{"nodeType":"YulAssignment","src":"171:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"182:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"187:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"178:3:60"},"nodeType":"YulFunctionCall","src":"178:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"171:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"199:28:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"224:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"213:3:60"},"nodeType":"YulFunctionCall","src":"213:14:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"203:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"236:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"245:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"240:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"304:120:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"325:3:60"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"336:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"330:5:60"},"nodeType":"YulFunctionCall","src":"330:13:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"318:6:60"},"nodeType":"YulFunctionCall","src":"318:26:60"},"nodeType":"YulExpressionStatement","src":"318:26:60"},{"nodeType":"YulAssignment","src":"357:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"368:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"373:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"364:3:60"},"nodeType":"YulFunctionCall","src":"364:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"357:3:60"}]},{"nodeType":"YulAssignment","src":"389:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"403:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"411:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:60"},"nodeType":"YulFunctionCall","src":"399:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"389:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"266:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"269:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"263:2:60"},"nodeType":"YulFunctionCall","src":"263:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"277:18:60","statements":[{"nodeType":"YulAssignment","src":"279:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"288:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"291:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"284:3:60"},"nodeType":"YulFunctionCall","src":"284:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"279:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"259:3:60","statements":[]},"src":"255:169:60"},{"nodeType":"YulAssignment","src":"433:10:60","value":{"name":"pos","nodeType":"YulIdentifier","src":"440:3:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"433:3:60"}]}]},"name":"abi_encode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"52:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"59:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"67:3:60","type":""}],"src":"14:435:60"},{"body":{"nodeType":"YulBlock","src":"605:110:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"622:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"633:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"615:6:60"},"nodeType":"YulFunctionCall","src":"615:21:60"},"nodeType":"YulExpressionStatement","src":"615:21:60"},{"nodeType":"YulAssignment","src":"645:64:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"682:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"694:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"705:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"690:3:60"},"nodeType":"YulFunctionCall","src":"690:18:60"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"653:28:60"},"nodeType":"YulFunctionCall","src":"653:56:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"645:4:60"}]}]},"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":"574:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"585:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"596:4:60","type":""}],"src":"454:261:60"},{"body":{"nodeType":"YulBlock","src":"790:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"836:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"845:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"848:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"838:6:60"},"nodeType":"YulFunctionCall","src":"838:12:60"},"nodeType":"YulExpressionStatement","src":"838:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"811:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"820:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"807:3:60"},"nodeType":"YulFunctionCall","src":"807:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"832:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"803:3:60"},"nodeType":"YulFunctionCall","src":"803:32:60"},"nodeType":"YulIf","src":"800:52:60"},{"nodeType":"YulAssignment","src":"861:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"884:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"871:12:60"},"nodeType":"YulFunctionCall","src":"871:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"861:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"756:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"767:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"779:6:60","type":""}],"src":"720:180:60"},{"body":{"nodeType":"YulBlock","src":"1020:125:60","statements":[{"nodeType":"YulAssignment","src":"1030:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1042:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1053:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1038:3:60"},"nodeType":"YulFunctionCall","src":"1038:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1030:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1072:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1087:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1095:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1083:3:60"},"nodeType":"YulFunctionCall","src":"1083:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1065:6:60"},"nodeType":"YulFunctionCall","src":"1065:74:60"},"nodeType":"YulExpressionStatement","src":"1065:74:60"}]},"name":"abi_encode_tuple_t_contract$_ERC20_$9395__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"989:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1000:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1011:4:60","type":""}],"src":"905:240:60"},{"body":{"nodeType":"YulBlock","src":"1251:76:60","statements":[{"nodeType":"YulAssignment","src":"1261:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1273:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1284:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1269:3:60"},"nodeType":"YulFunctionCall","src":"1269:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1261:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1303:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"1314:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1296:6:60"},"nodeType":"YulFunctionCall","src":"1296:25:60"},"nodeType":"YulExpressionStatement","src":"1296:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1220:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1231:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1242:4:60","type":""}],"src":"1150:177:60"},{"body":{"nodeType":"YulBlock","src":"1381:147:60","statements":[{"nodeType":"YulAssignment","src":"1391:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1413:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1400:12:60"},"nodeType":"YulFunctionCall","src":"1400:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1391:5:60"}]},{"body":{"nodeType":"YulBlock","src":"1506:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1515:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1518:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1508:6:60"},"nodeType":"YulFunctionCall","src":"1508:12:60"},"nodeType":"YulExpressionStatement","src":"1508:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1442:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1453:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1460:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1449:3:60"},"nodeType":"YulFunctionCall","src":"1449:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1439:2:60"},"nodeType":"YulFunctionCall","src":"1439:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1432:6:60"},"nodeType":"YulFunctionCall","src":"1432:73:60"},"nodeType":"YulIf","src":"1429:93:60"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1360:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1371:5:60","type":""}],"src":"1332:196:60"},{"body":{"nodeType":"YulBlock","src":"1668:418:60","statements":[{"body":{"nodeType":"YulBlock","src":"1715:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1724:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1727:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1717:6:60"},"nodeType":"YulFunctionCall","src":"1717:12:60"},"nodeType":"YulExpressionStatement","src":"1717:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1689:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1698:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1685:3:60"},"nodeType":"YulFunctionCall","src":"1685:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1710:3:60","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1681:3:60"},"nodeType":"YulFunctionCall","src":"1681:33:60"},"nodeType":"YulIf","src":"1678:53:60"},{"nodeType":"YulAssignment","src":"1740:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1763:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1750:12:60"},"nodeType":"YulFunctionCall","src":"1750:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1740:6:60"}]},{"nodeType":"YulAssignment","src":"1782:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1815:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1826:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:60"},"nodeType":"YulFunctionCall","src":"1811:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1792:18:60"},"nodeType":"YulFunctionCall","src":"1792:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1782:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1839:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1869:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"1880:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1865:3:60"},"nodeType":"YulFunctionCall","src":"1865:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1852:12:60"},"nodeType":"YulFunctionCall","src":"1852:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1843:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1937:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1946:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1949:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1939:6:60"},"nodeType":"YulFunctionCall","src":"1939:12:60"},"nodeType":"YulExpressionStatement","src":"1939:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1906:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1927:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1920:6:60"},"nodeType":"YulFunctionCall","src":"1920:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1913:6:60"},"nodeType":"YulFunctionCall","src":"1913:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1903:2:60"},"nodeType":"YulFunctionCall","src":"1903:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1896:6:60"},"nodeType":"YulFunctionCall","src":"1896:40:60"},"nodeType":"YulIf","src":"1893:60:60"},{"nodeType":"YulAssignment","src":"1962:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"1972:5:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1962:6:60"}]},{"nodeType":"YulAssignment","src":"1986:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2013:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2024:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2009:3:60"},"nodeType":"YulFunctionCall","src":"2009:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1996:12:60"},"nodeType":"YulFunctionCall","src":"1996:32:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1986:6:60"}]},{"nodeType":"YulAssignment","src":"2037:43:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2064:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2075:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2060:3:60"},"nodeType":"YulFunctionCall","src":"2060:19:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2047:12:60"},"nodeType":"YulFunctionCall","src":"2047:33:60"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2037:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_boolt_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1602:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1613:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1625:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1633:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1641:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1649:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1657:6:60","type":""}],"src":"1533:553:60"},{"body":{"nodeType":"YulBlock","src":"2159:423:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2169:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2189:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2183:5:60"},"nodeType":"YulFunctionCall","src":"2183:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2173:6:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2211:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"2216:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2204:6:60"},"nodeType":"YulFunctionCall","src":"2204:19:60"},"nodeType":"YulExpressionStatement","src":"2204:19:60"},{"nodeType":"YulVariableDeclaration","src":"2232:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2242:4:60","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2236:2:60","type":""}]},{"nodeType":"YulAssignment","src":"2255:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2266:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2271:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2262:3:60"},"nodeType":"YulFunctionCall","src":"2262:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2255:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"2283:28:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2301:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2308:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2297:3:60"},"nodeType":"YulFunctionCall","src":"2297:14:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"2287:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2320:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2329:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2324:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2388:169:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2409:3:60"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2424:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2418:5:60"},"nodeType":"YulFunctionCall","src":"2418:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"2433:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2414:3:60"},"nodeType":"YulFunctionCall","src":"2414:62:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2402:6:60"},"nodeType":"YulFunctionCall","src":"2402:75:60"},"nodeType":"YulExpressionStatement","src":"2402:75:60"},{"nodeType":"YulAssignment","src":"2490:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2501:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2506:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2497:3:60"},"nodeType":"YulFunctionCall","src":"2497:12:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2490:3:60"}]},{"nodeType":"YulAssignment","src":"2522:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2536:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2544:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2532:3:60"},"nodeType":"YulFunctionCall","src":"2532:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2522:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2350:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"2353:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2347:2:60"},"nodeType":"YulFunctionCall","src":"2347:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2361:18:60","statements":[{"nodeType":"YulAssignment","src":"2363:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2372:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"2375:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2368:3:60"},"nodeType":"YulFunctionCall","src":"2368:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2363:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2343:3:60","statements":[]},"src":"2339:218:60"},{"nodeType":"YulAssignment","src":"2566:10:60","value":{"name":"pos","nodeType":"YulIdentifier","src":"2573:3:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2566:3:60"}]}]},"name":"abi_encode_array_contract_ERC20_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2136:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2143:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2151:3:60","type":""}],"src":"2091:491:60"},{"body":{"nodeType":"YulBlock","src":"2752:117:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2769:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2780:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2762:6:60"},"nodeType":"YulFunctionCall","src":"2762:21:60"},"nodeType":"YulExpressionStatement","src":"2762:21:60"},{"nodeType":"YulAssignment","src":"2792:71:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2836:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2848:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2859:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2844:3:60"},"nodeType":"YulFunctionCall","src":"2844:18:60"}],"functionName":{"name":"abi_encode_array_contract_ERC20_dyn","nodeType":"YulIdentifier","src":"2800:35:60"},"nodeType":"YulFunctionCall","src":"2800:63:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2792:4:60"}]}]},"name":"abi_encode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2721:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2732:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2743:4:60","type":""}],"src":"2587:282:60"},{"body":{"nodeType":"YulBlock","src":"2978:218:60","statements":[{"body":{"nodeType":"YulBlock","src":"3024:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3033:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3036:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3026:6:60"},"nodeType":"YulFunctionCall","src":"3026:12:60"},"nodeType":"YulExpressionStatement","src":"3026:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2999:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3008:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2995:3:60"},"nodeType":"YulFunctionCall","src":"2995:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3020:2:60","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2991:3:60"},"nodeType":"YulFunctionCall","src":"2991:32:60"},"nodeType":"YulIf","src":"2988:52:60"},{"nodeType":"YulAssignment","src":"3049:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3072:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3059:12:60"},"nodeType":"YulFunctionCall","src":"3059:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3049:6:60"}]},{"nodeType":"YulAssignment","src":"3091:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3124:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3135:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3120:3:60"},"nodeType":"YulFunctionCall","src":"3120:18:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3101:18:60"},"nodeType":"YulFunctionCall","src":"3101:38:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3091:6:60"}]},{"nodeType":"YulAssignment","src":"3148:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3175:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3186:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3171:3:60"},"nodeType":"YulFunctionCall","src":"3171:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3158:12:60"},"nodeType":"YulFunctionCall","src":"3158:32:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3148:6:60"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2928:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2939:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2951:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2959:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2967:6:60","type":""}],"src":"2874:322:60"},{"body":{"nodeType":"YulBlock","src":"3444:243:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3461:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3472:2:60","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3454:6:60"},"nodeType":"YulFunctionCall","src":"3454:21:60"},"nodeType":"YulExpressionStatement","src":"3454:21:60"},{"nodeType":"YulVariableDeclaration","src":"3484:77:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3534:6:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3546:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3557:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3542:3:60"},"nodeType":"YulFunctionCall","src":"3542:18:60"}],"functionName":{"name":"abi_encode_array_contract_ERC20_dyn","nodeType":"YulIdentifier","src":"3498:35:60"},"nodeType":"YulFunctionCall","src":"3498:63:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"3488:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3581:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3592:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3577:3:60"},"nodeType":"YulFunctionCall","src":"3577:18:60"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"3601:6:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3609:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3597:3:60"},"nodeType":"YulFunctionCall","src":"3597:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3570:6:60"},"nodeType":"YulFunctionCall","src":"3570:50:60"},"nodeType":"YulExpressionStatement","src":"3570:50:60"},{"nodeType":"YulAssignment","src":"3629:52:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3666:6:60"},{"name":"tail_1","nodeType":"YulIdentifier","src":"3674:6:60"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"3637:28:60"},"nodeType":"YulFunctionCall","src":"3637:44:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3629:4:60"}]}]},"name":"abi_encode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3405:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3416:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3424:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3435:4:60","type":""}],"src":"3201:486:60"},{"body":{"nodeType":"YulBlock","src":"3866:223:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3883:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3894:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3876:6:60"},"nodeType":"YulFunctionCall","src":"3876:21:60"},"nodeType":"YulExpressionStatement","src":"3876:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3917:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3928:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3913:3:60"},"nodeType":"YulFunctionCall","src":"3913:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3933:2:60","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3906:6:60"},"nodeType":"YulFunctionCall","src":"3906:30:60"},"nodeType":"YulExpressionStatement","src":"3906:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3956:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3967:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3952:3:60"},"nodeType":"YulFunctionCall","src":"3952:18:60"},{"hexValue":"4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e","kind":"string","nodeType":"YulLiteral","src":"3972:34:60","type":"","value":"Only MCV2 can call this function"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3945:6:60"},"nodeType":"YulFunctionCall","src":"3945:62:60"},"nodeType":"YulExpressionStatement","src":"3945:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4027:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4038:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4023:3:60"},"nodeType":"YulFunctionCall","src":"4023:18:60"},{"hexValue":"2e","kind":"string","nodeType":"YulLiteral","src":"4043:3:60","type":"","value":"."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4016:6:60"},"nodeType":"YulFunctionCall","src":"4016:31:60"},"nodeType":"YulExpressionStatement","src":"4016:31:60"},{"nodeType":"YulAssignment","src":"4056:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4068:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4079:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4064:3:60"},"nodeType":"YulFunctionCall","src":"4064:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4056:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_3119d70f54e65f7fc05dc3fff78f1ae1d0c82eaf50b477c40260718556fca1cd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3843:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3857:4:60","type":""}],"src":"3692:397:60"},{"body":{"nodeType":"YulBlock","src":"4223:168:60","statements":[{"nodeType":"YulAssignment","src":"4233:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4245:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4256:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4241:3:60"},"nodeType":"YulFunctionCall","src":"4241:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4233:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4275:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"4286:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4268:6:60"},"nodeType":"YulFunctionCall","src":"4268:25:60"},"nodeType":"YulExpressionStatement","src":"4268:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4313:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4324:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4309:3:60"},"nodeType":"YulFunctionCall","src":"4309:18:60"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4333:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4341:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4329:3:60"},"nodeType":"YulFunctionCall","src":"4329:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4302:6:60"},"nodeType":"YulFunctionCall","src":"4302:83:60"},"nodeType":"YulExpressionStatement","src":"4302:83:60"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4184:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4195:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4203:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4214:4:60","type":""}],"src":"4094:297:60"},{"body":{"nodeType":"YulBlock","src":"4428:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4445:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4448:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4438:6:60"},"nodeType":"YulFunctionCall","src":"4438:88:60"},"nodeType":"YulExpressionStatement","src":"4438:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4542:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4545:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4535:6:60"},"nodeType":"YulFunctionCall","src":"4535:15:60"},"nodeType":"YulExpressionStatement","src":"4535:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4566:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4569:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4559:6:60"},"nodeType":"YulFunctionCall","src":"4559:15:60"},"nodeType":"YulExpressionStatement","src":"4559:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"4396:184:60"},{"body":{"nodeType":"YulBlock","src":"4631:365:60","statements":[{"nodeType":"YulAssignment","src":"4641:21:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4657:4:60","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4651:5:60"},"nodeType":"YulFunctionCall","src":"4651:11:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4641:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"4671:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4693:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4701:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4689:3:60"},"nodeType":"YulFunctionCall","src":"4689:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4675:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4789:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4810:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4813:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4803:6:60"},"nodeType":"YulFunctionCall","src":"4803:88:60"},"nodeType":"YulExpressionStatement","src":"4803:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4911:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4914:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4904:6:60"},"nodeType":"YulFunctionCall","src":"4904:15:60"},"nodeType":"YulExpressionStatement","src":"4904:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4939:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4942:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4932:6:60"},"nodeType":"YulFunctionCall","src":"4932:15:60"},"nodeType":"YulExpressionStatement","src":"4932:15:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4724:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"4736:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4721:2:60"},"nodeType":"YulFunctionCall","src":"4721:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4760:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4772:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4757:2:60"},"nodeType":"YulFunctionCall","src":"4757:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4718:2:60"},"nodeType":"YulFunctionCall","src":"4718:62:60"},"nodeType":"YulIf","src":"4715:242:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4973:4:60","type":"","value":"0x40"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4979:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4966:6:60"},"nodeType":"YulFunctionCall","src":"4966:24:60"},"nodeType":"YulExpressionStatement","src":"4966:24:60"}]},"name":"allocate_memory_1250","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4620:6:60","type":""}],"src":"4585:411:60"},{"body":{"nodeType":"YulBlock","src":"5042:361:60","statements":[{"nodeType":"YulAssignment","src":"5052:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5068:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5062:5:60"},"nodeType":"YulFunctionCall","src":"5062:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5052:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"5080:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5102:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"5110:4:60","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5098:3:60"},"nodeType":"YulFunctionCall","src":"5098:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"5084:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5198:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5219:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5222:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5212:6:60"},"nodeType":"YulFunctionCall","src":"5212:88:60"},"nodeType":"YulExpressionStatement","src":"5212:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5320:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5323:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5313:6:60"},"nodeType":"YulFunctionCall","src":"5313:15:60"},"nodeType":"YulExpressionStatement","src":"5313:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5348:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5351:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5341:6:60"},"nodeType":"YulFunctionCall","src":"5341:15:60"},"nodeType":"YulExpressionStatement","src":"5341:15:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5133:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"5145:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5130:2:60"},"nodeType":"YulFunctionCall","src":"5130:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5169:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"5181:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5166:2:60"},"nodeType":"YulFunctionCall","src":"5166:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5127:2:60"},"nodeType":"YulFunctionCall","src":"5127:62:60"},"nodeType":"YulIf","src":"5124:242:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5382:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5386:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5375:6:60"},"nodeType":"YulFunctionCall","src":"5375:22:60"},"nodeType":"YulExpressionStatement","src":"5375:22:60"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"5031:6:60","type":""}],"src":"5001:402:60"},{"body":{"nodeType":"YulBlock","src":"5468:138:60","statements":[{"nodeType":"YulAssignment","src":"5478:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5493:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5487:5:60"},"nodeType":"YulFunctionCall","src":"5487:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5478:5:60"}]},{"body":{"nodeType":"YulBlock","src":"5584:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5593:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5596:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5586:6:60"},"nodeType":"YulFunctionCall","src":"5586:12:60"},"nodeType":"YulExpressionStatement","src":"5586:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5522:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5533:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"5540:40:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5529:3:60"},"nodeType":"YulFunctionCall","src":"5529:52:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5519:2:60"},"nodeType":"YulFunctionCall","src":"5519:63:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5512:6:60"},"nodeType":"YulFunctionCall","src":"5512:71:60"},"nodeType":"YulIf","src":"5509:91:60"}]},"name":"abi_decode_uint152_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5447:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5458:5:60","type":""}],"src":"5408:198:60"},{"body":{"nodeType":"YulBlock","src":"5695:204:60","statements":[{"body":{"nodeType":"YulBlock","src":"5739:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5748:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5751:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5741:6:60"},"nodeType":"YulFunctionCall","src":"5741:12:60"},"nodeType":"YulExpressionStatement","src":"5741:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5716:3:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5721:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5712:3:60"},"nodeType":"YulFunctionCall","src":"5712:19:60"},{"kind":"number","nodeType":"YulLiteral","src":"5733:4:60","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5708:3:60"},"nodeType":"YulFunctionCall","src":"5708:30:60"},"nodeType":"YulIf","src":"5705:50:60"},{"nodeType":"YulAssignment","src":"5764:31:60","value":{"arguments":[],"functionName":{"name":"allocate_memory_1250","nodeType":"YulIdentifier","src":"5773:20:60"},"nodeType":"YulFunctionCall","src":"5773:22:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5764:5:60"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5811:5:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5824:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5818:5:60"},"nodeType":"YulFunctionCall","src":"5818:16:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5804:6:60"},"nodeType":"YulFunctionCall","src":"5804:31:60"},"nodeType":"YulExpressionStatement","src":"5804:31:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5855:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"5862:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5851:3:60"},"nodeType":"YulFunctionCall","src":"5851:14:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5877:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5888:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5873:3:60"},"nodeType":"YulFunctionCall","src":"5873:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5867:5:60"},"nodeType":"YulFunctionCall","src":"5867:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5844:6:60"},"nodeType":"YulFunctionCall","src":"5844:49:60"},"nodeType":"YulExpressionStatement","src":"5844:49:60"}]},"name":"abi_decode_struct_RewardSummations_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5666:9:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"5677:3:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5685:5:60","type":""}],"src":"5611:288:60"},{"body":{"nodeType":"YulBlock","src":"5963:112:60","statements":[{"nodeType":"YulAssignment","src":"5973:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5988:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5982:5:60"},"nodeType":"YulFunctionCall","src":"5982:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5973:5:60"}]},{"body":{"nodeType":"YulBlock","src":"6053:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6062:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6065:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6055:6:60"},"nodeType":"YulFunctionCall","src":"6055:12:60"},"nodeType":"YulExpressionStatement","src":"6055:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6017:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6028:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"6035:14:60","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6024:3:60"},"nodeType":"YulFunctionCall","src":"6024:26:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6014:2:60"},"nodeType":"YulFunctionCall","src":"6014:37:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6007:6:60"},"nodeType":"YulFunctionCall","src":"6007:45:60"},"nodeType":"YulIf","src":"6004:65:60"}]},"name":"abi_decode_uint48_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5942:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5953:5:60","type":""}],"src":"5904:171:60"},{"body":{"nodeType":"YulBlock","src":"6139:114:60","statements":[{"nodeType":"YulAssignment","src":"6149:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6164:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6158:5:60"},"nodeType":"YulFunctionCall","src":"6158:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6149:5:60"}]},{"body":{"nodeType":"YulBlock","src":"6231:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6240:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6243:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6233:6:60"},"nodeType":"YulFunctionCall","src":"6233:12:60"},"nodeType":"YulExpressionStatement","src":"6233:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6193:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6204:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"6211:16:60","type":"","value":"0xffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6200:3:60"},"nodeType":"YulFunctionCall","src":"6200:28:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6190:2:60"},"nodeType":"YulFunctionCall","src":"6190:39:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6183:6:60"},"nodeType":"YulFunctionCall","src":"6183:47:60"},"nodeType":"YulIf","src":"6180:67:60"}]},"name":"abi_decode_uint56_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"6118:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6129:5:60","type":""}],"src":"6080:173:60"},{"body":{"nodeType":"YulBlock","src":"6317:124:60","statements":[{"nodeType":"YulAssignment","src":"6327:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6342:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6336:5:60"},"nodeType":"YulFunctionCall","src":"6336:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6327:5:60"}]},{"body":{"nodeType":"YulBlock","src":"6419:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6428:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6431:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6421:6:60"},"nodeType":"YulFunctionCall","src":"6421:12:60"},"nodeType":"YulExpressionStatement","src":"6421:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6371:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6382:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"6389:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6378:3:60"},"nodeType":"YulFunctionCall","src":"6378:38:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6368:2:60"},"nodeType":"YulFunctionCall","src":"6368:49:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6361:6:60"},"nodeType":"YulFunctionCall","src":"6361:57:60"},"nodeType":"YulIf","src":"6358:77:60"}]},"name":"abi_decode_uint96_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"6296:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6307:5:60","type":""}],"src":"6258:183:60"},{"body":{"nodeType":"YulBlock","src":"6550:966:60","statements":[{"nodeType":"YulVariableDeclaration","src":"6560:33:60","value":{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6574:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"6583:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6570:3:60"},"nodeType":"YulFunctionCall","src":"6570:23:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6564:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6618:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6627:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6630:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6620:6:60"},"nodeType":"YulFunctionCall","src":"6620:12:60"},"nodeType":"YulExpressionStatement","src":"6620:12:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6609:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"6613:3:60","type":"","value":"256"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6605:3:60"},"nodeType":"YulFunctionCall","src":"6605:12:60"},"nodeType":"YulIf","src":"6602:32:60"},{"nodeType":"YulVariableDeclaration","src":"6643:30:60","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6656:15:60"},"nodeType":"YulFunctionCall","src":"6656:17:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6647:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6699:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6708:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6711:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6701:6:60"},"nodeType":"YulFunctionCall","src":"6701:12:60"},"nodeType":"YulExpressionStatement","src":"6701:12:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6689:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"6693:4:60","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6685:3:60"},"nodeType":"YulFunctionCall","src":"6685:13:60"},"nodeType":"YulIf","src":"6682:33:60"},{"nodeType":"YulVariableDeclaration","src":"6724:37:60","value":{"arguments":[],"functionName":{"name":"allocate_memory_1250","nodeType":"YulIdentifier","src":"6739:20:60"},"nodeType":"YulFunctionCall","src":"6739:22:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6728:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6770:31:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6791:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6785:5:60"},"nodeType":"YulFunctionCall","src":"6785:16:60"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"6774:7:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6877:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6886:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6889:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6879:6:60"},"nodeType":"YulFunctionCall","src":"6879:12:60"},"nodeType":"YulExpressionStatement","src":"6879:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"6823:7:60"},{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"6836:7:60"},{"kind":"number","nodeType":"YulLiteral","src":"6845:28:60","type":"","value":"0xffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6832:3:60"},"nodeType":"YulFunctionCall","src":"6832:42:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6820:2:60"},"nodeType":"YulFunctionCall","src":"6820:55:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6813:6:60"},"nodeType":"YulFunctionCall","src":"6813:63:60"},"nodeType":"YulIf","src":"6810:83:60"},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6909:7:60"},{"name":"value_2","nodeType":"YulIdentifier","src":"6918:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6902:6:60"},"nodeType":"YulFunctionCall","src":"6902:24:60"},"nodeType":"YulExpressionStatement","src":"6902:24:60"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6946:7:60"},{"kind":"number","nodeType":"YulLiteral","src":"6955:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6942:3:60"},"nodeType":"YulFunctionCall","src":"6942:16:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6994:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7005:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6990:3:60"},"nodeType":"YulFunctionCall","src":"6990:18:60"}],"functionName":{"name":"abi_decode_uint152_fromMemory","nodeType":"YulIdentifier","src":"6960:29:60"},"nodeType":"YulFunctionCall","src":"6960:49:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6935:6:60"},"nodeType":"YulFunctionCall","src":"6935:75:60"},"nodeType":"YulExpressionStatement","src":"6935:75:60"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7026:5:60"},{"name":"value_1","nodeType":"YulIdentifier","src":"7033:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7019:6:60"},"nodeType":"YulFunctionCall","src":"7019:22:60"},"nodeType":"YulExpressionStatement","src":"7019:22:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7061:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7068:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7057:3:60"},"nodeType":"YulFunctionCall","src":"7057:14:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7123:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7134:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7119:3:60"},"nodeType":"YulFunctionCall","src":"7119:20:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7141:7:60"}],"functionName":{"name":"abi_decode_struct_RewardSummations_fromMemory","nodeType":"YulIdentifier","src":"7073:45:60"},"nodeType":"YulFunctionCall","src":"7073:76:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7050:6:60"},"nodeType":"YulFunctionCall","src":"7050:100:60"},"nodeType":"YulExpressionStatement","src":"7050:100:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7170:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7177:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7166:3:60"},"nodeType":"YulFunctionCall","src":"7166:16:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7218:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7229:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:60"},"nodeType":"YulFunctionCall","src":"7214:19:60"}],"functionName":{"name":"abi_decode_uint152_fromMemory","nodeType":"YulIdentifier","src":"7184:29:60"},"nodeType":"YulFunctionCall","src":"7184:50:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7159:6:60"},"nodeType":"YulFunctionCall","src":"7159:76:60"},"nodeType":"YulExpressionStatement","src":"7159:76:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7255:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7262:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7251:3:60"},"nodeType":"YulFunctionCall","src":"7251:16:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7302:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7313:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7298:3:60"},"nodeType":"YulFunctionCall","src":"7298:19:60"}],"functionName":{"name":"abi_decode_uint48_fromMemory","nodeType":"YulIdentifier","src":"7269:28:60"},"nodeType":"YulFunctionCall","src":"7269:49:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7244:6:60"},"nodeType":"YulFunctionCall","src":"7244:75:60"},"nodeType":"YulExpressionStatement","src":"7244:75:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7339:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7346:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7335:3:60"},"nodeType":"YulFunctionCall","src":"7335:15:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7385:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7396:4:60","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7381:3:60"},"nodeType":"YulFunctionCall","src":"7381:20:60"}],"functionName":{"name":"abi_decode_uint56_fromMemory","nodeType":"YulIdentifier","src":"7352:28:60"},"nodeType":"YulFunctionCall","src":"7352:50:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7328:6:60"},"nodeType":"YulFunctionCall","src":"7328:75:60"},"nodeType":"YulExpressionStatement","src":"7328:75:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7423:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7430:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7419:3:60"},"nodeType":"YulFunctionCall","src":"7419:15:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7469:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7480:3:60","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7465:3:60"},"nodeType":"YulFunctionCall","src":"7465:19:60"}],"functionName":{"name":"abi_decode_uint96_fromMemory","nodeType":"YulIdentifier","src":"7436:28:60"},"nodeType":"YulFunctionCall","src":"7436:49:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7412:6:60"},"nodeType":"YulFunctionCall","src":"7412:74:60"},"nodeType":"YulExpressionStatement","src":"7412:74:60"},{"nodeType":"YulAssignment","src":"7495:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"7505:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7495:6:60"}]}]},"name":"abi_decode_tuple_t_struct$_User_$12117_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6516:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6527:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6539:6:60","type":""}],"src":"6446:1070:60"},{"body":{"nodeType":"YulBlock","src":"7553:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7570:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7573:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7563:6:60"},"nodeType":"YulFunctionCall","src":"7563:88:60"},"nodeType":"YulExpressionStatement","src":"7563:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7667:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7670:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7660:6:60"},"nodeType":"YulFunctionCall","src":"7660:15:60"},"nodeType":"YulExpressionStatement","src":"7660:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7691:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7694:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7684:6:60"},"nodeType":"YulFunctionCall","src":"7684:15:60"},"nodeType":"YulExpressionStatement","src":"7684:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"7521:184:60"},{"body":{"nodeType":"YulBlock","src":"7742:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7759:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7762:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7752:6:60"},"nodeType":"YulFunctionCall","src":"7752:88:60"},"nodeType":"YulExpressionStatement","src":"7752:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7856:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7859:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7849:6:60"},"nodeType":"YulFunctionCall","src":"7849:15:60"},"nodeType":"YulExpressionStatement","src":"7849:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7880:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7883:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7873:6:60"},"nodeType":"YulFunctionCall","src":"7873:15:60"},"nodeType":"YulExpressionStatement","src":"7873:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"7710:184:60"},{"body":{"nodeType":"YulBlock","src":"7951:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"8070:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8072:16:60"},"nodeType":"YulFunctionCall","src":"8072:18:60"},"nodeType":"YulExpressionStatement","src":"8072:18:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7982:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7975:6:60"},"nodeType":"YulFunctionCall","src":"7975:9:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7968:6:60"},"nodeType":"YulFunctionCall","src":"7968:17:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"7990:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7997:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"8065:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7993:3:60"},"nodeType":"YulFunctionCall","src":"7993:74:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7987:2:60"},"nodeType":"YulFunctionCall","src":"7987:81:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7964:3:60"},"nodeType":"YulFunctionCall","src":"7964:105:60"},"nodeType":"YulIf","src":"7961:131:60"},{"nodeType":"YulAssignment","src":"8101:20:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8116:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"8119:1:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8112:3:60"},"nodeType":"YulFunctionCall","src":"8112:9:60"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"8101:7:60"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7930:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"7933:1:60","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"7939:7:60","type":""}],"src":"7899:228:60"},{"body":{"nodeType":"YulBlock","src":"8178:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"8209:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8230:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8233:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8223:6:60"},"nodeType":"YulFunctionCall","src":"8223:88:60"},"nodeType":"YulExpressionStatement","src":"8223:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8331:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8334:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8324:6:60"},"nodeType":"YulFunctionCall","src":"8324:15:60"},"nodeType":"YulExpressionStatement","src":"8324:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8359:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8362:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8352:6:60"},"nodeType":"YulFunctionCall","src":"8352:15:60"},"nodeType":"YulExpressionStatement","src":"8352:15:60"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8198:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8191:6:60"},"nodeType":"YulFunctionCall","src":"8191:9:60"},"nodeType":"YulIf","src":"8188:189:60"},{"nodeType":"YulAssignment","src":"8386:14:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8395:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"8398:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8391:3:60"},"nodeType":"YulFunctionCall","src":"8391:9:60"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"8386:1:60"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8163:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"8166:1:60","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"8172:1:60","type":""}],"src":"8132:274:60"},{"body":{"nodeType":"YulBlock","src":"8459:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"8486:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8488:16:60"},"nodeType":"YulFunctionCall","src":"8488:18:60"},"nodeType":"YulExpressionStatement","src":"8488:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8475:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8482:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8478:3:60"},"nodeType":"YulFunctionCall","src":"8478:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8472:2:60"},"nodeType":"YulFunctionCall","src":"8472:13:60"},"nodeType":"YulIf","src":"8469:39:60"},{"nodeType":"YulAssignment","src":"8517:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8528:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"8531:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8524:3:60"},"nodeType":"YulFunctionCall","src":"8524:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"8517:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8442:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"8445:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"8451:3:60","type":""}],"src":"8411:128:60"},{"body":{"nodeType":"YulBlock","src":"8645:125:60","statements":[{"nodeType":"YulAssignment","src":"8655:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8667:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8678:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8663:3:60"},"nodeType":"YulFunctionCall","src":"8663:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8655:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8697:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8712:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"8720:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8708:3:60"},"nodeType":"YulFunctionCall","src":"8708:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8690:6:60"},"nodeType":"YulFunctionCall","src":"8690:74:60"},"nodeType":"YulExpressionStatement","src":"8690:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8614:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8625:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8636:4:60","type":""}],"src":"8544:226:60"},{"body":{"nodeType":"YulBlock","src":"8856:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"8902:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8911:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8914:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8904:6:60"},"nodeType":"YulFunctionCall","src":"8904:12:60"},"nodeType":"YulExpressionStatement","src":"8904:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8877:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"8886:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8873:3:60"},"nodeType":"YulFunctionCall","src":"8873:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"8898:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8869:3:60"},"nodeType":"YulFunctionCall","src":"8869:32:60"},"nodeType":"YulIf","src":"8866:52:60"},{"nodeType":"YulAssignment","src":"8927:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8943:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8937:5:60"},"nodeType":"YulFunctionCall","src":"8937:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8927:6:60"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8822:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8833:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8845:6:60","type":""}],"src":"8775:184:60"},{"body":{"nodeType":"YulBlock","src":"9013:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"9035:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9037:16:60"},"nodeType":"YulFunctionCall","src":"9037:18:60"},"nodeType":"YulExpressionStatement","src":"9037:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9029:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"9032:1:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9026:2:60"},"nodeType":"YulFunctionCall","src":"9026:8:60"},"nodeType":"YulIf","src":"9023:34:60"},{"nodeType":"YulAssignment","src":"9066:17:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9078:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"9081:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9074:3:60"},"nodeType":"YulFunctionCall","src":"9074:9:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9066:4:60"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8995:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"8998:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9004:4:60","type":""}],"src":"8964:125:60"},{"body":{"nodeType":"YulBlock","src":"9141:148:60","statements":[{"body":{"nodeType":"YulBlock","src":"9232:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9234:16:60"},"nodeType":"YulFunctionCall","src":"9234:18:60"},"nodeType":"YulExpressionStatement","src":"9234:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9157:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"9164:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9154:2:60"},"nodeType":"YulFunctionCall","src":"9154:77:60"},"nodeType":"YulIf","src":"9151:103:60"},{"nodeType":"YulAssignment","src":"9263:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9274:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"9281:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9270:3:60"},"nodeType":"YulFunctionCall","src":"9270:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9263:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9123:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9133:3:60","type":""}],"src":"9094:195:60"},{"body":{"nodeType":"YulBlock","src":"9468:165:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9485:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9496:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9478:6:60"},"nodeType":"YulFunctionCall","src":"9478:21:60"},"nodeType":"YulExpressionStatement","src":"9478:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9519:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9530:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9515:3:60"},"nodeType":"YulFunctionCall","src":"9515:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"9535:2:60","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9508:6:60"},"nodeType":"YulFunctionCall","src":"9508:30:60"},"nodeType":"YulExpressionStatement","src":"9508:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9558:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9569:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9554:3:60"},"nodeType":"YulFunctionCall","src":"9554:18:60"},{"hexValue":"5452414e534645525f4641494c4544","kind":"string","nodeType":"YulLiteral","src":"9574:17:60","type":"","value":"TRANSFER_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9547:6:60"},"nodeType":"YulFunctionCall","src":"9547:45:60"},"nodeType":"YulExpressionStatement","src":"9547:45:60"},{"nodeType":"YulAssignment","src":"9601:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9613:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9624:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9609:3:60"},"nodeType":"YulFunctionCall","src":"9609:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9601:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9445:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9459:4:60","type":""}],"src":"9294:339:60"}]},"contents":"{\n    { }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_uint256_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_contract$_ERC20_$9395__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_addresst_boolt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value2 := value\n        value3 := calldataload(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n    }\n    function abi_encode_array_contract_ERC20_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), 0xffffffffffffffffffffffffffffffffffffffff))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_contract_ERC20_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_array$_t_contract$_ERC20_$9395_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_contract_ERC20_dyn(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value1, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_3119d70f54e65f7fc05dc3fff78f1ae1d0c82eaf50b477c40260718556fca1cd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Only MCV2 can call this function\")\n        mstore(add(headStart, 96), \".\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_1250() -> memPtr\n    {\n        memPtr := mload(0x40)\n        let newFreePtr := add(memPtr, 0x40)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x41)\n            revert(0, 0x24)\n        }\n        mstore(0x40, newFreePtr)\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xc0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x41)\n            revert(0, 0x24)\n        }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_uint152_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_struct_RewardSummations_fromMemory(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n        value := allocate_memory_1250()\n        mstore(value, mload(headStart))\n        mstore(add(value, 32), mload(add(headStart, 32)))\n    }\n    function abi_decode_uint48_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint56_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint96_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_User_$12117_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 256) { revert(0, 0) }\n        let value := allocate_memory()\n        if slt(_1, 0x40) { revert(0, 0) }\n        let value_1 := allocate_memory_1250()\n        let value_2 := mload(headStart)\n        if iszero(eq(value_2, and(value_2, 0xffffffffffffffffffffffffff))) { revert(0, 0) }\n        mstore(value_1, value_2)\n        mstore(add(value_1, 32), abi_decode_uint152_fromMemory(add(headStart, 32)))\n        mstore(value, value_1)\n        mstore(add(value, 32), abi_decode_struct_RewardSummations_fromMemory(add(headStart, 0x40), dataEnd))\n        mstore(add(value, 0x40), abi_decode_uint152_fromMemory(add(headStart, 128)))\n        mstore(add(value, 0x60), abi_decode_uint48_fromMemory(add(headStart, 160)))\n        mstore(add(value, 128), abi_decode_uint56_fromMemory(add(headStart, 0xc0)))\n        mstore(add(value, 160), abi_decode_uint96_fromMemory(add(headStart, 224)))\n        value0 := value\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"TRANSFER_FAILED\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"16895":[{"length":32,"start":504},{"length":32,"start":748}],"16897":[{"length":32,"start":1130},{"length":32,"start":1873},{"length":32,"start":2463}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061007d5760003560e01c8063ba782bee1161005b578063ba782bee146100ec578063c4f59f9b14610101578063d63b3c4914610116578063f2f3e82d1461013757600080fd5b806337e211ba146100825780637bb7bed1146100a0578063981962a7146100cb575b600080fd5b61008a61014a565b6040516100979190610b4a565b60405180910390f35b6100b36100ae366004610b64565b6101a2565b6040516001600160a01b039091168152602001610097565b6100de6100d9366004610b64565b6101cc565b604051908152602001610097565b6100ff6100fa366004610b99565b6101ed565b005b610109610693565b6040516100979190610c27565b610129610124366004610c3a565b6106f4565b604051610097929190610c6f565b610129610145366004610c3a565b610942565b6060600180548060200260200160405190810160405280929190818152602001828054801561019857602002820191906000526020600020905b815481526020019060010190808311610184575b5050505050905090565b600081815481106101b257600080fd5b6000918252602090912001546001600160a01b0316905081565b600181815481106101dc57600080fd5b600091825260209091200154905081565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e60448201527f2e0000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517f257664a4000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b0385811660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063257664a49060440161010060405180830381865afa158015610336573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035a9190610db7565b5160008781526003602090815260408083206001600160a01b038a16808552818452828520835180850190945280546cffffffffffffffffffffffffff80821686526d01000000000000000000000000009182900472ffffffffffffffffffffffffffffffffffffff908116878901529390975292855286519487015194909516931602919091179091559091508480156103f457508215155b156104595780518251602080840151908501516cffffffffffffffffffffffffff928316929093169182149272ffffffffffffffffffffffffffffffffffffff90811691161490158061044c575081801561044c5750805b1561045657600096505b50505b60005b6000548110156106895760007f00000000000000000000000000000000000000000000000000000000000000006001838154811061049c5761049c610e7c565b9060005260206000200154876104b29190610ea8565b6104bc9190610ec7565b6001600160a01b03891660009081526002602090815260408083208684529091529020546104ea9190610ee9565b9050600080838154811061050057610500610e7c565b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561056a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058e9190610f01565b9050876105c0576001600160a01b03891660009081526002602090815260408083208684529091529020829055610676565b80821115610635576105d28183610f1a565b6001600160a01b038a1660009081526002602090815260408083208784529091528120919091558054610630918b918491908790811061061457610614610e7c565b6000918252602090912001546001600160a01b03169190610a50565b610676565b6001600160a01b038916600090815260026020908152604080832086845290915281208190558054610676918b918591908790811061061457610614610e7c565b50508061068290610f31565b905061045c565b5050505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561019857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106cd575050505050905090565b600054606090819067ffffffffffffffff81111561071457610714610c9d565b60405190808252806020026020018201604052801561073d578160200160208202803683370190505b50905060005b6000548110156108d65760007f00000000000000000000000000000000000000000000000000000000000000006001838154811061078357610783610e7c565b9060005260206000200154866107999190610ea8565b6107a39190610ec7565b6001600160a01b03871660009081526002602090815260408083208684529091529020546107d19190610ee9565b905060008083815481106107e7576107e7610e7c565b6000918252602090912001546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108759190610f01565b9050808211156108a3578084848151811061089257610892610e7c565b6020026020010181815250506108c3565b818484815181106108b6576108b6610e7c565b6020026020010181815250505b5050806108cf90610f31565b9050610743565b506000818180548060200260200160405190810160405280929190818152602001828054801561092f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610911575b5050505050915091509150935093915050565b600054606090819067ffffffffffffffff81111561096257610962610c9d565b60405190808252806020026020018201604052801561098b578160200160208202803683370190505b50905060005b6000548110156108d65760007f0000000000000000000000000000000000000000000000000000000000000000600183815481106109d1576109d1610e7c565b9060005260206000200154866109e79190610ea8565b6109f19190610ec7565b6001600160a01b0387166000908152600260209081526040808320868452909152902054610a1f9190610ee9565b905080838381518110610a3457610a34610e7c565b602090810291909101015250610a4981610f31565b9050610991565b60006040517fa9059cbb000000000000000000000000000000000000000000000000000000008152836004820152826024820152602060006044836000895af13d15601f3d1160016000511416171691505080610b09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016102a1565b50505050565b600081518084526020808501945080840160005b83811015610b3f57815187529582019590820190600101610b23565b509495945050505050565b602081526000610b5d6020830184610b0f565b9392505050565b600060208284031215610b7657600080fd5b5035919050565b80356001600160a01b0381168114610b9457600080fd5b919050565b600080600080600060a08688031215610bb157600080fd5b85359450610bc160208701610b7d565b935060408601358015158114610bd657600080fd5b94979396509394606081013594506080013592915050565b600081518084526020808501945080840160005b83811015610b3f5781516001600160a01b031687529582019590820190600101610c02565b602081526000610b5d6020830184610bee565b600080600060608486031215610c4f57600080fd5b83359250610c5f60208501610b7d565b9150604084013590509250925092565b604081526000610c826040830185610bee565b8281036020840152610c948185610b0f565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610ce457634e487b7160e01b600052604160045260246000fd5b60405290565b60405160c0810167ffffffffffffffff81118282101715610ce457634e487b7160e01b600052604160045260246000fd5b805172ffffffffffffffffffffffffffffffffffffff81168114610b9457600080fd5b600060408284031215610d5057600080fd5b610d58610cb3565b9050815181526020820151602082015292915050565b805165ffffffffffff81168114610b9457600080fd5b805166ffffffffffffff81168114610b9457600080fd5b80516bffffffffffffffffffffffff81168114610b9457600080fd5b6000818303610100811215610dcb57600080fd5b610dd3610cea565b6040821215610de157600080fd5b610de9610cb3565b915083516cffffffffffffffffffffffffff81168114610e0857600080fd5b8252610e1660208501610d1b565b6020830152818152610e2b8560408601610d3e565b6020820152610e3c60808501610d1b565b6040820152610e4d60a08501610d6e565b6060820152610e5e60c08501610d84565b6080820152610e6f60e08501610d9b565b60a0820152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610ec257610ec2610e92565b500290565b600082610ee457634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610efc57610efc610e92565b500190565b600060208284031215610f1357600080fd5b5051919050565b600082821015610f2c57610f2c610e92565b500390565b60006000198203610f4457610f44610e92565b506001019056fea264697066735822122021a1089dfe503272dfbcb9204d27f65a6758c87f28fc21bf4cf340129b79979864736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBA782BEE GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xBA782BEE EQ PUSH2 0xEC JUMPI DUP1 PUSH4 0xC4F59F9B EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xD63B3C49 EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xF2F3E82D EQ PUSH2 0x137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x37E211BA EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x7BB7BED1 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x981962A7 EQ PUSH2 0xCB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x14A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0xB4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0xAE CALLDATASIZE PUSH1 0x4 PUSH2 0xB64 JUMP JUMPDEST PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x97 JUMP JUMPDEST PUSH2 0xDE PUSH2 0xD9 CALLDATASIZE PUSH1 0x4 PUSH2 0xB64 JUMP JUMPDEST PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x97 JUMP JUMPDEST PUSH2 0xFF PUSH2 0xFA CALLDATASIZE PUSH1 0x4 PUSH2 0xB99 JUMP JUMPDEST PUSH2 0x1ED JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0xC27 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x124 CALLDATASIZE PUSH1 0x4 PUSH2 0xC3A JUMP JUMPDEST PUSH2 0x6F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP3 SWAP2 SWAP1 PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x129 PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0xC3A JUMP JUMPDEST PUSH2 0x942 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x184 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x2AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79204D4356322063616E2063616C6C20746869732066756E6374696F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2E00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x257664A400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x257664A4 SWAP1 PUSH1 0x44 ADD PUSH2 0x100 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x336 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x35A SWAP2 SWAP1 PUSH2 0xDB7 JUMP JUMPDEST MLOAD PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND DUP1 DUP6 MSTORE DUP2 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE DUP1 SLOAD PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND DUP7 MSTORE PUSH14 0x100000000000000000000000000 SWAP2 DUP3 SWAP1 DIV PUSH19 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND DUP8 DUP10 ADD MSTORE SWAP4 SWAP1 SWAP8 MSTORE SWAP3 DUP6 MSTORE DUP7 MLOAD SWAP5 DUP8 ADD MLOAD SWAP5 SWAP1 SWAP6 AND SWAP4 AND MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 SWAP2 POP DUP5 DUP1 ISZERO PUSH2 0x3F4 JUMPI POP DUP3 ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x459 JUMPI DUP1 MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MLOAD PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND SWAP3 SWAP1 SWAP4 AND SWAP2 DUP3 EQ SWAP3 PUSH19 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ SWAP1 ISZERO DUP1 PUSH2 0x44C JUMPI POP DUP2 DUP1 ISZERO PUSH2 0x44C JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x456 JUMPI PUSH1 0x0 SWAP7 POP JUMPDEST POP POP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x0 SLOAD DUP2 LT ISZERO PUSH2 0x689 JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x49C JUMPI PUSH2 0x49C PUSH2 0xE7C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP8 PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0xEA8 JUMP JUMPDEST PUSH2 0x4BC SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x4EA SWAP2 SWAP1 PUSH2 0xEE9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x500 JUMPI PUSH2 0x500 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x58E SWAP2 SWAP1 PUSH2 0xF01 JUMP JUMPDEST SWAP1 POP DUP8 PUSH2 0x5C0 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x676 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x635 JUMPI PUSH2 0x5D2 DUP2 DUP4 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD PUSH2 0x630 SWAP2 DUP12 SWAP2 DUP5 SWAP2 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x614 JUMPI PUSH2 0x614 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0xA50 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP2 SWAP1 SSTORE DUP1 SLOAD PUSH2 0x676 SWAP2 DUP12 SWAP2 DUP6 SWAP2 SWAP1 DUP8 SWAP1 DUP2 LT PUSH2 0x614 JUMPI PUSH2 0x614 PUSH2 0xE7C JUMP JUMPDEST POP POP DUP1 PUSH2 0x682 SWAP1 PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP PUSH2 0x45C JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x198 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6CD JUMPI POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 DUP2 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x714 JUMPI PUSH2 0x714 PUSH2 0xC9D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x73D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 SLOAD DUP2 LT ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x783 JUMPI PUSH2 0x783 PUSH2 0xE7C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH2 0x799 SWAP2 SWAP1 PUSH2 0xEA8 JUMP JUMPDEST PUSH2 0x7A3 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x7D1 SWAP2 SWAP1 PUSH2 0xEE9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x7E7 JUMPI PUSH2 0x7E7 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x875 SWAP2 SWAP1 PUSH2 0xF01 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x8A3 JUMPI DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x892 JUMPI PUSH2 0x892 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x8C3 JUMP JUMPDEST DUP2 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x8B6 JUMPI PUSH2 0x8B6 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST POP POP DUP1 PUSH2 0x8CF SWAP1 PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP PUSH2 0x743 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x92F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x911 JUMPI JUMPDEST POP POP POP POP POP SWAP2 POP SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x60 SWAP1 DUP2 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x962 JUMPI PUSH2 0x962 PUSH2 0xC9D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x98B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 SLOAD DUP2 LT ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x9D1 JUMPI PUSH2 0x9D1 PUSH2 0xE7C JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH2 0x9E7 SWAP2 SWAP1 PUSH2 0xEA8 JUMP JUMPDEST PUSH2 0x9F1 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0xA1F SWAP2 SWAP1 PUSH2 0xEE9 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xA34 JUMPI PUSH2 0xA34 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xA49 DUP2 PUSH2 0xF31 JUMP JUMPDEST SWAP1 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP4 PUSH1 0x4 DUP3 ADD MSTORE DUP3 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 PUSH1 0x44 DUP4 PUSH1 0x0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1F RETURNDATASIZE GT PUSH1 0x1 PUSH1 0x0 MLOAD EQ AND OR AND SWAP2 POP POP DUP1 PUSH2 0xB09 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5452414E534645525F4641494C45440000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2A1 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xB23 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB5D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xB0F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xBB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0xBC1 PUSH1 0x20 DUP8 ADD PUSH2 0xB7D JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xBD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB3F JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xC02 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB5D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xBEE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH2 0xC5F PUSH1 0x20 DUP6 ADD PUSH2 0xB7D JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC82 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xBEE JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0xC94 DUP2 DUP6 PUSH2 0xB0F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xCE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xC0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xCE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD PUSH19 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD58 PUSH2 0xCB3 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH6 0xFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH7 0xFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xB94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB PUSH2 0x100 DUP2 SLT ISZERO PUSH2 0xDCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDD3 PUSH2 0xCEA JUMP JUMPDEST PUSH1 0x40 DUP3 SLT ISZERO PUSH2 0xDE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDE9 PUSH2 0xCB3 JUMP JUMPDEST SWAP2 POP DUP4 MLOAD PUSH13 0xFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xE08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE PUSH2 0xE16 PUSH1 0x20 DUP6 ADD PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0xE2B DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0xD3E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE3C PUSH1 0x80 DUP6 ADD PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0xE4D PUSH1 0xA0 DUP6 ADD PUSH2 0xD6E JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0xE5E PUSH1 0xC0 DUP6 ADD PUSH2 0xD84 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0xE6F PUSH1 0xE0 DUP6 ADD PUSH2 0xD9B JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xEC2 JUMPI PUSH2 0xEC2 PUSH2 0xE92 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xEE4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xEFC JUMPI PUSH2 0xEFC PUSH2 0xE92 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xF2C JUMPI PUSH2 0xF2C PUSH2 0xE92 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xF44 JUMPI PUSH2 0xF44 PUSH2 0xE92 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 LOG1 ADDMOD SWAP14 INVALID POP ORIGIN PUSH19 0xDFBCB9204D27F65A6758C87F28FC21BF4CF340 SLT SWAP12 PUSH26 0x979864736F6C634300080F003300000000000000000000000000 ","sourceMap":"89:6357:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6164:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:27;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1083:55:60;;;1065:74;;1053:2;1038:18;202:27:53;905:240:60;236:34:53;;;;;;:::i;:::-;;:::i;:::-;;;1296:25:60;;;1284:2;1269:18;236:34:53;1150:177:60;2608:1840:53;;;;;;:::i;:::-;;:::i;:::-;;5975:104;;;:::i;:::-;;;;;;;:::i;4524:683::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5411:484::-;;;;;;:::i;:::-;;:::i;6164:116::-;6219:16;6255:17;6248:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6164:116;:::o;202:27::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;202:27:53;;-1:-1:-1;202:27:53;:::o;236:34::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:34:53;:::o;2608:1840::-;6339:10;-1:-1:-1;;;;;6353:7:53;6339:21;;6317:104;;;;;;;3894:2:60;6317:104:53;;;3876:21:60;3933:2;3913:18;;;3906:30;3972:34;3952:18;;;3945:62;4043:3;4023:18;;;4016:31;4064:19;;6317:104:53;;;;;;;;;3104:37:::1;::::0;;;;::::1;::::0;::::1;4268:25:60::0;;;-1:-1:-1;;;;;4329:55:60;;;4309:18;;;4302:83;3048:53:53::1;::::0;3114:7:::1;3104:26:::0;;::::1;::::0;::::1;::::0;4241:18:60;;3104:37:53::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52:::0;::::1;3228:24:::0;;;:19:::1;:24;::::0;;;;;;;-1:-1:-1;;;;;3228:30:53;::::1;::::0;;;;;;;;;3167:91;;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;::::1;;::::0;;::::1;::::0;;::::1;::::0;3269:30;;;;;;;:54;;;;::::1;::::0;;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;;3104:52;;-1:-1:-1;3338:17:53;:36;::::1;;;-1:-1:-1::0;3359:15:53;;::::1;3338:36;3334:409;;;3444:34:::0;;3411:29;;3562:42:::1;::::0;;::::1;::::0;3521:37;;::::1;::::0;3411:67:::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;3521:83:::1;::::0;;::::1;::::0;::::1;;::::0;3623:39;;:81:::1;;;3667:12;:36;;;;;3683:20;3667:36;3619:112;;;3726:5;3706:25;;3619:112;3376:367;;3334:409;3760:9;3755:686;3775:12;:19:::0;3771:23;::::1;3755:686;;;3816:21;3902:25;3879:17;3897:1;3879:20;;;;;;;;:::i;:::-;;;;;;;;;3864:12;:35;;;;:::i;:::-;:63;;;;:::i;:::-;-1:-1:-1::0;;;;;3840:17:53;::::1;;::::0;;;:11:::1;:17;::::0;;;;;;;:20;;;;;;;;;:88:::1;::::0;;::::1;:::i;:::-;3816:112;;3943:17;3963:12:::0;3976:1:::1;3963:15;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;:40:::1;::::0;;;;3997:4:::1;3963:40;::::0;::::1;1065:74:60::0;-1:-1:-1;;;;;3963:15:53;;::::1;::::0;:25:::1;::::0;1038:18:60;;3963:40:53::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3943:60;;4023:17;4018:412;;-1:-1:-1::0;;;;;4061:17:53;::::1;;::::0;;;:11:::1;:17;::::0;;;;;;;:20;;;;;;;;:36;;;4018:412:::1;;;4139:9;4123:13;:25;4119:311;;;4192:25;4208:9:::0;4192:13;:25:::1;:::i;:::-;-1:-1:-1::0;;;;;4169:17:53;::::1;;::::0;;;:11:::1;:17;::::0;;;;;;;:20;;;;;;;;:48;;;;4236:15;;:45:::1;::::0;4181:4;;4271:9;;4169:17;4187:1;;4236:15;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;4236:15:53::1;::::0;:45;:28:::1;:45::i;:::-;4119:311;;;-1:-1:-1::0;;;;;4322:17:53;::::1;4345:1;4322:17:::0;;;:11:::1;:17;::::0;;;;;;;:20;;;;;;;;:24;;;4365:15;;:49:::1;::::0;4334:4;;4400:13;;4345:1;4340;;4365:15;::::1;;;;;:::i;:49::-;3801:640;;3796:3;;;;:::i;:::-;;;3755:686;;;;2798:1650;;2608:1840:::0;;;;;:::o;5975:104::-;6025:14;6059:12;6052:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6052:19:53;;;;;;;;;;;;;;;;;;;;;;5975:104;:::o;4524:683::-;4699:12;:19;4615:21;;;;4685:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4685:34:53;;4675:44;;4735:9;4730:429;4750:12;:19;4746:23;;4730:429;;;4791:21;4877:25;4854:17;4872:1;4854:20;;;;;;;;:::i;:::-;;;;;;;;;4839:12;:35;;;;:::i;:::-;:63;;;;:::i;:::-;-1:-1:-1;;;;;4815:17:53;;;;;;:11;:17;;;;;;;;:20;;;;;;;;;:88;;;;:::i;:::-;4791:112;;4918:17;4938:12;4951:1;4938:15;;;;;;;;:::i;:::-;;;;;;;;;;;:40;;;;;4972:4;4938:40;;;1065:74:60;-1:-1:-1;;;;;4938:15:53;;;;:25;;1038:18:60;;4938:40:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4918:60;;5013:9;4997:13;:25;4993:155;;;5056:9;5043:7;5051:1;5043:10;;;;;;;;:::i;:::-;;;;;;:22;;;;;4993:155;;;5119:13;5106:7;5114:1;5106:10;;;;;;;;:::i;:::-;;;;;;:26;;;;;4993:155;4776:383;;4771:3;;;;:::i;:::-;;;4730:429;;;;5177:12;5191:7;5169:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5169:30:53;;;;;;;;;;;;;;;;;;;;;;;;;;;4524:683;;;;;;:::o;5411:484::-;5590:12;:19;5506:21;;;;5576:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5576:34:53;;5566:44;;5626:9;5621:226;5641:12;:19;5637:23;;5621:226;;;5682:21;5768:25;5745:17;5763:1;5745:20;;;;;;;;:::i;:::-;;;;;;;;;5730:12;:35;;;;:::i;:::-;:63;;;;:::i;:::-;-1:-1:-1;;;;;5706:17:53;;;;;;:11;:17;;;;;;;;:20;;;;;;;;;:88;;;;:::i;:::-;5682:112;;5822:13;5809:7;5817:1;5809:10;;;;;;;;:::i;:::-;;;;;;;;;;:26;-1:-1:-1;5662:3:53;;;:::i;:::-;;;5621:226;;2861:1456:36;2973:12;3100:4;3094:11;3242:66;3223:17;3216:93;3356:2;3352:1;3333:17;3329:25;3322:37;3436:6;3431:2;3412:17;3408:26;3401:42;4238:2;4235:1;4231:2;4212:17;4209:1;4202:5;4195;4190:51;3759:16;3752:24;3746:2;3728:16;3725:24;3721:1;3717;3711:8;3708:15;3704:46;3701:76;3501:754;3490:765;;;4283:7;4275:35;;;;;;;9496:2:60;4275:35:36;;;9478:21:60;9535:2;9515:18;;;9508:30;9574:17;9554:18;;;9547:45;9609:18;;4275:35:36;9294:339:60;4275:35:36;2963:1354;2861:1456;;;:::o;14:435:60:-;67:3;105:5;99:12;132:6;127:3;120:19;158:4;187:2;182:3;178:12;171:19;;224:2;217:5;213:14;245:1;255:169;269:6;266:1;263:13;255:169;;;330:13;;318:26;;364:12;;;;399:15;;;;291:1;284:9;255:169;;;-1:-1:-1;440:3:60;;14:435;-1:-1:-1;;;;;14:435:60:o;454:261::-;633:2;622:9;615:21;596:4;653:56;705:2;694:9;690:18;682:6;653:56;:::i;:::-;645:64;454:261;-1:-1:-1;;;454:261:60:o;720:180::-;779:6;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;-1:-1:-1;871:23:60;;720:180;-1:-1:-1;720:180:60:o;1332:196::-;1400:20;;-1:-1:-1;;;;;1449:54:60;;1439:65;;1429:93;;1518:1;1515;1508:12;1429:93;1332:196;;;:::o;1533:553::-;1625:6;1633;1641;1649;1657;1710:3;1698:9;1689:7;1685:23;1681:33;1678:53;;;1727:1;1724;1717:12;1678:53;1763:9;1750:23;1740:33;;1792:38;1826:2;1815:9;1811:18;1792:38;:::i;:::-;1782:48;;1880:2;1869:9;1865:18;1852:32;1927:5;1920:13;1913:21;1906:5;1903:32;1893:60;;1949:1;1946;1939:12;1893:60;1533:553;;;;-1:-1:-1;1972:5:60;;2024:2;2009:18;;1996:32;;-1:-1:-1;2075:3:60;2060:19;2047:33;;1533:553;-1:-1:-1;;1533:553:60:o;2091:491::-;2151:3;2189:5;2183:12;2216:6;2211:3;2204:19;2242:4;2271:2;2266:3;2262:12;2255:19;;2308:2;2301:5;2297:14;2329:1;2339:218;2353:6;2350:1;2347:13;2339:218;;;2418:13;;-1:-1:-1;;;;;2414:62:60;2402:75;;2497:12;;;;2532:15;;;;2375:1;2368:9;2339:218;;2587:282;2780:2;2769:9;2762:21;2743:4;2800:63;2859:2;2848:9;2844:18;2836:6;2800:63;:::i;2874:322::-;2951:6;2959;2967;3020:2;3008:9;2999:7;2995:23;2991:32;2988:52;;;3036:1;3033;3026:12;2988:52;3072:9;3059:23;3049:33;;3101:38;3135:2;3124:9;3120:18;3101:38;:::i;:::-;3091:48;;3186:2;3175:9;3171:18;3158:32;3148:42;;2874:322;;;;;:::o;3201:486::-;3472:2;3461:9;3454:21;3435:4;3498:63;3557:2;3546:9;3542:18;3534:6;3498:63;:::i;:::-;3609:9;3601:6;3597:22;3592:2;3581:9;3577:18;3570:50;3637:44;3674:6;3666;3637:44;:::i;:::-;3629:52;3201:486;-1:-1:-1;;;;;3201:486:60:o;4396:184::-;-1:-1:-1;;;4445:1:60;4438:88;4545:4;4542:1;4535:15;4569:4;4566:1;4559:15;4585:411;4657:4;4651:11;;;4689:17;;4736:18;4721:34;;4757:22;;;4718:62;4715:242;;;-1:-1:-1;;;4810:1:60;4803:88;4914:4;4911:1;4904:15;4942:4;4939:1;4932:15;4715:242;4973:4;4966:24;4585:411;:::o;5001:402::-;5068:2;5062:9;5110:4;5098:17;;5145:18;5130:34;;5166:22;;;5127:62;5124:242;;;-1:-1:-1;;;5219:1:60;5212:88;5323:4;5320:1;5313:15;5351:4;5348:1;5341:15;5408:198;5487:13;;5540:40;5529:52;;5519:63;;5509:91;;5596:1;5593;5586:12;5611:288;5685:5;5733:4;5721:9;5716:3;5712:19;5708:30;5705:50;;;5751:1;5748;5741:12;5705:50;5773:22;;:::i;:::-;5764:31;;5824:9;5818:16;5811:5;5804:31;5888:2;5877:9;5873:18;5867:25;5862:2;5855:5;5851:14;5844:49;5611:288;;;;:::o;5904:171::-;5982:13;;6035:14;6024:26;;6014:37;;6004:65;;6065:1;6062;6055:12;6080:173;6158:13;;6211:16;6200:28;;6190:39;;6180:67;;6243:1;6240;6233:12;6258:183;6336:13;;6389:26;6378:38;;6368:49;;6358:77;;6431:1;6428;6421:12;6446:1070;6539:6;6583:9;6574:7;6570:23;6613:3;6609:2;6605:12;6602:32;;;6630:1;6627;6620:12;6602:32;6656:17;;:::i;:::-;6693:4;6689:2;6685:13;6682:33;;;6711:1;6708;6701:12;6682:33;6739:22;;:::i;:::-;6724:37;;6791:9;6785:16;6845:28;6836:7;6832:42;6823:7;6820:55;6810:83;;6889:1;6886;6879:12;6810:83;6902:24;;6960:49;7005:2;6990:18;;6960:49;:::i;:::-;6955:2;6946:7;6942:16;6935:75;7033:7;7026:5;7019:22;7073:76;7141:7;7134:4;7123:9;7119:20;7073:76;:::i;:::-;7068:2;7061:5;7057:14;7050:100;7184:50;7229:3;7218:9;7214:19;7184:50;:::i;:::-;7177:4;7170:5;7166:16;7159:76;7269:49;7313:3;7302:9;7298:19;7269:49;:::i;:::-;7262:4;7255:5;7251:16;7244:75;7352:50;7396:4;7385:9;7381:20;7352:50;:::i;:::-;7346:3;7339:5;7335:15;7328:75;7436:49;7480:3;7469:9;7465:19;7436:49;:::i;:::-;7430:3;7419:15;;7412:74;7423:5;6446:1070;-1:-1:-1;;;;6446:1070:60:o;7521:184::-;-1:-1:-1;;;7570:1:60;7563:88;7670:4;7667:1;7660:15;7694:4;7691:1;7684:15;7710:184;-1:-1:-1;;;7759:1:60;7752:88;7859:4;7856:1;7849:15;7883:4;7880:1;7873:15;7899:228;7939:7;8065:1;-1:-1:-1;;7993:74:60;7990:1;7987:81;7982:1;7975:9;7968:17;7964:105;7961:131;;;8072:18;;:::i;:::-;-1:-1:-1;8112:9:60;;7899:228::o;8132:274::-;8172:1;8198;8188:189;;-1:-1:-1;;;8230:1:60;8223:88;8334:4;8331:1;8324:15;8362:4;8359:1;8352:15;8188:189;-1:-1:-1;8391:9:60;;8132:274::o;8411:128::-;8451:3;8482:1;8478:6;8475:1;8472:13;8469:39;;;8488:18;;:::i;:::-;-1:-1:-1;8524:9:60;;8411:128::o;8775:184::-;8845:6;8898:2;8886:9;8877:7;8873:23;8869:32;8866:52;;;8914:1;8911;8904:12;8866:52;-1:-1:-1;8937:16:60;;8775:184;-1:-1:-1;8775:184:60:o;8964:125::-;9004:4;9032:1;9029;9026:8;9023:34;;;9037:18;;:::i;:::-;-1:-1:-1;9074:9:60;;8964:125::o;9094:195::-;9133:3;-1:-1:-1;;9157:5:60;9154:77;9151:103;;9234:18;;:::i;:::-;-1:-1:-1;9281:1:60;9270:13;;9094:195::o"},"methodIdentifiers":{"getRewardMultipliers()":"37e211ba","getRewardTokens()":"c4f59f9b","onReward(uint256,address,bool,uint256,uint256)":"ba782bee","pendingTokens(uint256,address,uint256)":"d63b3c49","pendingTokensDebt(uint256,address,uint256)":"f2f3e82d","rewardMultipliers(uint256)":"981962a7","rewardTokens(uint256)":"7bb7bed1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ERC20[]\",\"name\":\"_rewardTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_rewardMultipliers\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_baseRewardTokenDecimals\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_chefV2\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"getRewardMultipliers\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRewardTokens\",\"outputs\":[{\"internalType\":\"contract ERC20[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"destructiveAction\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"onReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"}],\"name\":\"pendingTokens\",\"outputs\":[{\"internalType\":\"contract ERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"}],\"name\":\"pendingTokensDebt\",\"outputs\":[{\"internalType\":\"contract ERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardMultipliers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardTokens\",\"outputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_baseRewardTokenDecimals\":\"The decimal precision of the base reward (PNG) being emitted\",\"_chefV2\":\"The address of the chef contract where the base reward (PNG) is being emitted\",\"_rewardMultipliers\":\"The amount of each additional reward token to be claimable for every 1 base reward (PNG) being claimed\",\"_rewardTokens\":\"The address of each additional reward token\"}}},\"stateVariables\":{\"rewardDebts\":{\"details\":\"Additional reward quantities that might be owed to users trying to claim after funds have been exhausted\"},\"usersValueVariables\":{\"details\":\"Previous sum of entry times to check if staking duration was reset.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Each reward multiplier should have a precision matching that individual token\"},\"getRewardMultipliers()\":{\"notice\":\"Overloaded getter for easy access to the reward multipliers\"},\"getRewardTokens()\":{\"notice\":\"Overloaded getter for easy access to the reward tokens\"},\"pendingTokens(uint256,address,uint256)\":{\"notice\":\"Shows pending tokens that can be currently claimed\"},\"pendingTokensDebt(uint256,address,uint256)\":{\"notice\":\"Shows pending tokens including rewards accrued after the funding has been exhaustedthese extra rewards could be claimed if more funding is added to the contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/RewarderViaMultiplierForPangoChefOnSongbird.sol\":\"RewarderViaMultiplierForPangoChefOnSongbird\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"@rari-capital/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x0240f7703cff32a61ee3e9fbb339e09a944260432a9ef37debf3692b1a6c8049\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2d8b0c0158b1952a87c327d506a645040924a94c8f9f937184659f8a8e3b0759\",\"dweb:/ipfs/QmZ9rGdkjRCk8zfr4xeH7Jh88tkWJNt9LvG1o2GcCm7Uqa\"]},\"@rari-capital/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0xa28a1515702793c6b56b97272f75e05890fd82aa2e7ec47b41d4d56a81023f69\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7bb0229ba04ab021f31ecb002c162fe1db2e2cf36c76c403801013dda8bd1124\",\"dweb:/ipfs/QmPRLj9LkGGxNuXf66srwNSrYpcbnzH1JtrpMFukTEnoEx\"]},\"contracts/staking-positions/GenericErrors.sol\":{\"keccak256\":\"0x2259e2847683e12db8c0999ff9aec68181f6353b8f4dc1ae319bfff8d9acd211\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a09e011c4008772e3e33b1fb2da0e1f281ea06ba634ab69b83aef56abbfe725\",\"dweb:/ipfs/QmNYrC6GW3ugBmF4fZ9kAyprij4RheB9r4uWwqqGN27p2S\"]},\"contracts/staking-positions/PangoChef.sol\":{\"keccak256\":\"0x540b516cd86781e6a3d1272dea8113a68ac8d8127308a0eef50c0a39306617c2\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://7237e9c1892c6d8ada7bf2fedcf8b77ca3ac708ff638f06f79ada988edfbd36c\",\"dweb:/ipfs/QmUeVVUP9TKANA5GShKxMLYCy6JBKRcJAQfTmrZnqytuTu\"]},\"contracts/staking-positions/PangoChefFunding.sol\":{\"keccak256\":\"0x6c0928fa279c848e130381bb078c99f0277412c68cf54563d1bbba083b2fec54\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://7dca7be740c5df273b2708b85262acb807baf98cdfa0c51c813fc5b35ed679af\",\"dweb:/ipfs/QmYjYZ5Rsdh3FBT98GjaqX2wnxjQef6uXjKbyfdZgSSkW4\"]},\"contracts/staking-positions/ReentrancyGuard.sol\":{\"keccak256\":\"0x77a8bd6a27ca0173cf07e52ad5c905be1128bfdb9140b7552370698e023ed9f5\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://459d9e8fa4ec115394c008002310e98071346cee67eb4f1a550c2edf4006d47d\",\"dweb:/ipfs/QmRACbAwiucFy3QELqctZw4MqcUqCvoDMem5XVeo137zW3\"]},\"contracts/staking-positions/RewarderViaMultiplierForPangoChefOnSongbird.sol\":{\"keccak256\":\"0x4c3bb68868ad071a5679c5d03433fbdd347eceb99c64067c3ca51a8f975e85e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c1f7da16a2277ff71f9b41493c84fa0757d301773c6e367b5cf60287c6a3a9\",\"dweb:/ipfs/QmY3FKQ4uSbKehjmz36QU4tEpqKaXz2NqjpQFgBikYPjhx\"]},\"contracts/staking-positions/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb78e477d342058ea93a54118552a4a134474d8aaad49468864b087aebd592138\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://222678d46a13b6fbfb83f62842c1eabdc310af0e1ebd57a2ae98461cea2b5923\",\"dweb:/ipfs/QmcKQrjaBAZDyNaGg9LAax6S3Eb59fnCpPWtDvybSorouC\"]},\"contracts/staking-positions/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0xd25b4ab4887a1524128c210992825fa179b51febee83238e31da8cb9a18e53e1\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://c895bad22d84e202cf0a9e44f9f1afd44a046d1059e2a4b0f13fc37613a4aab1\",\"dweb:/ipfs/QmVaa8madApaVSPUnpCeNJUSv7z67GtnMXNPjGkYUJQ11v\"]},\"contracts/staking-positions/interfaces/IRewarder.sol\":{\"keccak256\":\"0x3ffb03c3b5a5be2552835f292ef747c27fbb347b7ffa932525ecc048b317e7ad\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://af2d0ee60041eacbd2b974ae91de21911f2f3f0f55f915d8bbbd8998e3fb2913\",\"dweb:/ipfs/QmXLB7YeYjdwqNqTHQXEYbfGjDwQC6PNw7Gdj5ztDC3jYi\"]},\"contracts/staking-positions/interfaces/IWAVAX.sol\":{\"keccak256\":\"0xb4c14b219795e5bd1145dd2d2f3e0ee8b41280afd24302d784063c427fdc2e33\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://5a8cf75bbdaa9a61f9dffc132d69d811d666eb188df39f575d608f5e01023543\",\"dweb:/ipfs/Qmb5sw9ZySsbdZYn2Jjih6iFHxx3PFeRBmvG1akRuifcPW\"]}},\"version\":1}"}},"contracts/staking-positions/TokenMetadata.sol":{"IPangolinStakingPositions":{"abi":[{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"positionPendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"positionRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"positions","outputs":[{"components":[{"components":[{"internalType":"uint96","name":"balance","type":"uint96"},{"internalType":"uint160","name":"sumOfEntryTimes","type":"uint160"}],"internalType":"struct IPangolinStakingPositions.ValueVariables","name":"valueVariables","type":"tuple"},{"components":[{"internalType":"uint256","name":"idealPosition","type":"uint256"},{"internalType":"uint256","name":"rewardPerValue","type":"uint256"}],"internalType":"struct IPangolinStakingPositions.RewardSummations","name":"rewardSummationsPaid","type":"tuple"},{"internalType":"uint160","name":"previousValues","type":"uint160"},{"internalType":"uint48","name":"lastUpdate","type":"uint48"},{"internalType":"uint48","name":"lastDevaluation","type":"uint48"}],"internalType":"struct IPangolinStakingPositions.Position","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"positionPendingRewards(uint256)":"496cea98","positionRewardRate(uint256)":"468cc41e","positions(uint256)":"99fbab88"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"positionPendingRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"positionRewardRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"positions\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint96\",\"name\":\"balance\",\"type\":\"uint96\"},{\"internalType\":\"uint160\",\"name\":\"sumOfEntryTimes\",\"type\":\"uint160\"}],\"internalType\":\"struct IPangolinStakingPositions.ValueVariables\",\"name\":\"valueVariables\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"idealPosition\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IPangolinStakingPositions.RewardSummations\",\"name\":\"rewardSummationsPaid\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"previousValues\",\"type\":\"uint160\"},{\"internalType\":\"uint48\",\"name\":\"lastUpdate\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"lastDevaluation\",\"type\":\"uint48\"}],\"internalType\":\"struct IPangolinStakingPositions.Position\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/TokenMetadata.sol\":\"IPangolinStakingPositions\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96\",\"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/staking-positions/TokenMetadata.sol\":{\"keccak256\":\"0x16a2cad860b168ec8193da0dc2770f16ff9080a88b45c391e752e8fb8c829385\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://8ac72166c47c73097fe8dfbda068d27730b73f24f153ad79ab34bae6b69c9a06\",\"dweb:/ipfs/Qmd7aDrKvCsoa3k1pty9eC6bEdEDy841JCYG1XGBkCwWdm\"]}},\"version\":1}"},"TokenMetadata":{"abi":[{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"string","name":"newTokenSymbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"METADATA_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boldFontUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"externalUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"imageBaseUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"imageExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"regularFontUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newDescription","type":"string"}],"name":"setDescription","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newExternalUri","type":"string"}],"name":"setExternalUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newRegularFontUri","type":"string"},{"internalType":"string","name":"newBoldFontUri","type":"string"}],"name":"setFont","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newImageBaseUri","type":"string"},{"internalType":"string","name":"newImageExtension","type":"string"}],"name":"setImage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes1","name":"newThousandSeparator","type":"bytes1"}],"name":"setThousandSeparator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thousandSeparator","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenSymbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IPangolinStakingPositions","name":"pangolinStakingPositions","type":"address"},{"internalType":"uint256","name":"positionId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17533":{"entryPoint":null,"id":17533,"parameterSlots":2,"returnSlots":0},"@_add_8447":{"entryPoint":783,"id":8447,"parameterSlots":2,"returnSlots":1},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_grantRole_283":{"entryPoint":590,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":523,"id":415,"parameterSlots":2,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@add_8747":{"entryPoint":751,"id":8747,"parameterSlots":2,"returnSlots":1},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_string_memory_ptr_fromMemory":{"entryPoint":1330,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":1044,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1126,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":984,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":962,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3991:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:60"},"nodeType":"YulFunctionCall","src":"66:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:60"},"nodeType":"YulFunctionCall","src":"56:31:60"},"nodeType":"YulExpressionStatement","src":"56:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:60"},"nodeType":"YulFunctionCall","src":"96:15:60"},"nodeType":"YulExpressionStatement","src":"96:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:60"},"nodeType":"YulFunctionCall","src":"120:15:60"},"nodeType":"YulExpressionStatement","src":"120:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:60"},{"body":{"nodeType":"YulBlock","src":"201:325:60","statements":[{"nodeType":"YulAssignment","src":"211:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:60"},"nodeType":"YulFunctionCall","src":"221:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:60"},"nodeType":"YulFunctionCall","src":"268:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:60","statements":[{"nodeType":"YulAssignment","src":"321:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:60"},"nodeType":"YulFunctionCall","src":"331:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:60"},"nodeType":"YulFunctionCall","src":"292:26:60"},"nodeType":"YulIf","src":"289:61:60"},{"body":{"nodeType":"YulBlock","src":"409:111:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:60"},"nodeType":"YulFunctionCall","src":"433:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:60"},"nodeType":"YulFunctionCall","src":"423:31:60"},"nodeType":"YulExpressionStatement","src":"423:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:60"},"nodeType":"YulFunctionCall","src":"467:15:60"},"nodeType":"YulExpressionStatement","src":"467:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:60"},"nodeType":"YulFunctionCall","src":"495:15:60"},"nodeType":"YulExpressionStatement","src":"495:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:60"},"nodeType":"YulFunctionCall","src":"385:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:60"},"nodeType":"YulFunctionCall","src":"362:38:60"},"nodeType":"YulIf","src":"359:161:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:60","type":""}],"src":"146:380:60"},{"body":{"nodeType":"YulBlock","src":"587:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:60"},"nodeType":"YulFunctionCall","src":"597:14:60"},"nodeType":"YulExpressionStatement","src":"597:14:60"},{"nodeType":"YulAssignment","src":"620:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:60"},"nodeType":"YulFunctionCall","src":"628:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:60","type":""}],"src":"531:121:60"},{"body":{"nodeType":"YulBlock","src":"738:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:60"},"nodeType":"YulFunctionCall","src":"809:17:60"},"nodeType":"YulExpressionStatement","src":"809:17:60"},{"nodeType":"YulVariableDeclaration","src":"839:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:60"},"nodeType":"YulFunctionCall","src":"851:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:60"},"nodeType":"YulFunctionCall","src":"919:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:60"},"nodeType":"YulFunctionCall","src":"912:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:60"},"nodeType":"YulFunctionCall","src":"902:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:60","statements":[{"nodeType":"YulAssignment","src":"979:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:60"},"nodeType":"YulFunctionCall","src":"956:20:60"},"nodeType":"YulIf","src":"953:47:60"},{"nodeType":"YulVariableDeclaration","src":"1013:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:60"},"nodeType":"YulFunctionCall","src":"1040:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:60"},"nodeType":"YulFunctionCall","src":"1033:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:60"},"nodeType":"YulFunctionCall","src":"1023:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:60"},"nodeType":"YulFunctionCall","src":"1167:17:60"},"nodeType":"YulExpressionStatement","src":"1167:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:60"},"nodeType":"YulFunctionCall","src":"1112:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:60","statements":[{"nodeType":"YulAssignment","src":"1128:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:60"},"nodeType":"YulFunctionCall","src":"1137:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:60","statements":[]},"src":"1104:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:60"},"nodeType":"YulFunctionCall","src":"751:11:60"},"nodeType":"YulIf","src":"748:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:60","type":""}],"src":"657:545:60"},{"body":{"nodeType":"YulBlock","src":"1292:81:60","statements":[{"nodeType":"YulAssignment","src":"1302:65:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:60"},"nodeType":"YulFunctionCall","src":"1331:11:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:60"},"nodeType":"YulFunctionCall","src":"1344:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:60"},"nodeType":"YulFunctionCall","src":"1327:24:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:60"},"nodeType":"YulFunctionCall","src":"1323:29:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:60"},"nodeType":"YulFunctionCall","src":"1313:40:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:60"},"nodeType":"YulFunctionCall","src":"1355:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:60"},"nodeType":"YulFunctionCall","src":"1310:57:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:60","type":""}],"src":"1207:166:60"},{"body":{"nodeType":"YulBlock","src":"1474:1256:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:60"},"nodeType":"YulFunctionCall","src":"1498:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:60"},"nodeType":"YulFunctionCall","src":"1553:18:60"},"nodeType":"YulExpressionStatement","src":"1553:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:60"},"nodeType":"YulFunctionCall","src":"1535:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:60"},"nodeType":"YulFunctionCall","src":"1531:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:60"},"nodeType":"YulFunctionCall","src":"1520:30:60"},"nodeType":"YulIf","src":"1517:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:60"},"nodeType":"YulFunctionCall","src":"1658:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:60"},"nodeType":"YulFunctionCall","src":"1632:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:60"},"nodeType":"YulFunctionCall","src":"1582:97:60"},"nodeType":"YulExpressionStatement","src":"1582:97:60"},{"nodeType":"YulVariableDeclaration","src":"1688:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:60","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:60"},"nodeType":"YulFunctionCall","src":"1858:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:60"},"nodeType":"YulFunctionCall","src":"1846:20:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:60"},"nodeType":"YulFunctionCall","src":"1893:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:60"},"nodeType":"YulFunctionCall","src":"2067:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:60"},"nodeType":"YulFunctionCall","src":"2061:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:60"},"nodeType":"YulFunctionCall","src":"2046:42:60"},"nodeType":"YulExpressionStatement","src":"2046:42:60"},{"nodeType":"YulAssignment","src":"2105:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:60"},"nodeType":"YulFunctionCall","src":"2115:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:60"}]},{"nodeType":"YulAssignment","src":"2146:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:60"},"nodeType":"YulFunctionCall","src":"2159:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:60"},"nodeType":"YulFunctionCall","src":"1972:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:60","statements":[{"nodeType":"YulAssignment","src":"1989:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:60"},"nodeType":"YulFunctionCall","src":"1994:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:60","statements":[]},"src":"1964:236:60"},{"body":{"nodeType":"YulBlock","src":"2248:166:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:60"},"nodeType":"YulFunctionCall","src":"2289:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:60"},"nodeType":"YulFunctionCall","src":"2283:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:60"},"nodeType":"YulFunctionCall","src":"2368:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:60"},"nodeType":"YulFunctionCall","src":"2364:24:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:60"},"nodeType":"YulFunctionCall","src":"2390:6:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:60"},"nodeType":"YulFunctionCall","src":"2360:37:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:60"},"nodeType":"YulFunctionCall","src":"2356:42:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:60"},"nodeType":"YulFunctionCall","src":"2341:58:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:60"},"nodeType":"YulFunctionCall","src":"2326:74:60"},"nodeType":"YulExpressionStatement","src":"2326:74:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:60"},"nodeType":"YulFunctionCall","src":"2216:19:60"},"nodeType":"YulIf","src":"2213:201:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:60"},"nodeType":"YulFunctionCall","src":"2444:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:60"},"nodeType":"YulFunctionCall","src":"2440:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:60"},"nodeType":"YulFunctionCall","src":"2427:36:60"},"nodeType":"YulExpressionStatement","src":"2427:36:60"}]},"nodeType":"YulCase","src":"1810:663:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:60","statements":[{"nodeType":"YulAssignment","src":"2571:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:60"},"nodeType":"YulFunctionCall","src":"2586:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:60"},"nodeType":"YulFunctionCall","src":"2580:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:60"},"nodeType":"YulIf","src":"2531:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:60"},"nodeType":"YulFunctionCall","src":"2646:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:60"},"nodeType":"YulFunctionCall","src":"2633:81:60"},"nodeType":"YulExpressionStatement","src":"2633:81:60"}]},"nodeType":"YulCase","src":"2482:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:60"},"nodeType":"YulFunctionCall","src":"1787:14:60"},"nodeType":"YulSwitch","src":"1780:944:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1459:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:60","type":""}],"src":"1378:1352:60"},{"body":{"nodeType":"YulBlock","src":"2843:1146:60","statements":[{"body":{"nodeType":"YulBlock","src":"2889:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2898:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2901:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2891:6:60"},"nodeType":"YulFunctionCall","src":"2891:12:60"},"nodeType":"YulExpressionStatement","src":"2891:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2864:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2873:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2860:3:60"},"nodeType":"YulFunctionCall","src":"2860:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2885:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2856:3:60"},"nodeType":"YulFunctionCall","src":"2856:32:60"},"nodeType":"YulIf","src":"2853:52:60"},{"nodeType":"YulVariableDeclaration","src":"2914:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2933:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2927:5:60"},"nodeType":"YulFunctionCall","src":"2927:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2918:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3006:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3015:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3018:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3008:6:60"},"nodeType":"YulFunctionCall","src":"3008:12:60"},"nodeType":"YulExpressionStatement","src":"3008:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2965:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2976:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2991:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2996:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2987:3:60"},"nodeType":"YulFunctionCall","src":"2987:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"3000:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2983:3:60"},"nodeType":"YulFunctionCall","src":"2983:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2972:3:60"},"nodeType":"YulFunctionCall","src":"2972:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2962:2:60"},"nodeType":"YulFunctionCall","src":"2962:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2955:6:60"},"nodeType":"YulFunctionCall","src":"2955:50:60"},"nodeType":"YulIf","src":"2952:70:60"},{"nodeType":"YulAssignment","src":"3031:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"3041:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3031:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"3055:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3065:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3059:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3076:39:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3100:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3111:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3096:3:60"},"nodeType":"YulFunctionCall","src":"3096:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3090:5:60"},"nodeType":"YulFunctionCall","src":"3090:25:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3080:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3124:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3142:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3146:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3138:3:60"},"nodeType":"YulFunctionCall","src":"3138:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"3150:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3134:3:60"},"nodeType":"YulFunctionCall","src":"3134:18:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3128:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3179:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3188:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3191:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3181:6:60"},"nodeType":"YulFunctionCall","src":"3181:12:60"},"nodeType":"YulExpressionStatement","src":"3181:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3167:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"3175:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3164:2:60"},"nodeType":"YulFunctionCall","src":"3164:14:60"},"nodeType":"YulIf","src":"3161:34:60"},{"nodeType":"YulVariableDeclaration","src":"3204:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3218:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"3229:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3214:3:60"},"nodeType":"YulFunctionCall","src":"3214:22:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3208:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3284:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3293:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3296:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3286:6:60"},"nodeType":"YulFunctionCall","src":"3286:12:60"},"nodeType":"YulExpressionStatement","src":"3286:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3263:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"3267:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3259:3:60"},"nodeType":"YulFunctionCall","src":"3259:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3274:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3255:3:60"},"nodeType":"YulFunctionCall","src":"3255:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3248:6:60"},"nodeType":"YulFunctionCall","src":"3248:35:60"},"nodeType":"YulIf","src":"3245:55:60"},{"nodeType":"YulVariableDeclaration","src":"3309:19:60","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3325:2:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3319:5:60"},"nodeType":"YulFunctionCall","src":"3319:9:60"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"3313:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3351:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3353:16:60"},"nodeType":"YulFunctionCall","src":"3353:18:60"},"nodeType":"YulExpressionStatement","src":"3353:18:60"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"3343:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"3347:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3340:2:60"},"nodeType":"YulFunctionCall","src":"3340:10:60"},"nodeType":"YulIf","src":"3337:36:60"},{"nodeType":"YulVariableDeclaration","src":"3382:17:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3396:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3392:3:60"},"nodeType":"YulFunctionCall","src":"3392:7:60"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"3386:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3408:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3428:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3422:5:60"},"nodeType":"YulFunctionCall","src":"3422:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3412:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3440:71:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3462:6:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"3486:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"3490:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3482:3:60"},"nodeType":"YulFunctionCall","src":"3482:13:60"},{"name":"_5","nodeType":"YulIdentifier","src":"3497:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3478:3:60"},"nodeType":"YulFunctionCall","src":"3478:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"3502:2:60","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3474:3:60"},"nodeType":"YulFunctionCall","src":"3474:31:60"},{"name":"_5","nodeType":"YulIdentifier","src":"3507:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3470:3:60"},"nodeType":"YulFunctionCall","src":"3470:40:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3458:3:60"},"nodeType":"YulFunctionCall","src":"3458:53:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3444:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3570:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3572:16:60"},"nodeType":"YulFunctionCall","src":"3572:18:60"},"nodeType":"YulExpressionStatement","src":"3572:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3529:10:60"},{"name":"_2","nodeType":"YulIdentifier","src":"3541:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3526:2:60"},"nodeType":"YulFunctionCall","src":"3526:18:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3549:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3561:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3546:2:60"},"nodeType":"YulFunctionCall","src":"3546:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3523:2:60"},"nodeType":"YulFunctionCall","src":"3523:46:60"},"nodeType":"YulIf","src":"3520:72:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3608:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3612:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3601:6:60"},"nodeType":"YulFunctionCall","src":"3601:22:60"},"nodeType":"YulExpressionStatement","src":"3601:22:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3639:6:60"},{"name":"_4","nodeType":"YulIdentifier","src":"3647:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3632:6:60"},"nodeType":"YulFunctionCall","src":"3632:18:60"},"nodeType":"YulExpressionStatement","src":"3632:18:60"},{"body":{"nodeType":"YulBlock","src":"3696:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3705:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3708:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3698:6:60"},"nodeType":"YulFunctionCall","src":"3698:12:60"},"nodeType":"YulExpressionStatement","src":"3698:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3673:2:60"},{"name":"_4","nodeType":"YulIdentifier","src":"3677:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3669:3:60"},"nodeType":"YulFunctionCall","src":"3669:11:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3682:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3665:3:60"},"nodeType":"YulFunctionCall","src":"3665:20:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3687:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3662:2:60"},"nodeType":"YulFunctionCall","src":"3662:33:60"},"nodeType":"YulIf","src":"3659:53:60"},{"nodeType":"YulVariableDeclaration","src":"3721:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3730:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3725:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3786:83:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3815:6:60"},{"name":"i","nodeType":"YulIdentifier","src":"3823:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3811:3:60"},"nodeType":"YulFunctionCall","src":"3811:14:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3827:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3807:3:60"},"nodeType":"YulFunctionCall","src":"3807:23:60"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3846:2:60"},{"name":"i","nodeType":"YulIdentifier","src":"3850:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3842:3:60"},"nodeType":"YulFunctionCall","src":"3842:10:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3854:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3838:3:60"},"nodeType":"YulFunctionCall","src":"3838:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3832:5:60"},"nodeType":"YulFunctionCall","src":"3832:26:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3800:6:60"},"nodeType":"YulFunctionCall","src":"3800:59:60"},"nodeType":"YulExpressionStatement","src":"3800:59:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3751:1:60"},{"name":"_4","nodeType":"YulIdentifier","src":"3754:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3748:2:60"},"nodeType":"YulFunctionCall","src":"3748:9:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3758:19:60","statements":[{"nodeType":"YulAssignment","src":"3760:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3769:1:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3772:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3765:3:60"},"nodeType":"YulFunctionCall","src":"3765:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3760:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"3744:3:60","statements":[]},"src":"3740:129:60"},{"body":{"nodeType":"YulBlock","src":"3899:59:60","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3928:6:60"},{"name":"_4","nodeType":"YulIdentifier","src":"3936:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3924:3:60"},"nodeType":"YulFunctionCall","src":"3924:15:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3941:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3920:3:60"},"nodeType":"YulFunctionCall","src":"3920:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"3946:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3913:6:60"},"nodeType":"YulFunctionCall","src":"3913:35:60"},"nodeType":"YulExpressionStatement","src":"3913:35:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3884:1:60"},{"name":"_4","nodeType":"YulIdentifier","src":"3887:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3881:2:60"},"nodeType":"YulFunctionCall","src":"3881:9:60"},"nodeType":"YulIf","src":"3878:80:60"},{"nodeType":"YulAssignment","src":"3967:16:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3977:6:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3967:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2801:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2812:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2824:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2832:6:60","type":""}],"src":"2735:1254:60"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_decode_tuple_t_addresst_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n        let _1 := 32\n        let offset := mload(add(headStart, _1))\n        let _2 := sub(shl(64, 1), 1)\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := mload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_4, 0x1f), _5), 63), _5))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _4)\n        if gt(add(add(_3, _4), _1), dataEnd) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, _4) { i := add(i, _1) }\n        {\n            mstore(add(add(memPtr, i), _1), mload(add(add(_3, i), _1)))\n        }\n        if gt(i, _4)\n        {\n            mstore(add(add(memPtr, _4), _1), 0)\n        }\n        value1 := memPtr\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101c060405260006080908152610a9e60a052611cdd60c052614e7660e05261d54661010052620243bd61012052620627e5610140526210bbb961016052622d7c5e61018052627ba4ac6101a0526200005d90600290600a62000361565b50600c805460ff1916602c1790556040805160e0810190915260aa808252620030d66020830139600d9062000093908262000466565b506040518060600160405280602781526020016200318060279139600e90620000bd908262000466565b506040518060800160405280604481526020016200309260449139600f90620000e7908262000466565b50604051806080016040528060488152602001620031a76048913960109062000111908262000466565b506040518060600160405280602d815260200162003065602d91396011906200013b908262000466565b506040805180820190915260048152632e706e6760e01b602082015260129062000166908262000466565b503480156200017457600080fd5b50604051620031ef380380620031ef833981016040819052620001979162000532565b6001600160a01b038216620001ab57600080fd5b620001b86000836200020b565b620001e47f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f80836200020b565b602081511115620001f457600080fd5b601362000202828262000466565b50505062000632565b6200022282826200024e60201b62000aa91760201c565b60008281526001602090815260409091206200024991839062000b47620002ef821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620002eb576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002aa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000306836001600160a01b0384166200030f565b90505b92915050565b6000818152600183016020526040812054620003585750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000309565b50600062000309565b82600a810192821562000399579160200282015b8281111562000399578251829062ffffff1690559160200191906001019062000375565b50620003a7929150620003ab565b5090565b5b80821115620003a75760008155600101620003ac565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003ed57607f821691505b6020821081036200040e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024957600081815260208120601f850160051c810160208610156200043d5750805b601f850160051c820191505b818110156200045e5782815560010162000449565b505050505050565b81516001600160401b03811115620004825762000482620003c2565b6200049a81620004938454620003d8565b8462000414565b602080601f831160018114620004d25760008415620004b95750858301515b600019600386901b1c1916600185901b1785556200045e565b600085815260208120601f198616915b828110156200050357888601518255948401946001909101908401620004e2565b5085821015620005225787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080604083850312156200054657600080fd5b82516001600160a01b03811681146200055e57600080fd5b602084810151919350906001600160401b03808211156200057e57600080fd5b818601915086601f8301126200059357600080fd5b815181811115620005a857620005a8620003c2565b604051601f8201601f19908116603f01168101908382118183101715620005d357620005d3620003c2565b816040528281528986848701011115620005ec57600080fd5b600093505b82841015620006105784840186015181850187015292850192620005f1565b82841115620006225760008684830101525b8096505050505050509250929050565b612a2380620006426000396000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80639010d07c116100e3578063a9ef3aeb1161008c578063d547741f11610066578063d547741f1461039c578063e89e6075146103af578063e9dc6375146103b757600080fd5b8063a9ef3aeb1461036e578063c4e1750b14610376578063ca15c8731461038957600080fd5b806396a3be7a116100bd57806396a3be7a14610340578063a217fddf14610353578063a33eb2eb1461035b57600080fd5b80639010d07c146102cb57806390c3f38f146102f657806391d148541461030957600080fd5b8063364a9b5f116101455780634c226e9b1161011f5780634c226e9b146102b35780637284e416146102bb5780637b61c320146102c357600080fd5b8063364a9b5f1461027157806336568abe14610279578063388417821461028c57600080fd5b8063248a9ca311610176578063248a9ca3146102185780632c9ea242146102495780632f2ff15d1461025e57600080fd5b806301ffc9a71461019d5780630dde8d27146101c55780631bf671c214610203575b600080fd5b6101b06101ab3660046117bc565b6103ca565b60405190151581526020015b60405180910390f35b600c546101d29060f81b81565b6040517fff0000000000000000000000000000000000000000000000000000000000000090911681526020016101bc565b6102166102113660046118ed565b610426565b005b61023b61022636600461192a565b60009081526020819052604090206001015490565b6040519081526020016101bc565b610251610461565b6040516101bc919061196f565b61021661026c3660046119b7565b6104ef565b610251610514565b6102166102873660046119b7565b610521565b61023b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8081565b6102516105b2565b6102516105bf565b6102516105cc565b6102de6102d93660046119e7565b6105d9565b6040516001600160a01b0390911681526020016101bc565b6102166103043660046118ed565b6105f8565b6101b06103173660046119b7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61021661034e366004611a09565b61062e565b61023b600081565b610216610369366004611a6d565b610677565b6102516106b8565b610216610384366004611a09565b6106c5565b61023b61039736600461192a565b610708565b6102166103aa3660046119b7565b61071f565b610251610744565b6102516103c5366004611aaf565b610751565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f000000000000000000000000000000000000000000000000000000001480610420575061042082610b5c565b92915050565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8061045081610bf3565b600e61045c8382611b63565b505050565b6011805461046e90611adb565b80601f016020809104026020016040519081016040528092919081815260200182805461049a90611adb565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b505050505081565b60008281526020819052604090206001015461050a81610bf3565b61045c8383610c00565b6010805461046e90611adb565b6001600160a01b03811633146105a45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6105ae8282610c22565b5050565b600f805461046e90611adb565b600d805461046e90611adb565b6013805461046e90611adb565b60008281526001602052604081206105f19083610c44565b9392505050565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8061062281610bf3565b600d61045c8382611b63565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8061065881610bf3565b600f6106648482611b63565b5060106106718382611b63565b50505050565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f806106a181610bf3565b50600c805460ff191660f89290921c919091179055565b6012805461046e90611adb565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f806106ef81610bf3565b60116106fb8482611b63565b5060126106718382611b63565b600081815260016020526040812061042090610c50565b60008281526020819052604090206001015461073a81610bf3565b61045c8383610c22565b600e805461046e90611adb565b6040517f99fbab88000000000000000000000000000000000000000000000000000000008152600481018290526060906000906001600160a01b038516906399fbab889060240160e060405180830381865afa1580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190611c79565b5180519091506bffffffffffffffffffffffff1660008115610813578183602001516001600160a01b031661080e9190611d59565b610815565b425b9050600082156108cb576040517f468cc41e0000000000000000000000000000000000000000000000000000000081526004810187905283906001600160a01b0389169063468cc41e90602401602060405180830381865afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611d6d565b6108b1906301e13380611d86565b6108bc906064611d86565b6108c69190611d59565b6108ce565b60005b90506000610949886001600160a01b031663496cea98896040518263ffffffff1660e01b815260040161090391815260200190565b602060405180830381865afa158015610920573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109449190611d6d565b610c5a565b905061095484610c5a565b9350600061096485610194610cb1565b9050600061097d6109758642611da5565b612580610cb1565b905060606000600f6010604051602001610998929190611e2f565b604051602081830303815290604052905060006109b58585610e1c565b60136109c08b610e5e565b6109c98a610e5e565b60136109d48b610e5e565b6040516020016109e99695949392919061218c565b6040516020818303038152906040529050610a248282604051602001610a109291906124d3565b604051602081830303815290604052611039565b925050506060610a76610a368c61118c565b600d600e610a438c61118c565b610a4c8c61118c565b610a558a61118c565b610a5e8a61118c565b89604051602001610a10989796959493929190612502565b905080604051602001610a899190612817565b604051602081830303815290604052995050505050505050505092915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166105ae576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610b033390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006105f1836001600160a01b03841661122c565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610420565b610bfd813361127b565b50565b610c0a8282610aa9565b600082815260016020526040902061045c9082610b47565b610c2c82826112ee565b600082815260016020526040902061045c908261136d565b60006105f18383611382565b6000610420825490565b60006706f05b59d3b20000610c77670de0b6b3a76400008461285c565b1015610c9457610c8f670de0b6b3a764000083611d59565b610420565b610ca6670de0b6b3a764000083611d59565b610420906001612870565b600b54600090610cc2908390611d86565b610cce6103e885611d86565b10610cdb57506009610420565b600a54610ce9908390611d86565b610cf56103e885611d86565b10610d0257506008610420565b600954610d10908390611d86565b610d1c6103e885611d86565b10610d2957506007610420565b600854610d37908390611d86565b610d436103e885611d86565b10610d5057506006610420565b600754610d5e908390611d86565b610d6a6103e885611d86565b10610d7757506005610420565b600654610d85908390611d86565b610d916103e885611d86565b10610d9e57506004610420565b600554610dac908390611d86565b610db86103e885611d86565b10610dc557506003610420565b600454610dd3908390611d86565b610ddf6103e885611d86565b10610dec57506002610420565b600354610dfa908390611d86565b610e066103e885611d86565b10610e1357506001610420565b50600092915050565b60606011610e298461118c565b610e328461118c565b6012604051602001610e47949392919061289e565b604051602081830303815290604052905092915050565b60606000610e6b8361118c565b805190915060006003821115610e97576003610e88600184611da5565b610e929190611d59565b610e9a565b60005b90506000610ea960038461285c565b9050600080610eb88486612870565b67ffffffffffffffff811115610ed057610ed06117fe565b6040519080825280601f01601f191660200182016040528015610efa576020820181803683370190505b50905060005b8581101561102d578015801590610f175750838110155b8015610f2c575083610f2a60038361285c565b145b15610f9a57610f3a836128e5565b600c5490935060f81b826001610f508685612870565b610f5a9190611da5565b81518110610f6a57610f6a612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b868181518110610fac57610fac612888565b01602001517fff000000000000000000000000000000000000000000000000000000000000001682610fde8584612870565b81518110610fee57610fee612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611026816128e5565b9050610f00565b50979650505050505050565b6060815160000361105857505060408051602081019091526000815290565b60006040518060600160405280604081526020016129ae60409139905060006003845160026110879190612870565b6110919190611d59565b61109c906004611d86565b67ffffffffffffffff8111156110b4576110b46117fe565b6040519080825280601f01601f1916602001820160405280156110de576020820181803683370190505b509050600182016020820185865187015b8082101561114a576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f81168501518453506001830192506110ef565b5050600386510660018114611166576002811461117957611181565b603d6001830353603d6002830353611181565b603d60018303535b509195945050505050565b60606000611199836113ac565b600101905060008167ffffffffffffffff8111156111b9576111b96117fe565b6040519080825280601f01601f1916602001820160405280156111e3576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846111ed57509392505050565b600081815260018301602052604081205461127357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610420565b506000610420565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166105ae576112ac8161148e565b6112b78360206114a0565b6040516020016112c89291906128ff565b60408051601f198184030181529082905262461bcd60e51b825261059b9160040161196f565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156105ae576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006105f1836001600160a01b0384166116c9565b600082600001828154811061139957611399612888565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106113f5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611421576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061143f57662386f26fc10000830492506010015b6305f5e1008310611457576305f5e100830492506008015b612710831061146b57612710830492506004015b6064831061147d576064830492506002015b600a83106104205760010192915050565b60606104206001600160a01b03831660145b606060006114af836002611d86565b6114ba906002612870565b67ffffffffffffffff8111156114d2576114d26117fe565b6040519080825280601f01601f1916602001820160405280156114fc576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061153357611533612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061159657611596612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006115d2846002611d86565b6115dd906001612870565b90505b600181111561167a577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061161e5761161e612888565b1a60f81b82828151811061163457611634612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361167381612980565b90506115e0565b5083156105f15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161059b565b600081815260018301602052604081205480156117b25760006116ed600183611da5565b855490915060009061170190600190611da5565b905081811461176657600086600001828154811061172157611721612888565b906000526020600020015490508087600001848154811061174457611744612888565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061177757611777612997565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610420565b6000915050610420565b6000602082840312156117ce57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146105f157600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611837576118376117fe565b60405290565b60405160a0810167ffffffffffffffff81118282101715611837576118376117fe565b600082601f83011261187157600080fd5b813567ffffffffffffffff8082111561188c5761188c6117fe565b604051601f8301601f19908116603f011681019082821181831017156118b4576118b46117fe565b816040528381528660208588010111156118cd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156118ff57600080fd5b813567ffffffffffffffff81111561191657600080fd5b61192284828501611860565b949350505050565b60006020828403121561193c57600080fd5b5035919050565b60005b8381101561195e578181015183820152602001611946565b838111156106715750506000910152565b602081526000825180602084015261198e816040850160208701611943565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610bfd57600080fd5b600080604083850312156119ca57600080fd5b8235915060208301356119dc816119a2565b809150509250929050565b600080604083850312156119fa57600080fd5b50508035926020909101359150565b60008060408385031215611a1c57600080fd5b823567ffffffffffffffff80821115611a3457600080fd5b611a4086838701611860565b93506020850135915080821115611a5657600080fd5b50611a6385828601611860565b9150509250929050565b600060208284031215611a7f57600080fd5b81357fff00000000000000000000000000000000000000000000000000000000000000811681146105f157600080fd5b60008060408385031215611ac257600080fd5b8235611acd816119a2565b946020939093013593505050565b600181811c90821680611aef57607f821691505b602082108103611b0f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561045c57600081815260208120601f850160051c81016020861015611b3c5750805b601f850160051c820191505b81811015611b5b57828155600101611b48565b505050505050565b815167ffffffffffffffff811115611b7d57611b7d6117fe565b611b9181611b8b8454611adb565b84611b15565b602080601f831160018114611bc65760008415611bae5750858301515b600019600386901b1c1916600185901b178555611b5b565b600085815260208120601f198616915b82811015611bf557888601518255948401946001909101908401611bd6565b5085821015611c135787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8051611c2e816119a2565b919050565b600060408284031215611c4557600080fd5b611c4d611814565b9050815181526020820151602082015292915050565b805165ffffffffffff81168114611c2e57600080fd5b600081830360e0811215611c8c57600080fd5b611c9461183d565b6040821215611ca257600080fd5b611caa611814565b915083516bffffffffffffffffffffffff81168114611cc857600080fd5b82526020840151611cd8816119a2565b6020830152818152611ced8560408601611c33565b6020820152611cfe60808501611c23565b6040820152611d0f60a08501611c63565b6060820152611d2060c08501611c63565b6080820152949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611d6857611d68611d2d565b500490565b600060208284031215611d7f57600080fd5b5051919050565b6000816000190483118215151615611da057611da0611d43565b500290565b600082821015611db757611db7611d43565b500390565b60008154611dc981611adb565b60018281168015611de15760018114611df657611e25565b60ff1984168752821515830287019450611e25565b8560005260208060002060005b85811015611e1c5781548a820152908401908201611e03565b50505082870194505b5050505092915050565b7f3c7376672077696474683d2236363322206865696768743d223130383022207681527f696577626f783d223020302036363320313038302220786d6c6e733d2268747460208201527f703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a7860408201527f6c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c6960608201527f6e6b223e203c7374796c6520747970653d22746578742f637373223e2040666f60808201527f6e742d66616365207b20666f6e742d66616d696c793a2022506f7070696e732260a08201527f3b207372633a2075726c2800000000000000000000000000000000000000000060c08201526000611f4560cb830185611dbc565b7f2920666f726d61742822776f66663222293b207d2040666f6e742d666163652081527f7b20666f6e742d66616d696c793a2022506f7070696e73223b20666f6e742d7760208201527f65696768743a20626f6c643b207372633a2075726c28000000000000000000006040820152611fc16056820185611dbc565b7f2920666f726d61742822776f66663222293b207d2074657874207b20636f6c6f81527f723a233161316131613b20666f6e742d66616d696c793a506f7070696e732c2060208201527f73616e732d73657269663b20666f6e742d73697a653a32342e373370783b207d60408201527f202e646174615f7370616e207b20666f6e742d7765696768743a626f6c643b2060608201527f666f6e742d73697a653a33372e30397078207d202e746578745f626f74746f6d60808201527f202e696e666f5f7370616e207b20666f6e742d73697a653a2032382e3831707860a08201527f207d202e746578745f626f74746f6d202e646174615f7370616e207b20666f6e60c08201527f742d73697a653a2034332e32317078207d203c2f7374796c653e203c696d616760e08201527f65207072657365727665417370656374526174696f3d22784d6964594d6964206101008201527f736c696365222077696474683d223130302522206865696768743d22313030256101208201527f2220786c696e6b3a687265663d2200000000000000000000000000000000000061014082015261014e0195945050505050565b60008151612182818560208601611943565b9290920192915050565b6000875161219e818460208c01611943565b7f223e3c2f696d6167653e203c7465787420783d2232372e332220793d2235342e9083019081527f392220746578742d616e63686f723d2273746172742220636c6173733d22746560208201527f78745f746f70223e3c747370616e20636c6173733d22696e666f5f7370616e2260408201527f3e262333363b000000000000000000000000000000000000000000000000000060608201526122446066820189611dbc565b90507f3a203c2f747370616e3e3c747370616e20636c6173733d22646174615f73706181527f6e223e0000000000000000000000000000000000000000000000000000000000602082015286516122a2816023840160208b01611943565b7f3c2f747370616e3e3c2f746578743e203c7465787420783d223633352e372220602392909101918201527f793d2235342e392220746578742d616e63686f723d22656e642220636c61737360438201527f3d22746578745f746f70223e3c747370616e20636c6173733d22696e666f5f7360638201527f70616e223e4150523a203c2f747370616e3e3c747370616e20636c6173733d2260838201527f646174615f7370616e223e00000000000000000000000000000000000000000060a38201526124c661249d61249761246e61246861238160ae87018c612170565b7f253c2f747370616e3e3c2f746578743e203c7465787420783d223333312e352281527f20793d22313030312e39372220746578742d616e63686f723d226d6964646c6560208201527f2220636c6173733d22746578745f626f74746f6d223e3c747370616e20636c6160408201527f73733d22696e666f5f7370616e223e4541524e45443a203c2f747370616e3e3c60608201527f747370616e20636c6173733d22646174615f7370616e2220783d223333312e3560808201527f222064793d2235312e3835223e262333363b000000000000000000000000000060a082015260b20190565b89611dbc565b7f2000000000000000000000000000000000000000000000000000000000000000815260010190565b86612170565b7f3c2f747370616e3e3c2f746578743e203c2f7376673e00000000000000000000815260160190565b9998505050505050505050565b600083516124e5818460208801611943565b8351908301906124f9818360208801611943565b01949350505050565b7f7b226e616d65223a2250616e676f6c696e205374616b696e6720506f7369746981527f6f6e202300000000000000000000000000000000000000000000000000000000602082015260008951612560816024850160208e01611943565b7f222c226465736372697074696f6e223a22000000000000000000000000000000602491840191820152612597603582018b611dbc565b90507f222c2265787465726e616c5f75726c223a22000000000000000000000000000081526125c9601282018a611dbc565b90507f222c2261747472696275746573223a5b7b2274726169745f74797065223a224281527f616c616e6365222c2276616c7565223a0000000000000000000000000000000060208201528751612627816030840160208c01611943565b7f7d2c7b22646973706c61795f74797065223a2264617465222c2274726169745f603092909101918201527f74797065223a22456e7472792054696d65222c2276616c7565223a000000000060508201526128086127df61249761279061278a61271561270f61269a606b89018f612170565b7f7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f81527f76616c7565223a2239222c2274726169745f74797065223a2242616c616e636560208201527f204c6576656c222c2276616c7565223a00000000000000000000000000000000604082015260500190565b8c612170565b7f7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f81527f76616c7565223a2239222c2274726169745f74797065223a224475726174696f60208201527f6e204c6576656c222c2276616c7565223a000000000000000000000000000000604082015260510190565b89612170565b7f7d5d2c22696d616765223a22646174613a696d6167652f7376672b786d6c3b6281527f61736536342c0000000000000000000000000000000000000000000000000000602082015260260190565b7f227d0a0000000000000000000000000000000000000000000000000000000000815260030190565b9b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161284f81601d850160208701611943565b91909101601d0192915050565b60008261286b5761286b611d2d565b500690565b6000821982111561288357612883611d43565b500190565b634e487b7160e01b600052603260045260246000fd5b60006128aa8287611dbc565b85516128ba818360208a01611943565b85519101906128cd818360208901611943565b6128d981830186611dbc565b98975050505050505050565b600060001982036128f8576128f8611d43565b5060010190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612937816017850160208801611943565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612974816028840160208801611943565b01602801949350505050565b60008161298f5761298f611d43565b506000190190565b634e487b7160e01b600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122049786221452f415f2738edc8b34fa7099e95e61b0fe0950de9faa2ed450e53fb64736f6c634300080f003368747470733a2f2f7374617469632e70616e676f6c696e2e65786368616e67652f70616e677561726469616e2f68747470733a2f2f666f6e74732e677374617469632e636f6d2f732f706f7070696e732f7632302f707869457970386b76384a48674656724a4a666563672e776f66663254686973204e46542070657270657475616c6c792072656365697665732073686172652066726f6d2074686520726576656e75652067656e6572617465642062792050616e676f6c696e2e20546865207368617265206f662074686520706f736974696f6e20697320706f7369746976656c7920636f7272656c6174656420746f20697473207374616b65642062616c616e636520616e64207374616b696e67206475726174696f6e2e68747470733a2f2f6170702e70616e676f6c696e2e65786368616e67652f232f7374616b65763268747470733a2f2f666f6e74732e677374617469632e636f6d2f732f706f7070696e732f7632302f707869427970386b76384a48674656724c437a375a31786c46512e776f666632","opcodes":"PUSH2 0x1C0 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x80 SWAP1 DUP2 MSTORE PUSH2 0xA9E PUSH1 0xA0 MSTORE PUSH2 0x1CDD PUSH1 0xC0 MSTORE PUSH2 0x4E76 PUSH1 0xE0 MSTORE PUSH2 0xD546 PUSH2 0x100 MSTORE PUSH3 0x243BD PUSH2 0x120 MSTORE PUSH3 0x627E5 PUSH2 0x140 MSTORE PUSH3 0x10BBB9 PUSH2 0x160 MSTORE PUSH3 0x2D7C5E PUSH2 0x180 MSTORE PUSH3 0x7BA4AC PUSH2 0x1A0 MSTORE PUSH3 0x5D SWAP1 PUSH1 0x2 SWAP1 PUSH1 0xA PUSH3 0x361 JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2C OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0xAA DUP1 DUP3 MSTORE PUSH3 0x30D6 PUSH1 0x20 DUP4 ADD CODECOPY PUSH1 0xD SWAP1 PUSH3 0x93 SWAP1 DUP3 PUSH3 0x466 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x3180 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0xE SWAP1 PUSH3 0xBD SWAP1 DUP3 PUSH3 0x466 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x44 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x3092 PUSH1 0x44 SWAP2 CODECOPY PUSH1 0xF SWAP1 PUSH3 0xE7 SWAP1 DUP3 PUSH3 0x466 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x48 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x31A7 PUSH1 0x48 SWAP2 CODECOPY PUSH1 0x10 SWAP1 PUSH3 0x111 SWAP1 DUP3 PUSH3 0x466 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2D DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x3065 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x11 SWAP1 PUSH3 0x13B SWAP1 DUP3 PUSH3 0x466 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP2 MSTORE PUSH4 0x2E706E67 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x12 SWAP1 PUSH3 0x166 SWAP1 DUP3 PUSH3 0x466 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH3 0x174 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x31EF CODESIZE SUB DUP1 PUSH3 0x31EF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x197 SWAP2 PUSH3 0x532 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1B8 PUSH1 0x0 DUP4 PUSH3 0x20B JUMP JUMPDEST PUSH3 0x1E4 PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 DUP4 PUSH3 0x20B JUMP JUMPDEST PUSH1 0x20 DUP2 MLOAD GT ISZERO PUSH3 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x13 PUSH3 0x202 DUP3 DUP3 PUSH3 0x466 JUMP JUMPDEST POP POP POP PUSH3 0x632 JUMP JUMPDEST PUSH3 0x222 DUP3 DUP3 PUSH3 0x24E PUSH1 0x20 SHL PUSH3 0xAA9 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH3 0x249 SWAP2 DUP4 SWAP1 PUSH3 0xB47 PUSH3 0x2EF DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x2EB JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x2AA CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x306 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0x30F JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x358 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x309 JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x309 JUMP JUMPDEST DUP3 PUSH1 0xA DUP2 ADD SWAP3 DUP3 ISZERO PUSH3 0x399 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x399 JUMPI DUP3 MLOAD DUP3 SWAP1 PUSH3 0xFFFFFF AND SWAP1 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x375 JUMP JUMPDEST POP PUSH3 0x3A7 SWAP3 SWAP2 POP PUSH3 0x3AB JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x3A7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3AC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x3ED JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x40E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x249 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x43D JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x45E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x449 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x482 JUMPI PUSH3 0x482 PUSH3 0x3C2 JUMP JUMPDEST PUSH3 0x49A DUP2 PUSH3 0x493 DUP5 SLOAD PUSH3 0x3D8 JUMP JUMPDEST DUP5 PUSH3 0x414 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x4D2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x4B9 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x45E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x503 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x4E2 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x522 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x546 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 DUP2 ADD MLOAD SWAP2 SWAP4 POP SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x5A8 JUMPI PUSH3 0x5A8 PUSH3 0x3C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x5D3 JUMPI PUSH3 0x5D3 PUSH3 0x3C2 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH3 0x610 JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH3 0x5F1 JUMP JUMPDEST DUP3 DUP5 GT ISZERO PUSH3 0x622 JUMPI PUSH1 0x0 DUP7 DUP5 DUP4 ADD ADD MSTORE JUMPDEST DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A23 DUP1 PUSH3 0x642 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 0x198 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9010D07C GT PUSH2 0xE3 JUMPI DUP1 PUSH4 0xA9EF3AEB GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xE89E6075 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xE9DC6375 EQ PUSH2 0x3B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA9EF3AEB EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xC4E1750B EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x96A3BE7A GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x96A3BE7A EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0xA33EB2EB EQ PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x90C3F38F EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x364A9B5F GT PUSH2 0x145 JUMPI DUP1 PUSH4 0x4C226E9B GT PUSH2 0x11F JUMPI DUP1 PUSH4 0x4C226E9B EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x7284E416 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x7B61C320 EQ PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x364A9B5F EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x38841782 EQ PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x176 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0x2C9EA242 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x19D JUMPI DUP1 PUSH4 0xDDE8D27 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x1BF671C2 EQ PUSH2 0x203 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0 PUSH2 0x1AB CALLDATASIZE PUSH1 0x4 PUSH2 0x17BC JUMP JUMPDEST PUSH2 0x3CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xC SLOAD PUSH2 0x1D2 SWAP1 PUSH1 0xF8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x216 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0x18ED JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH2 0x226 CALLDATASIZE PUSH1 0x4 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x251 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x196F JUMP JUMPDEST PUSH2 0x216 PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0x4EF JUMP JUMPDEST PUSH2 0x251 PUSH2 0x514 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0x521 JUMP JUMPDEST PUSH2 0x23B PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x5B2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x5BF JUMP JUMPDEST PUSH2 0x251 PUSH2 0x5CC JUMP JUMPDEST PUSH2 0x2DE PUSH2 0x2D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x19E7 JUMP JUMPDEST PUSH2 0x5D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x216 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x18ED JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH2 0x1B0 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x34E CALLDATASIZE PUSH1 0x4 PUSH2 0x1A09 JUMP JUMPDEST PUSH2 0x62E JUMP JUMPDEST PUSH2 0x23B PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x369 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A6D JUMP JUMPDEST PUSH2 0x677 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x6B8 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x384 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A09 JUMP JUMPDEST PUSH2 0x6C5 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x397 CALLDATASIZE PUSH1 0x4 PUSH2 0x192A JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x3AA CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0x71F JUMP JUMPDEST PUSH2 0x251 PUSH2 0x744 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1AAF JUMP JUMPDEST PUSH2 0x751 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x420 JUMPI POP PUSH2 0x420 DUP3 PUSH2 0xB5C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x450 DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xE PUSH2 0x45C DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x49A SWAP1 PUSH2 0x1ADB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4BC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4E7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4CA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x50A DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH2 0x45C DUP4 DUP4 PUSH2 0xC00 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x5A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5AE DUP3 DUP3 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x13 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x5F1 SWAP1 DUP4 PUSH2 0xC44 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x622 DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xD PUSH2 0x45C DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x658 DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xF PUSH2 0x664 DUP5 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP PUSH1 0x10 PUSH2 0x671 DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x6A1 DUP2 PUSH2 0xBF3 JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xF8 SWAP3 SWAP1 SWAP3 SHR SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x6EF DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x11 PUSH2 0x6FB DUP5 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP PUSH1 0x12 PUSH2 0x671 DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x420 SWAP1 PUSH2 0xC50 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x73A DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH2 0x45C DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x99FBAB8800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x99FBAB88 SWAP1 PUSH1 0x24 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D9 SWAP2 SWAP1 PUSH2 0x1C79 JUMP JUMPDEST MLOAD DUP1 MLOAD SWAP1 SWAP2 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO PUSH2 0x813 JUMPI DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x80E SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x815 JUMP JUMPDEST TIMESTAMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ISZERO PUSH2 0x8CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x468CC41E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP1 PUSH4 0x468CC41E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x87F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A3 SWAP2 SWAP1 PUSH2 0x1D6D JUMP JUMPDEST PUSH2 0x8B1 SWAP1 PUSH4 0x1E13380 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x8BC SWAP1 PUSH1 0x64 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x8C6 SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x8CE JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x949 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x496CEA98 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x903 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x920 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x944 SWAP2 SWAP1 PUSH2 0x1D6D JUMP JUMPDEST PUSH2 0xC5A JUMP JUMPDEST SWAP1 POP PUSH2 0x954 DUP5 PUSH2 0xC5A JUMP JUMPDEST SWAP4 POP PUSH1 0x0 PUSH2 0x964 DUP6 PUSH2 0x194 PUSH2 0xCB1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x97D PUSH2 0x975 DUP7 TIMESTAMP PUSH2 0x1DA5 JUMP JUMPDEST PUSH2 0x2580 PUSH2 0xCB1 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 PUSH1 0x0 PUSH1 0xF PUSH1 0x10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x998 SWAP3 SWAP2 SWAP1 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0x9B5 DUP6 DUP6 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x13 PUSH2 0x9C0 DUP12 PUSH2 0xE5E JUMP JUMPDEST PUSH2 0x9C9 DUP11 PUSH2 0xE5E JUMP JUMPDEST PUSH1 0x13 PUSH2 0x9D4 DUP12 PUSH2 0xE5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9E9 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x218C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xA24 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA10 SWAP3 SWAP2 SWAP1 PUSH2 0x24D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1039 JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0x60 PUSH2 0xA76 PUSH2 0xA36 DUP13 PUSH2 0x118C JUMP JUMPDEST PUSH1 0xD PUSH1 0xE PUSH2 0xA43 DUP13 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xA4C DUP13 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xA55 DUP11 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xA5E DUP11 PUSH2 0x118C JUMP JUMPDEST DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2502 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA89 SWAP2 SWAP1 PUSH2 0x2817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP10 POP POP POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5AE JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xB03 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x122C JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x420 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0x420 JUMP JUMPDEST PUSH2 0xBFD DUP2 CALLER PUSH2 0x127B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xC0A DUP3 DUP3 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x45C SWAP1 DUP3 PUSH2 0xB47 JUMP JUMPDEST PUSH2 0xC2C DUP3 DUP3 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x45C SWAP1 DUP3 PUSH2 0x136D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F1 DUP4 DUP4 PUSH2 0x1382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x420 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0x6F05B59D3B20000 PUSH2 0xC77 PUSH8 0xDE0B6B3A7640000 DUP5 PUSH2 0x285C JUMP JUMPDEST LT ISZERO PUSH2 0xC94 JUMPI PUSH2 0xC8F PUSH8 0xDE0B6B3A7640000 DUP4 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x420 JUMP JUMPDEST PUSH2 0xCA6 PUSH8 0xDE0B6B3A7640000 DUP4 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x420 SWAP1 PUSH1 0x1 PUSH2 0x2870 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 PUSH2 0xCC2 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xCCE PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xCDB JUMPI POP PUSH1 0x9 PUSH2 0x420 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xCE9 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xCF5 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD02 JUMPI POP PUSH1 0x8 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0xD10 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD1C PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD29 JUMPI POP PUSH1 0x7 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0xD37 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD43 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD50 JUMPI POP PUSH1 0x6 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0xD5E SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD6A PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD77 JUMPI POP PUSH1 0x5 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0xD85 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD91 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD9E JUMPI POP PUSH1 0x4 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0xDAC SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xDB8 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xDC5 JUMPI POP PUSH1 0x3 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0xDD3 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xDDF PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xDEC JUMPI POP PUSH1 0x2 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xDFA SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xE06 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xE13 JUMPI POP PUSH1 0x1 PUSH2 0x420 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x11 PUSH2 0xE29 DUP5 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xE32 DUP5 PUSH2 0x118C JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE47 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x289E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xE6B DUP4 PUSH2 0x118C JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0xE97 JUMPI PUSH1 0x3 PUSH2 0xE88 PUSH1 0x1 DUP5 PUSH2 0x1DA5 JUMP JUMPDEST PUSH2 0xE92 SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0xE9A JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEA9 PUSH1 0x3 DUP5 PUSH2 0x285C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0xEB8 DUP5 DUP7 PUSH2 0x2870 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xED0 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEFA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x102D JUMPI DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0xF17 JUMPI POP DUP4 DUP2 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xF2C JUMPI POP DUP4 PUSH2 0xF2A PUSH1 0x3 DUP4 PUSH2 0x285C JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xF9A JUMPI PUSH2 0xF3A DUP4 PUSH2 0x28E5 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 SWAP4 POP PUSH1 0xF8 SHL DUP3 PUSH1 0x1 PUSH2 0xF50 DUP7 DUP6 PUSH2 0x2870 JUMP JUMPDEST PUSH2 0xF5A SWAP2 SWAP1 PUSH2 0x1DA5 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xF6A JUMPI PUSH2 0xF6A PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xFAC JUMPI PUSH2 0xFAC PUSH2 0x2888 JUMP JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND DUP3 PUSH2 0xFDE DUP6 DUP5 PUSH2 0x2870 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xFEE JUMPI PUSH2 0xFEE PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x1026 DUP2 PUSH2 0x28E5 JUMP JUMPDEST SWAP1 POP PUSH2 0xF00 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x1058 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29AE PUSH1 0x40 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP5 MLOAD PUSH1 0x2 PUSH2 0x1087 SWAP2 SWAP1 PUSH2 0x2870 JUMP JUMPDEST PUSH2 0x1091 SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x109C SWAP1 PUSH1 0x4 PUSH2 0x1D86 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10B4 JUMPI PUSH2 0x10B4 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x10DE JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP3 ADD PUSH1 0x20 DUP3 ADD DUP6 DUP7 MLOAD DUP8 ADD JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x114A JUMPI PUSH1 0x3 DUP3 ADD SWAP2 POP DUP2 MLOAD PUSH1 0x3F DUP2 PUSH1 0x12 SHR AND DUP6 ADD MLOAD DUP5 MSTORE8 PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0x3F DUP2 PUSH1 0xC SHR AND DUP6 ADD MLOAD DUP5 MSTORE8 PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0x3F DUP2 PUSH1 0x6 SHR AND DUP6 ADD MLOAD DUP5 MSTORE8 PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0x3F DUP2 AND DUP6 ADD MLOAD DUP5 MSTORE8 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x10EF JUMP JUMPDEST POP POP PUSH1 0x3 DUP7 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x1166 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1179 JUMPI PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP4 SUB MSTORE8 PUSH1 0x3D PUSH1 0x2 DUP4 SUB MSTORE8 PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP4 SUB MSTORE8 JUMPDEST POP SWAP2 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1199 DUP4 PUSH2 0x13AC JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11B9 JUMPI PUSH2 0x11B9 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x11ED JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1273 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x420 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5AE JUMPI PUSH2 0x12AC DUP2 PUSH2 0x148E JUMP JUMPDEST PUSH2 0x12B7 DUP4 PUSH1 0x20 PUSH2 0x14A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12C8 SWAP3 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x59B SWAP2 PUSH1 0x4 ADD PUSH2 0x196F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x5AE JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x16C9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1399 JUMPI PUSH2 0x1399 PUSH2 0x2888 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x13F5 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1421 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x143F JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1457 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x146B JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x147D JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x420 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x420 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x14AF DUP4 PUSH1 0x2 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x14BA SWAP1 PUSH1 0x2 PUSH2 0x2870 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14D2 JUMPI PUSH2 0x14D2 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14FC JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1533 JUMPI PUSH2 0x1533 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1596 JUMPI PUSH2 0x1596 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x15D2 DUP5 PUSH1 0x2 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x15DD SWAP1 PUSH1 0x1 PUSH2 0x2870 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x167A JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x161E JUMPI PUSH2 0x161E PUSH2 0x2888 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1634 JUMPI PUSH2 0x1634 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1673 DUP2 PUSH2 0x2980 JUMP JUMPDEST SWAP1 POP PUSH2 0x15E0 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x17B2 JUMPI PUSH1 0x0 PUSH2 0x16ED PUSH1 0x1 DUP4 PUSH2 0x1DA5 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1701 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1DA5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1766 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1721 JUMPI PUSH2 0x1721 PUSH2 0x2888 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1744 JUMPI PUSH2 0x1744 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x1777 JUMPI PUSH2 0x1777 PUSH2 0x2997 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x420 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x420 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1837 JUMPI PUSH2 0x1837 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1837 JUMPI PUSH2 0x1837 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x188C JUMPI PUSH2 0x188C PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x18B4 JUMPI PUSH2 0x18B4 PUSH2 0x17FE JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x18CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1922 DUP5 DUP3 DUP6 ADD PUSH2 0x1860 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x193C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x195E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1946 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x671 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x198E DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x19DC DUP2 PUSH2 0x19A2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1A34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A40 DUP7 DUP4 DUP8 ADD PUSH2 0x1860 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A63 DUP6 DUP3 DUP7 ADD PUSH2 0x1860 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1ACD DUP2 PUSH2 0x19A2 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1AEF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1B0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x45C JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1B3C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B5B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B48 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B7D JUMPI PUSH2 0x1B7D PUSH2 0x17FE JUMP JUMPDEST PUSH2 0x1B91 DUP2 PUSH2 0x1B8B DUP5 SLOAD PUSH2 0x1ADB JUMP JUMPDEST DUP5 PUSH2 0x1B15 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1BAE JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1B5B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BF5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x1BD6 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1C13 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C2E DUP2 PUSH2 0x19A2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C4D PUSH2 0x1814 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH6 0xFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB PUSH1 0xE0 DUP2 SLT ISZERO PUSH2 0x1C8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C94 PUSH2 0x183D JUMP JUMPDEST PUSH1 0x40 DUP3 SLT ISZERO PUSH2 0x1CA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CAA PUSH2 0x1814 JUMP JUMPDEST SWAP2 POP DUP4 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1CC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x1CD8 DUP2 PUSH2 0x19A2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x1CED DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x1C33 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1CFE PUSH1 0x80 DUP6 ADD PUSH2 0x1C23 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1D0F PUSH1 0xA0 DUP6 ADD PUSH2 0x1C63 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x1D20 PUSH1 0xC0 DUP6 ADD PUSH2 0x1C63 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D68 JUMPI PUSH2 0x1D68 PUSH2 0x1D2D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1DA0 JUMPI PUSH2 0x1DA0 PUSH2 0x1D43 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1DB7 JUMPI PUSH2 0x1DB7 PUSH2 0x1D43 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x1DC9 DUP2 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x1DF6 JUMPI PUSH2 0x1E25 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x1E25 JUMP JUMPDEST DUP6 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1E1C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x1E03 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x3C7376672077696474683D2236363322206865696768743D2231303830222076 DUP2 MSTORE PUSH32 0x696577626F783D223020302036363320313038302220786D6C6E733D22687474 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x703A2F2F7777772E77332E6F72672F323030302F7376672220786D6C6E733A78 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x6C696E6B3D22687474703A2F2F7777772E77332E6F72672F313939392F786C69 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x6E6B223E203C7374796C6520747970653D22746578742F637373223E2040666F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x6E742D66616365207B20666F6E742D66616D696C793A2022506F7070696E7322 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x3B207372633A2075726C28000000000000000000000000000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1F45 PUSH1 0xCB DUP4 ADD DUP6 PUSH2 0x1DBC JUMP JUMPDEST PUSH32 0x2920666F726D61742822776F66663222293B207D2040666F6E742D6661636520 DUP2 MSTORE PUSH32 0x7B20666F6E742D66616D696C793A2022506F7070696E73223B20666F6E742D77 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x65696768743A20626F6C643B207372633A2075726C2800000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1FC1 PUSH1 0x56 DUP3 ADD DUP6 PUSH2 0x1DBC JUMP JUMPDEST PUSH32 0x2920666F726D61742822776F66663222293B207D2074657874207B20636F6C6F DUP2 MSTORE PUSH32 0x723A233161316131613B20666F6E742D66616D696C793A506F7070696E732C20 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x73616E732D73657269663B20666F6E742D73697A653A32342E373370783B207D PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x202E646174615F7370616E207B20666F6E742D7765696768743A626F6C643B20 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x666F6E742D73697A653A33372E30397078207D202E746578745F626F74746F6D PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x202E696E666F5F7370616E207B20666F6E742D73697A653A2032382E38317078 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x207D202E746578745F626F74746F6D202E646174615F7370616E207B20666F6E PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x742D73697A653A2034332E32317078207D203C2F7374796C653E203C696D6167 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x65207072657365727665417370656374526174696F3D22784D6964594D696420 PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0x736C696365222077696474683D223130302522206865696768743D2231303025 PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x2220786C696E6B3A687265663D22000000000000000000000000000000000000 PUSH2 0x140 DUP3 ADD MSTORE PUSH2 0x14E ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH2 0x2182 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP8 MLOAD PUSH2 0x219E DUP2 DUP5 PUSH1 0x20 DUP13 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x223E3C2F696D6167653E203C7465787420783D2232372E332220793D2235342E SWAP1 DUP4 ADD SWAP1 DUP2 MSTORE PUSH32 0x392220746578742D616E63686F723D2273746172742220636C6173733D227465 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x78745F746F70223E3C747370616E20636C6173733D22696E666F5F7370616E22 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x3E262333363B0000000000000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2244 PUSH1 0x66 DUP3 ADD DUP10 PUSH2 0x1DBC JUMP JUMPDEST SWAP1 POP PUSH32 0x3A203C2F747370616E3E3C747370616E20636C6173733D22646174615F737061 DUP2 MSTORE PUSH32 0x6E223E0000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP7 MLOAD PUSH2 0x22A2 DUP2 PUSH1 0x23 DUP5 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x3C2F747370616E3E3C2F746578743E203C7465787420783D223633352E372220 PUSH1 0x23 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x793D2235342E392220746578742D616E63686F723D22656E642220636C617373 PUSH1 0x43 DUP3 ADD MSTORE PUSH32 0x3D22746578745F746F70223E3C747370616E20636C6173733D22696E666F5F73 PUSH1 0x63 DUP3 ADD MSTORE PUSH32 0x70616E223E4150523A203C2F747370616E3E3C747370616E20636C6173733D22 PUSH1 0x83 DUP3 ADD MSTORE PUSH32 0x646174615F7370616E223E000000000000000000000000000000000000000000 PUSH1 0xA3 DUP3 ADD MSTORE PUSH2 0x24C6 PUSH2 0x249D PUSH2 0x2497 PUSH2 0x246E PUSH2 0x2468 PUSH2 0x2381 PUSH1 0xAE DUP8 ADD DUP13 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x253C2F747370616E3E3C2F746578743E203C7465787420783D223333312E3522 DUP2 MSTORE PUSH32 0x20793D22313030312E39372220746578742D616E63686F723D226D6964646C65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2220636C6173733D22746578745F626F74746F6D223E3C747370616E20636C61 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x73733D22696E666F5F7370616E223E4541524E45443A203C2F747370616E3E3C PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x747370616E20636C6173733D22646174615F7370616E2220783D223333312E35 PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x222064793D2235312E3835223E262333363B0000000000000000000000000000 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xB2 ADD SWAP1 JUMP JUMPDEST DUP10 PUSH2 0x1DBC JUMP JUMPDEST PUSH32 0x2000000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP7 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x3C2F747370616E3E3C2F746578743E203C2F7376673E00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP1 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x24E5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x24F9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x7B226E616D65223A2250616E676F6C696E205374616B696E6720506F73697469 DUP2 MSTORE PUSH32 0x6F6E202300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 DUP10 MLOAD PUSH2 0x2560 DUP2 PUSH1 0x24 DUP6 ADD PUSH1 0x20 DUP15 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x222C226465736372697074696F6E223A22000000000000000000000000000000 PUSH1 0x24 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE PUSH2 0x2597 PUSH1 0x35 DUP3 ADD DUP12 PUSH2 0x1DBC JUMP JUMPDEST SWAP1 POP PUSH32 0x222C2265787465726E616C5F75726C223A220000000000000000000000000000 DUP2 MSTORE PUSH2 0x25C9 PUSH1 0x12 DUP3 ADD DUP11 PUSH2 0x1DBC JUMP JUMPDEST SWAP1 POP PUSH32 0x222C2261747472696275746573223A5B7B2274726169745F74797065223A2242 DUP2 MSTORE PUSH32 0x616C616E6365222C2276616C7565223A00000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP8 MLOAD PUSH2 0x2627 DUP2 PUSH1 0x30 DUP5 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x7D2C7B22646973706C61795F74797065223A2264617465222C2274726169745F PUSH1 0x30 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x74797065223A22456E7472792054696D65222C2276616C7565223A0000000000 PUSH1 0x50 DUP3 ADD MSTORE PUSH2 0x2808 PUSH2 0x27DF PUSH2 0x2497 PUSH2 0x2790 PUSH2 0x278A PUSH2 0x2715 PUSH2 0x270F PUSH2 0x269A PUSH1 0x6B DUP10 ADD DUP16 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x7D2C7B22646973706C61795F74797065223A226E756D626572222C226D61785F DUP2 MSTORE PUSH32 0x76616C7565223A2239222C2274726169745F74797065223A2242616C616E6365 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x204C6576656C222C2276616C7565223A00000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x50 ADD SWAP1 JUMP JUMPDEST DUP13 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x7D2C7B22646973706C61795F74797065223A226E756D626572222C226D61785F DUP2 MSTORE PUSH32 0x76616C7565223A2239222C2274726169745F74797065223A224475726174696F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E204C6576656C222C2276616C7565223A000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x51 ADD SWAP1 JUMP JUMPDEST DUP10 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x7D5D2C22696D616765223A22646174613A696D6167652F7376672B786D6C3B62 DUP2 MSTORE PUSH32 0x61736536342C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x26 ADD SWAP1 JUMP JUMPDEST PUSH32 0x227D0A0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x3 ADD SWAP1 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x284F DUP2 PUSH1 0x1D DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1D ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x286B JUMPI PUSH2 0x286B PUSH2 0x1D2D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2883 JUMPI PUSH2 0x2883 PUSH2 0x1D43 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x28AA DUP3 DUP8 PUSH2 0x1DBC JUMP JUMPDEST DUP6 MLOAD PUSH2 0x28BA DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH2 0x1943 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x28CD DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH2 0x28D9 DUP2 DUP4 ADD DUP7 PUSH2 0x1DBC JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x28F8 JUMPI PUSH2 0x28F8 PUSH2 0x1D43 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x2937 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2974 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x298F JUMPI PUSH2 0x298F PUSH2 0x1D43 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID COINBASE TIMESTAMP NUMBER DIFFICULTY GASLIMIT CHAINID SELFBALANCE BASEFEE 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2FA2646970667358 0x22 SLT KECCAK256 0x49 PUSH25 0x6221452F415F2738EDC8B34FA7099E95E61B0FE0950DE9FAA2 0xED GASLIMIT 0xE MSTORE8 0xFB PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER PUSH9 0x747470733A2F2F7374 PUSH2 0x7469 PUSH4 0x2E70616E PUSH8 0x6F6C696E2E657863 PUSH9 0x616E67652F70616E67 PUSH22 0x61726469616E2F68747470733A2F2F666F6E74732E67 PUSH20 0x74617469632E636F6D2F732F706F7070696E732F PUSH23 0x32302F707869457970386B76384A48674656724A4A6665 PUSH4 0x672E776F PUSH7 0x66325468697320 0x4E CHAINID SLOAD KECCAK256 PUSH17 0x657270657475616C6C7920726563656976 PUSH6 0x732073686172 PUSH6 0x2066726F6D20 PUSH21 0x686520726576656E75652067656E65726174656420 PUSH3 0x792050 PUSH2 0x6E67 PUSH16 0x6C696E2E20546865207368617265206F PUSH7 0x2074686520706F PUSH20 0x6974696F6E20697320706F7369746976656C7920 PUSH4 0x6F727265 PUSH13 0x6174656420746F206974732073 PUSH21 0x616B65642062616C616E636520616E64207374616B PUSH10 0x6E67206475726174696F PUSH15 0x2E68747470733A2F2F6170702E7061 PUSH15 0x676F6C696E2E65786368616E67652F 0x23 0x2F PUSH20 0x74616B65763268747470733A2F2F666F6E74732E PUSH8 0x7374617469632E63 PUSH16 0x6D2F732F706F7070696E732F7632302F PUSH17 0x7869427970386B76384A48674656724C43 PUSH27 0x375A31786C46512E776F6666320000000000000000000000000000 ","sourceMap":"1128:115:54:-:0;964:8519;1128:115;-1:-1:-1;964:8519:54;1128:115;;;1165:5;1128:115;;1172:5;1128:115;;1179:6;1128:115;;1187:6;1128:115;;1195:7;1128:115;;1204:7;1128:115;;1213:8;1128:115;;1223:8;1128:115;;1233:8;1128:115;;;;;;;;:::i;:::-;-1:-1:-1;1303:37:54;;;-1:-1:-1;;1303:37:54;;;;;1347:209;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1563:69;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1639:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1756:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1874:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1957:37:54;;;;;;;;;;;;-1:-1:-1;;;1957:37:54;;;;;;;;;;:::i;:::-;;2035:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2114:22:54;;2106:31;;;;;;2148:40;2072:4:0;2179:8:54;2148:10;:40::i;:::-;2199:35;1095:26;2225:8;2199:10;:35::i;:::-;2285:2;2259:14;2253:28;:34;;2245:43;;;;;;2299:11;:28;2313:14;2299:11;:28;:::i;:::-;;2035:300;;964:8519;;1978:166:1;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106:18;;;;:12;:18;;;;;;;;:31;;2129:7;;2106:22;;;;;:31;;:::i;:::-;;1978:166;;:::o;7461:233:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7539:149;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;:::-;8383:57;;8297:150;;;;;:::o;2206:404::-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;964:8519:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;964:8519:54;;;-1:-1:-1;964:8519:54;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:127:60;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:60;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:60;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:60;;;2580:26;2531:89;-1:-1:-1;;1335:1:60;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:60;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:60;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:60;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:60:o;2735:1254::-;2824:6;2832;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2927:16;;-1:-1:-1;;;;;2972:31:60;;2962:42;;2952:70;;3018:1;3015;3008:12;2952:70;3065:2;3096:18;;;3090:25;3041:5;;-1:-1:-1;3065:2:60;-1:-1:-1;;;;;3164:14:60;;;3161:34;;;3191:1;3188;3181:12;3161:34;3229:6;3218:9;3214:22;3204:32;;3274:7;3267:4;3263:2;3259:13;3255:27;3245:55;;3296:1;3293;3286:12;3245:55;3325:2;3319:9;3347:2;3343;3340:10;3337:36;;;3353:18;;:::i;:::-;3428:2;3422:9;3396:2;3482:13;;-1:-1:-1;;3478:22:60;;;3502:2;3474:31;3470:40;3458:53;;;3526:18;;;3546:22;;;3523:46;3520:72;;;3572:18;;:::i;:::-;3612:10;3608:2;3601:22;3647:2;3639:6;3632:18;3687:7;3682:2;3677;3673;3669:11;3665:20;3662:33;3659:53;;;3708:1;3705;3698:12;3659:53;3730:1;3721:10;;3740:129;3754:2;3751:1;3748:9;3740:129;;;3842:10;;;3838:19;;3832:26;3811:14;;;3807:23;;3800:59;3765:10;;;;3740:129;;;3887:2;3884:1;3881:9;3878:80;;;3946:1;3941:2;3936;3928:6;3924:15;3920:24;3913:35;3878:80;3977:6;3967:16;;;;;;;;2735:1254;;;;;:::o;:::-;964:8519:54;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_27":{"entryPoint":null,"id":27,"parameterSlots":0,"returnSlots":0},"@METADATA_ROLE_17451":{"entryPoint":null,"id":17451,"parameterSlots":0,"returnSlots":0},"@_add_8447":{"entryPoint":4652,"id":8447,"parameterSlots":2,"returnSlots":1},"@_at_8581":{"entryPoint":4994,"id":8581,"parameterSlots":2,"returnSlots":1},"@_checkRole_131":{"entryPoint":4731,"id":131,"parameterSlots":2,"returnSlots":0},"@_checkRole_92":{"entryPoint":3059,"id":92,"parameterSlots":1,"returnSlots":0},"@_contains_8550":{"entryPoint":null,"id":8550,"parameterSlots":2,"returnSlots":1},"@_grantRole_283":{"entryPoint":2729,"id":283,"parameterSlots":2,"returnSlots":0},"@_grantRole_415":{"entryPoint":3072,"id":415,"parameterSlots":2,"returnSlots":0},"@_length_8564":{"entryPoint":null,"id":8564,"parameterSlots":1,"returnSlots":1},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_remove_8531":{"entryPoint":5833,"id":8531,"parameterSlots":2,"returnSlots":1},"@_revokeRole_314":{"entryPoint":4846,"id":314,"parameterSlots":2,"returnSlots":0},"@_revokeRole_439":{"entryPoint":3106,"id":439,"parameterSlots":2,"returnSlots":0},"@addThousandSeparator_17916":{"entryPoint":3678,"id":17916,"parameterSlots":1,"returnSlots":1},"@add_8747":{"entryPoint":2887,"id":8747,"parameterSlots":2,"returnSlots":1},"@at_8843":{"entryPoint":3140,"id":8843,"parameterSlots":2,"returnSlots":1},"@boldFontUri_17484":{"entryPoint":1300,"id":17484,"parameterSlots":0,"returnSlots":0},"@description_17475":{"entryPoint":1471,"id":17475,"parameterSlots":0,"returnSlots":0},"@encode_4663":{"entryPoint":4153,"id":4663,"parameterSlots":1,"returnSlots":1},"@externalUri_17478":{"entryPoint":1860,"id":17478,"parameterSlots":0,"returnSlots":0},"@getExponent_18061":{"entryPoint":3249,"id":18061,"parameterSlots":2,"returnSlots":1},"@getImageUri_17941":{"entryPoint":3612,"id":17941,"parameterSlots":2,"returnSlots":1},"@getRoleAdmin_146":{"entryPoint":null,"id":146,"parameterSlots":1,"returnSlots":1},"@getRoleMemberCount_391":{"entryPoint":1800,"id":391,"parameterSlots":1,"returnSlots":1},"@getRoleMember_375":{"entryPoint":1497,"id":375,"parameterSlots":2,"returnSlots":1},"@grantRole_166":{"entryPoint":1263,"id":166,"parameterSlots":2,"returnSlots":0},"@hasRole_79":{"entryPoint":null,"id":79,"parameterSlots":2,"returnSlots":1},"@imageBaseUri_17487":{"entryPoint":1121,"id":17487,"parameterSlots":0,"returnSlots":0},"@imageExtension_17490":{"entryPoint":1720,"id":17490,"parameterSlots":0,"returnSlots":0},"@length_8816":{"entryPoint":3152,"id":8816,"parameterSlots":1,"returnSlots":1},"@log10_6690":{"entryPoint":5036,"id":6690,"parameterSlots":1,"returnSlots":1},"@parseEther_18086":{"entryPoint":3162,"id":18086,"parameterSlots":1,"returnSlots":1},"@regularFontUri_17481":{"entryPoint":1458,"id":17481,"parameterSlots":0,"returnSlots":0},"@remove_8774":{"entryPoint":4973,"id":8774,"parameterSlots":2,"returnSlots":1},"@renounceRole_209":{"entryPoint":1313,"id":209,"parameterSlots":2,"returnSlots":0},"@revokeRole_186":{"entryPoint":1823,"id":186,"parameterSlots":2,"returnSlots":0},"@setDescription_17559":{"entryPoint":1528,"id":17559,"parameterSlots":1,"returnSlots":0},"@setExternalUri_17572":{"entryPoint":1062,"id":17572,"parameterSlots":1,"returnSlots":0},"@setFont_17591":{"entryPoint":1582,"id":17591,"parameterSlots":2,"returnSlots":0},"@setImage_17610":{"entryPoint":1733,"id":17610,"parameterSlots":2,"returnSlots":0},"@setThousandSeparator_17546":{"entryPoint":1655,"id":17546,"parameterSlots":1,"returnSlots":0},"@supportsInterface_356":{"entryPoint":970,"id":356,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5975":{"entryPoint":null,"id":5975,"parameterSlots":1,"returnSlots":1},"@supportsInterface_60":{"entryPoint":2908,"id":60,"parameterSlots":1,"returnSlots":1},"@thousandSeparator_17472":{"entryPoint":null,"id":17472,"parameterSlots":0,"returnSlots":0},"@toHexString_4914":{"entryPoint":5280,"id":4914,"parameterSlots":2,"returnSlots":1},"@toHexString_4934":{"entryPoint":5262,"id":4934,"parameterSlots":1,"returnSlots":1},"@toString_4818":{"entryPoint":4492,"id":4818,"parameterSlots":1,"returnSlots":1},"@tokenSymbol_17492":{"entryPoint":1484,"id":17492,"parameterSlots":0,"returnSlots":0},"@tokenURI_17806":{"entryPoint":1873,"id":17806,"parameterSlots":2,"returnSlots":1},"abi_decode_string":{"entryPoint":6240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_RewardSummations_fromMemory":{"entryPoint":7219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes1":{"entryPoint":6765,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":6442,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":6583,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_uint256":{"entryPoint":6631,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":6076,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IPangolinStakingPositions_$17441t_uint256":{"entryPoint":6831,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":6381,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr":{"entryPoint":6665,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_Position_$17418_memory_ptr_fromMemory":{"entryPoint":7289,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":7533,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint160_fromMemory":{"entryPoint":7203,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint48_fromMemory":{"entryPoint":7267,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_string":{"entryPoint":8560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_storage":{"entryPoint":7612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_stringliteral":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_16b4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_19ab":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_2ca4":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_681a":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_71fb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_stringliteral_c7dd":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9427,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_126e987cb53e9e978d2b6808a31a5dabcc9ade817848aa8224230df7b024f7a1_t_string_storage_t_stringliteral_86751ac112c8bd0ae01ed6f5f965b45154e9a942a13b0461fee321be26fab98c_t_string_memory_ptr_t_stringliteral_637d8234fbae871b6717a67ca5e765d25997fab608e6f7d402a8517d1b2934d3_t_string_memory_ptr_t_stringliteral_71fbda23d91b84717b91e7e4d3c431d4704a76fb8430203edf0acff8b0d9b2b9_t_string_storage_t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a_t_string_memory_ptr_t_stringliteral_7607d31c6a4a9d8a907bf0a596a0b66f726b0ae204d30d513f71769ba03a9586__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8588,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr_t_string_memory_ptr_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10398,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_92dbaf40f9706d2b597b386be95e10fa691cc1efcd1ea5168aeb9a5b1a0617e7_t_string_memory_ptr_t_stringliteral_4c216c0cacb2979ab2fa64169618dff639cb413b3341193391c2734a2cc9c17d_t_string_storage_t_stringliteral_183a274fb9786dd6ae964fc99afc6a718b130a0fb2dc308fd55c8ad4e85e406f_t_string_storage_t_stringliteral_b829c54deee6024f4fa91ed5017266784331ef97933f654b85db88fe01baaf8d_t_string_memory_ptr_t_stringliteral_d50fcf646cea104ad238e6de7b6827a2b6606ec72e8db9322fccb4f5a07d1e58_t_string_memory_ptr_t_stringliteral_2ca42eadce1df16387bc81ad68fab938e98dd01c0b7bc001f3e1e14d11329c9d_t_string_memory_ptr_t_stringliteral_19ab5e81ebf345e2bd2ab6dc40a164c9472240a793cc475733cdb36ff503bd27_t_string_memory_ptr_t_stringliteral_c7dd93b963919fee8b26c45310fc9a39dced1698a9189a666fe49aaeb2a476b4_t_string_memory_ptr_t_stringliteral_16b4dd963f5e31b977c360b753d919414d2417f3859f98a1987c53bd5d752167__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9474,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10263,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10495,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_ec3b898d1750454430826289f081b24a57051cc258a4f2a50d9b65e96410f989_t_string_storage_t_stringliteral_85bb1728d9d30adc45f34d75d3b5ae3a82445483cf22e70449812b9c25089bcf_t_string_storage_t_stringliteral_7ddfc767b89a5297b7bc6b4077a7181152d7e4a2ac6cb5e988b4f3c73f8c2065__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":7727,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes1__to_t_bytes1__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6511,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6164,"id":null,"parameterSlots":0,"returnSlots":1},"allocate_memory_2917":{"entryPoint":6205,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10352,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":7513,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7558,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":7589,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":6933,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":7011,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory":{"entryPoint":6467,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":10624,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":6875,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":10469,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":10332,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":7491,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":7469,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":10647,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":10376,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6142,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":6562,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:26469:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"83:263:60","statements":[{"body":{"nodeType":"YulBlock","src":"129:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"138:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"141:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"131:6:60"},"nodeType":"YulFunctionCall","src":"131:12:60"},"nodeType":"YulExpressionStatement","src":"131:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"104:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"113:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:60"},"nodeType":"YulFunctionCall","src":"100:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"125:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"96:3:60"},"nodeType":"YulFunctionCall","src":"96:32:60"},"nodeType":"YulIf","src":"93:52:60"},{"nodeType":"YulVariableDeclaration","src":"154:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"180:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"167:12:60"},"nodeType":"YulFunctionCall","src":"167:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"158:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"300:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:60"},"nodeType":"YulFunctionCall","src":"302:12:60"},"nodeType":"YulExpressionStatement","src":"302:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"212:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"230:66:60","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"219:3:60"},"nodeType":"YulFunctionCall","src":"219:78:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"209:2:60"},"nodeType":"YulFunctionCall","src":"209:89:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"202:6:60"},"nodeType":"YulFunctionCall","src":"202:97:60"},"nodeType":"YulIf","src":"199:117:60"},{"nodeType":"YulAssignment","src":"325:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"335:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"325:6:60"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"49:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"60:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"72:6:60","type":""}],"src":"14:332:60"},{"body":{"nodeType":"YulBlock","src":"446:92:60","statements":[{"nodeType":"YulAssignment","src":"456:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"468:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"479:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"464:3:60"},"nodeType":"YulFunctionCall","src":"464:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"456:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"498:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"523:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"516:6:60"},"nodeType":"YulFunctionCall","src":"516:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"509:6:60"},"nodeType":"YulFunctionCall","src":"509:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"491:6:60"},"nodeType":"YulFunctionCall","src":"491:41:60"},"nodeType":"YulExpressionStatement","src":"491:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"415:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"426:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"437:4:60","type":""}],"src":"351:187:60"},{"body":{"nodeType":"YulBlock","src":"642:149:60","statements":[{"nodeType":"YulAssignment","src":"652:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"664:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"675:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"660:3:60"},"nodeType":"YulFunctionCall","src":"660:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"652:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"694:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"709:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"717:66:60","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"705:3:60"},"nodeType":"YulFunctionCall","src":"705:79:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"687:6:60"},"nodeType":"YulFunctionCall","src":"687:98:60"},"nodeType":"YulExpressionStatement","src":"687:98:60"}]},"name":"abi_encode_tuple_t_bytes1__to_t_bytes1__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"611:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"622:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"633:4:60","type":""}],"src":"543:248:60"},{"body":{"nodeType":"YulBlock","src":"828:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"845:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"848:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"838:6:60"},"nodeType":"YulFunctionCall","src":"838:88:60"},"nodeType":"YulExpressionStatement","src":"838:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"942:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"945:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"935:6:60"},"nodeType":"YulFunctionCall","src":"935:15:60"},"nodeType":"YulExpressionStatement","src":"935:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"966:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"969:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"959:6:60"},"nodeType":"YulFunctionCall","src":"959:15:60"},"nodeType":"YulExpressionStatement","src":"959:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"796:184:60"},{"body":{"nodeType":"YulBlock","src":"1026:211:60","statements":[{"nodeType":"YulAssignment","src":"1036:21:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1052:4:60","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1046:5:60"},"nodeType":"YulFunctionCall","src":"1046:11:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1036:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1066:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1088:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1096:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1084:3:60"},"nodeType":"YulFunctionCall","src":"1084:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1070:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1176:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1178:16:60"},"nodeType":"YulFunctionCall","src":"1178:18:60"},"nodeType":"YulExpressionStatement","src":"1178:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1119:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1131:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1116:2:60"},"nodeType":"YulFunctionCall","src":"1116:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1155:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1167:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1152:2:60"},"nodeType":"YulFunctionCall","src":"1152:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1113:2:60"},"nodeType":"YulFunctionCall","src":"1113:62:60"},"nodeType":"YulIf","src":"1110:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1214:4:60","type":"","value":"0x40"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1220:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1207:6:60"},"nodeType":"YulFunctionCall","src":"1207:24:60"},"nodeType":"YulExpressionStatement","src":"1207:24:60"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1015:6:60","type":""}],"src":"985:252:60"},{"body":{"nodeType":"YulBlock","src":"1288:207:60","statements":[{"nodeType":"YulAssignment","src":"1298:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1314:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1308:5:60"},"nodeType":"YulFunctionCall","src":"1308:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1298:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1326:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1348:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1356:4:60","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1344:3:60"},"nodeType":"YulFunctionCall","src":"1344:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1330:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1436:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1438:16:60"},"nodeType":"YulFunctionCall","src":"1438:18:60"},"nodeType":"YulExpressionStatement","src":"1438:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1379:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1391:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1376:2:60"},"nodeType":"YulFunctionCall","src":"1376:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1415:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1427:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1412:2:60"},"nodeType":"YulFunctionCall","src":"1412:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1373:2:60"},"nodeType":"YulFunctionCall","src":"1373:62:60"},"nodeType":"YulIf","src":"1370:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1474:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1478:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1467:6:60"},"nodeType":"YulFunctionCall","src":"1467:22:60"},"nodeType":"YulExpressionStatement","src":"1467:22:60"}]},"name":"allocate_memory_2917","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1277:6:60","type":""}],"src":"1242:253:60"},{"body":{"nodeType":"YulBlock","src":"1553:725:60","statements":[{"body":{"nodeType":"YulBlock","src":"1602:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1611:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1614:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1604:6:60"},"nodeType":"YulFunctionCall","src":"1604:12:60"},"nodeType":"YulExpressionStatement","src":"1604:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1581:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"1589:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1577:3:60"},"nodeType":"YulFunctionCall","src":"1577:17:60"},{"name":"end","nodeType":"YulIdentifier","src":"1596:3:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1573:3:60"},"nodeType":"YulFunctionCall","src":"1573:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1566:6:60"},"nodeType":"YulFunctionCall","src":"1566:35:60"},"nodeType":"YulIf","src":"1563:55:60"},{"nodeType":"YulVariableDeclaration","src":"1627:30:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1650:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1637:12:60"},"nodeType":"YulFunctionCall","src":"1637:20:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1631:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1666:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1676:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1670:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1717:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1719:16:60"},"nodeType":"YulFunctionCall","src":"1719:18:60"},"nodeType":"YulExpressionStatement","src":"1719:18:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1709:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1713:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1706:2:60"},"nodeType":"YulFunctionCall","src":"1706:10:60"},"nodeType":"YulIf","src":"1703:36:60"},{"nodeType":"YulVariableDeclaration","src":"1748:76:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1758:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1752:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1833:23:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1853:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1847:5:60"},"nodeType":"YulFunctionCall","src":"1847:9:60"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1837:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1865:71:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1887:6:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1911:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"1915:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1907:3:60"},"nodeType":"YulFunctionCall","src":"1907:13:60"},{"name":"_3","nodeType":"YulIdentifier","src":"1922:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1903:3:60"},"nodeType":"YulFunctionCall","src":"1903:22:60"},{"kind":"number","nodeType":"YulLiteral","src":"1927:2:60","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1899:3:60"},"nodeType":"YulFunctionCall","src":"1899:31:60"},{"name":"_3","nodeType":"YulIdentifier","src":"1932:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1895:3:60"},"nodeType":"YulFunctionCall","src":"1895:40:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1883:3:60"},"nodeType":"YulFunctionCall","src":"1883:53:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1869:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1995:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1997:16:60"},"nodeType":"YulFunctionCall","src":"1997:18:60"},"nodeType":"YulExpressionStatement","src":"1997:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1954:10:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1966:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1951:2:60"},"nodeType":"YulFunctionCall","src":"1951:18:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1974:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1986:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1971:2:60"},"nodeType":"YulFunctionCall","src":"1971:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1948:2:60"},"nodeType":"YulFunctionCall","src":"1948:46:60"},"nodeType":"YulIf","src":"1945:72:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2033:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2037:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2026:6:60"},"nodeType":"YulFunctionCall","src":"2026:22:60"},"nodeType":"YulExpressionStatement","src":"2026:22:60"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2064:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2072:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2057:6:60"},"nodeType":"YulFunctionCall","src":"2057:18:60"},"nodeType":"YulExpressionStatement","src":"2057:18:60"},{"body":{"nodeType":"YulBlock","src":"2123:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2132:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2135:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2125:6:60"},"nodeType":"YulFunctionCall","src":"2125:12:60"},"nodeType":"YulExpressionStatement","src":"2125:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2098:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2106:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2094:3:60"},"nodeType":"YulFunctionCall","src":"2094:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"2111:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2090:3:60"},"nodeType":"YulFunctionCall","src":"2090:26:60"},{"name":"end","nodeType":"YulIdentifier","src":"2118:3:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2087:2:60"},"nodeType":"YulFunctionCall","src":"2087:35:60"},"nodeType":"YulIf","src":"2084:55:60"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2165:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2173:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2161:3:60"},"nodeType":"YulFunctionCall","src":"2161:17:60"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2184:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2192:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2180:3:60"},"nodeType":"YulFunctionCall","src":"2180:17:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2199:2:60"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2148:12:60"},"nodeType":"YulFunctionCall","src":"2148:54:60"},"nodeType":"YulExpressionStatement","src":"2148:54:60"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2226:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2234:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2222:3:60"},"nodeType":"YulFunctionCall","src":"2222:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"2239:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2218:3:60"},"nodeType":"YulFunctionCall","src":"2218:26:60"},{"kind":"number","nodeType":"YulLiteral","src":"2246:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2211:6:60"},"nodeType":"YulFunctionCall","src":"2211:37:60"},"nodeType":"YulExpressionStatement","src":"2211:37:60"},{"nodeType":"YulAssignment","src":"2257:15:60","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2266:6:60"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2257:5:60"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1527:6:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"1535:3:60","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1543:5:60","type":""}],"src":"1500:778:60"},{"body":{"nodeType":"YulBlock","src":"2363:242:60","statements":[{"body":{"nodeType":"YulBlock","src":"2409:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2418:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2421:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2411:6:60"},"nodeType":"YulFunctionCall","src":"2411:12:60"},"nodeType":"YulExpressionStatement","src":"2411:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2384:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2380:3:60"},"nodeType":"YulFunctionCall","src":"2380:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2405:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2376:3:60"},"nodeType":"YulFunctionCall","src":"2376:32:60"},"nodeType":"YulIf","src":"2373:52:60"},{"nodeType":"YulVariableDeclaration","src":"2434:37:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2461:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2448:12:60"},"nodeType":"YulFunctionCall","src":"2448:23:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2438:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2514:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2523:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2526:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2516:6:60"},"nodeType":"YulFunctionCall","src":"2516:12:60"},"nodeType":"YulExpressionStatement","src":"2516:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2486:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"2494:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2483:2:60"},"nodeType":"YulFunctionCall","src":"2483:30:60"},"nodeType":"YulIf","src":"2480:50:60"},{"nodeType":"YulAssignment","src":"2539:60:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2571:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"2582:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2567:3:60"},"nodeType":"YulFunctionCall","src":"2567:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2591:7:60"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"2549:17:60"},"nodeType":"YulFunctionCall","src":"2549:50:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2539:6:60"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2329:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2340:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2352:6:60","type":""}],"src":"2283:322:60"},{"body":{"nodeType":"YulBlock","src":"2680:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"2726:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2735:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2738:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2728:6:60"},"nodeType":"YulFunctionCall","src":"2728:12:60"},"nodeType":"YulExpressionStatement","src":"2728:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2701:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"2710:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2697:3:60"},"nodeType":"YulFunctionCall","src":"2697:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"2722:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2693:3:60"},"nodeType":"YulFunctionCall","src":"2693:32:60"},"nodeType":"YulIf","src":"2690:52:60"},{"nodeType":"YulAssignment","src":"2751:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2774:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2761:12:60"},"nodeType":"YulFunctionCall","src":"2761:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2751:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2646:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2657:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2669:6:60","type":""}],"src":"2610:180:60"},{"body":{"nodeType":"YulBlock","src":"2896:76:60","statements":[{"nodeType":"YulAssignment","src":"2906:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2918:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2929:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2914:3:60"},"nodeType":"YulFunctionCall","src":"2914:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2906:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2948:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"2959:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2941:6:60"},"nodeType":"YulFunctionCall","src":"2941:25:60"},"nodeType":"YulExpressionStatement","src":"2941:25:60"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2865:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2876:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2887:4:60","type":""}],"src":"2795:177:60"},{"body":{"nodeType":"YulBlock","src":"3030:205:60","statements":[{"nodeType":"YulVariableDeclaration","src":"3040:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"3049:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3044:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"3109:63:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3134:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"3139:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3130:3:60"},"nodeType":"YulFunctionCall","src":"3130:11:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3153:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"3158:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3149:3:60"},"nodeType":"YulFunctionCall","src":"3149:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3143:5:60"},"nodeType":"YulFunctionCall","src":"3143:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3123:6:60"},"nodeType":"YulFunctionCall","src":"3123:39:60"},"nodeType":"YulExpressionStatement","src":"3123:39:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3070:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"3073:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3067:2:60"},"nodeType":"YulFunctionCall","src":"3067:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3081:19:60","statements":[{"nodeType":"YulAssignment","src":"3083:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3092:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"3095:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3088:3:60"},"nodeType":"YulFunctionCall","src":"3088:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3083:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"3063:3:60","statements":[]},"src":"3059:113:60"},{"body":{"nodeType":"YulBlock","src":"3198:31:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3211:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"3216:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3207:3:60"},"nodeType":"YulFunctionCall","src":"3207:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"3225:1:60","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3200:6:60"},"nodeType":"YulFunctionCall","src":"3200:27:60"},"nodeType":"YulExpressionStatement","src":"3200:27:60"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3187:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"3190:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3184:2:60"},"nodeType":"YulFunctionCall","src":"3184:13:60"},"nodeType":"YulIf","src":"3181:48:60"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3008:3:60","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3013:3:60","type":""},{"name":"length","nodeType":"YulTypedName","src":"3018:6:60","type":""}],"src":"2977:258:60"},{"body":{"nodeType":"YulBlock","src":"3361:321:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3378:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3389:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3371:6:60"},"nodeType":"YulFunctionCall","src":"3371:21:60"},"nodeType":"YulExpressionStatement","src":"3371:21:60"},{"nodeType":"YulVariableDeclaration","src":"3401:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3421:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3415:5:60"},"nodeType":"YulFunctionCall","src":"3415:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3405:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3448:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3459:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3444:3:60"},"nodeType":"YulFunctionCall","src":"3444:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"3464:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3437:6:60"},"nodeType":"YulFunctionCall","src":"3437:34:60"},"nodeType":"YulExpressionStatement","src":"3437:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3506:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3514:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3502:3:60"},"nodeType":"YulFunctionCall","src":"3502:15:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3523:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3534:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3519:3:60"},"nodeType":"YulFunctionCall","src":"3519:18:60"},{"name":"length","nodeType":"YulIdentifier","src":"3539:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3480:21:60"},"nodeType":"YulFunctionCall","src":"3480:66:60"},"nodeType":"YulExpressionStatement","src":"3480:66:60"},{"nodeType":"YulAssignment","src":"3555:121:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3571:9:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3590:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3598:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3586:3:60"},"nodeType":"YulFunctionCall","src":"3586:15:60"},{"kind":"number","nodeType":"YulLiteral","src":"3603:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3582:3:60"},"nodeType":"YulFunctionCall","src":"3582:88:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3567:3:60"},"nodeType":"YulFunctionCall","src":"3567:104:60"},{"kind":"number","nodeType":"YulLiteral","src":"3673:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3563:3:60"},"nodeType":"YulFunctionCall","src":"3563:113:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3555:4:60"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3330:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3341:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3352:4:60","type":""}],"src":"3240:442:60"},{"body":{"nodeType":"YulBlock","src":"3732:109:60","statements":[{"body":{"nodeType":"YulBlock","src":"3819:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3828:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3831:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3821:6:60"},"nodeType":"YulFunctionCall","src":"3821:12:60"},"nodeType":"YulExpressionStatement","src":"3821:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3755:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3766:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"3773:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3762:3:60"},"nodeType":"YulFunctionCall","src":"3762:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3752:2:60"},"nodeType":"YulFunctionCall","src":"3752:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3745:6:60"},"nodeType":"YulFunctionCall","src":"3745:73:60"},"nodeType":"YulIf","src":"3742:93:60"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3721:5:60","type":""}],"src":"3687:154:60"},{"body":{"nodeType":"YulBlock","src":"3933:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"3979:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3988:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3991:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3981:6:60"},"nodeType":"YulFunctionCall","src":"3981:12:60"},"nodeType":"YulExpressionStatement","src":"3981:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3954:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3963:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3950:3:60"},"nodeType":"YulFunctionCall","src":"3950:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3975:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3946:3:60"},"nodeType":"YulFunctionCall","src":"3946:32:60"},"nodeType":"YulIf","src":"3943:52:60"},{"nodeType":"YulAssignment","src":"4004:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4027:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4014:12:60"},"nodeType":"YulFunctionCall","src":"4014:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4004:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"4046:45:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4076:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4087:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4072:3:60"},"nodeType":"YulFunctionCall","src":"4072:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4059:12:60"},"nodeType":"YulFunctionCall","src":"4059:32:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4050:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4125:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4100:24:60"},"nodeType":"YulFunctionCall","src":"4100:31:60"},"nodeType":"YulExpressionStatement","src":"4100:31:60"},{"nodeType":"YulAssignment","src":"4140:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"4150:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4140:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3891:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3902:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3914:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3922:6:60","type":""}],"src":"3846:315:60"},{"body":{"nodeType":"YulBlock","src":"4253:161:60","statements":[{"body":{"nodeType":"YulBlock","src":"4299:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4308:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4311:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4301:6:60"},"nodeType":"YulFunctionCall","src":"4301:12:60"},"nodeType":"YulExpressionStatement","src":"4301:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4274:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4270:3:60"},"nodeType":"YulFunctionCall","src":"4270:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4295:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4266:3:60"},"nodeType":"YulFunctionCall","src":"4266:32:60"},"nodeType":"YulIf","src":"4263:52:60"},{"nodeType":"YulAssignment","src":"4324:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4347:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4334:12:60"},"nodeType":"YulFunctionCall","src":"4334:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4324:6:60"}]},{"nodeType":"YulAssignment","src":"4366:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:60"},"nodeType":"YulFunctionCall","src":"4389:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4376:12:60"},"nodeType":"YulFunctionCall","src":"4376:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4366:6:60"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4211:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4222:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4234:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4242:6:60","type":""}],"src":"4166:248:60"},{"body":{"nodeType":"YulBlock","src":"4520:125:60","statements":[{"nodeType":"YulAssignment","src":"4530:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4542:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4553:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4538:3:60"},"nodeType":"YulFunctionCall","src":"4538:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4530:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4572:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4587:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"4595:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4583:3:60"},"nodeType":"YulFunctionCall","src":"4583:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4565:6:60"},"nodeType":"YulFunctionCall","src":"4565:74:60"},"nodeType":"YulExpressionStatement","src":"4565:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4489:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4500:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4511:4:60","type":""}],"src":"4419:226:60"},{"body":{"nodeType":"YulBlock","src":"4757:436:60","statements":[{"body":{"nodeType":"YulBlock","src":"4803:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4812:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4815:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4805:6:60"},"nodeType":"YulFunctionCall","src":"4805:12:60"},"nodeType":"YulExpressionStatement","src":"4805:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4778:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4787:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4774:3:60"},"nodeType":"YulFunctionCall","src":"4774:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4799:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4770:3:60"},"nodeType":"YulFunctionCall","src":"4770:32:60"},"nodeType":"YulIf","src":"4767:52:60"},{"nodeType":"YulVariableDeclaration","src":"4828:37:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4855:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4842:12:60"},"nodeType":"YulFunctionCall","src":"4842:23:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4832:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4874:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"4884:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4878:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"4929:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4938:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4941:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4931:6:60"},"nodeType":"YulFunctionCall","src":"4931:12:60"},"nodeType":"YulExpressionStatement","src":"4931:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4917:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"4925:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4914:2:60"},"nodeType":"YulFunctionCall","src":"4914:14:60"},"nodeType":"YulIf","src":"4911:34:60"},{"nodeType":"YulAssignment","src":"4954:60:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4986:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"4997:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4982:3:60"},"nodeType":"YulFunctionCall","src":"4982:22:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5006:7:60"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"4964:17:60"},"nodeType":"YulFunctionCall","src":"4964:50:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4954:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"5023:48:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5056:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5067:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5052:3:60"},"nodeType":"YulFunctionCall","src":"5052:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5039:12:60"},"nodeType":"YulFunctionCall","src":"5039:32:60"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5027:8:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5100:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5109:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5112:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5102:6:60"},"nodeType":"YulFunctionCall","src":"5102:12:60"},"nodeType":"YulExpressionStatement","src":"5102:12:60"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5086:8:60"},{"name":"_1","nodeType":"YulIdentifier","src":"5096:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5083:2:60"},"nodeType":"YulFunctionCall","src":"5083:16:60"},"nodeType":"YulIf","src":"5080:36:60"},{"nodeType":"YulAssignment","src":"5125:62:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5157:9:60"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5168:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5153:3:60"},"nodeType":"YulFunctionCall","src":"5153:24:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5179:7:60"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"5135:17:60"},"nodeType":"YulFunctionCall","src":"5135:52:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5125:6:60"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4715:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4726:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4738:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4746:6:60","type":""}],"src":"4650:543:60"},{"body":{"nodeType":"YulBlock","src":"5267:263:60","statements":[{"body":{"nodeType":"YulBlock","src":"5313:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5322:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5325:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5315:6:60"},"nodeType":"YulFunctionCall","src":"5315:12:60"},"nodeType":"YulExpressionStatement","src":"5315:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5288:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5297:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5284:3:60"},"nodeType":"YulFunctionCall","src":"5284:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5309:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5280:3:60"},"nodeType":"YulFunctionCall","src":"5280:32:60"},"nodeType":"YulIf","src":"5277:52:60"},{"nodeType":"YulVariableDeclaration","src":"5338:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5364:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5351:12:60"},"nodeType":"YulFunctionCall","src":"5351:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5342:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"5484:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5493:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5496:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5486:6:60"},"nodeType":"YulFunctionCall","src":"5486:12:60"},"nodeType":"YulExpressionStatement","src":"5486:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5396:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5407:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"5414:66:60","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5403:3:60"},"nodeType":"YulFunctionCall","src":"5403:78:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5393:2:60"},"nodeType":"YulFunctionCall","src":"5393:89:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5386:6:60"},"nodeType":"YulFunctionCall","src":"5386:97:60"},"nodeType":"YulIf","src":"5383:117:60"},{"nodeType":"YulAssignment","src":"5509:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"5519:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5509:6:60"}]}]},"name":"abi_decode_tuple_t_bytes1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5233:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5244:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5256:6:60","type":""}],"src":"5198:332:60"},{"body":{"nodeType":"YulBlock","src":"5636:76:60","statements":[{"nodeType":"YulAssignment","src":"5646:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5658:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5669:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5654:3:60"},"nodeType":"YulFunctionCall","src":"5654:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5646:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5688:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"5699:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5681:6:60"},"nodeType":"YulFunctionCall","src":"5681:25:60"},"nodeType":"YulExpressionStatement","src":"5681:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5605:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5616:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5627:4:60","type":""}],"src":"5535:177:60"},{"body":{"nodeType":"YulBlock","src":"5839:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"5885:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5894:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5897:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5887:6:60"},"nodeType":"YulFunctionCall","src":"5887:12:60"},"nodeType":"YulExpressionStatement","src":"5887:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5860:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"5869:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5856:3:60"},"nodeType":"YulFunctionCall","src":"5856:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"5881:2:60","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5852:3:60"},"nodeType":"YulFunctionCall","src":"5852:32:60"},"nodeType":"YulIf","src":"5849:52:60"},{"nodeType":"YulVariableDeclaration","src":"5910:36:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5936:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5923:12:60"},"nodeType":"YulFunctionCall","src":"5923:23:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5914:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5980:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5955:24:60"},"nodeType":"YulFunctionCall","src":"5955:31:60"},"nodeType":"YulExpressionStatement","src":"5955:31:60"},{"nodeType":"YulAssignment","src":"5995:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"6005:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5995:6:60"}]},{"nodeType":"YulAssignment","src":"6019:42:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6046:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6057:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6042:3:60"},"nodeType":"YulFunctionCall","src":"6042:18:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6029:12:60"},"nodeType":"YulFunctionCall","src":"6029:32:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6019:6:60"}]}]},"name":"abi_decode_tuple_t_contract$_IPangolinStakingPositions_$17441t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5797:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5808:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5820:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5828:6:60","type":""}],"src":"5717:350:60"},{"body":{"nodeType":"YulBlock","src":"6127:382:60","statements":[{"nodeType":"YulAssignment","src":"6137:22:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6151:1:60","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"6154:4:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6147:3:60"},"nodeType":"YulFunctionCall","src":"6147:12:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6137:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"6168:38:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6198:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"6204:1:60","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6194:3:60"},"nodeType":"YulFunctionCall","src":"6194:12:60"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6172:18:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6245:31:60","statements":[{"nodeType":"YulAssignment","src":"6247:27:60","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6261:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6269:4:60","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6257:3:60"},"nodeType":"YulFunctionCall","src":"6257:17:60"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6247:6:60"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6225:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6218:6:60"},"nodeType":"YulFunctionCall","src":"6218:26:60"},"nodeType":"YulIf","src":"6215:61:60"},{"body":{"nodeType":"YulBlock","src":"6335:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6356:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6359:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6349:6:60"},"nodeType":"YulFunctionCall","src":"6349:88:60"},"nodeType":"YulExpressionStatement","src":"6349:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6457:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6460:4:60","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6450:6:60"},"nodeType":"YulFunctionCall","src":"6450:15:60"},"nodeType":"YulExpressionStatement","src":"6450:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6485:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6488:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6478:6:60"},"nodeType":"YulFunctionCall","src":"6478:15:60"},"nodeType":"YulExpressionStatement","src":"6478:15:60"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6291:18:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6314:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"6322:2:60","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6311:2:60"},"nodeType":"YulFunctionCall","src":"6311:14:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6288:2:60"},"nodeType":"YulFunctionCall","src":"6288:38:60"},"nodeType":"YulIf","src":"6285:218:60"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"6107:4:60","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"6116:6:60","type":""}],"src":"6072:437:60"},{"body":{"nodeType":"YulBlock","src":"6570:65:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6587:1:60","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"6590:3:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6580:6:60"},"nodeType":"YulFunctionCall","src":"6580:14:60"},"nodeType":"YulExpressionStatement","src":"6580:14:60"},{"nodeType":"YulAssignment","src":"6603:26:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6621:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6624:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6611:9:60"},"nodeType":"YulFunctionCall","src":"6611:18:60"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"6603:4:60"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"6553:3:60","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"6561:4:60","type":""}],"src":"6514:121:60"},{"body":{"nodeType":"YulBlock","src":"6721:464:60","statements":[{"body":{"nodeType":"YulBlock","src":"6754:425:60","statements":[{"nodeType":"YulVariableDeclaration","src":"6768:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6778:1:60","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6772:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6799:2:60"},{"name":"array","nodeType":"YulIdentifier","src":"6803:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6792:6:60"},"nodeType":"YulFunctionCall","src":"6792:17:60"},"nodeType":"YulExpressionStatement","src":"6792:17:60"},{"nodeType":"YulVariableDeclaration","src":"6822:31:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6844:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"6848:4:60","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"6834:9:60"},"nodeType":"YulFunctionCall","src":"6834:19:60"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"6826:4:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6866:57:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6889:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6899:1:60","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"6906:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"6918:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6902:3:60"},"nodeType":"YulFunctionCall","src":"6902:19:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6895:3:60"},"nodeType":"YulFunctionCall","src":"6895:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6885:3:60"},"nodeType":"YulFunctionCall","src":"6885:38:60"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"6870:11:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6960:23:60","statements":[{"nodeType":"YulAssignment","src":"6962:19:60","value":{"name":"data","nodeType":"YulIdentifier","src":"6977:4:60"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"6962:11:60"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"6942:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"6954:4:60","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6939:2:60"},"nodeType":"YulFunctionCall","src":"6939:20:60"},"nodeType":"YulIf","src":"6936:47:60"},{"nodeType":"YulVariableDeclaration","src":"6996:41:60","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"7010:4:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7020:1:60","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"7027:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"7032:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7023:3:60"},"nodeType":"YulFunctionCall","src":"7023:12:60"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7016:3:60"},"nodeType":"YulFunctionCall","src":"7016:20:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7006:3:60"},"nodeType":"YulFunctionCall","src":"7006:31:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7000:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7050:24:60","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"7063:11:60"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"7054:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"7148:21:60","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"7157:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"7164:2:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7150:6:60"},"nodeType":"YulFunctionCall","src":"7150:17:60"},"nodeType":"YulExpressionStatement","src":"7150:17:60"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"7098:5:60"},{"name":"_2","nodeType":"YulIdentifier","src":"7105:2:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7095:2:60"},"nodeType":"YulFunctionCall","src":"7095:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7109:26:60","statements":[{"nodeType":"YulAssignment","src":"7111:22:60","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"7124:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"7131:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7120:3:60"},"nodeType":"YulFunctionCall","src":"7120:13:60"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"7111:5:60"}]}]},"pre":{"nodeType":"YulBlock","src":"7091:3:60","statements":[]},"src":"7087:82:60"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"6737:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"6742:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6734:2:60"},"nodeType":"YulFunctionCall","src":"6734:11:60"},"nodeType":"YulIf","src":"6731:448:60"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"6693:5:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"6700:3:60","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"6705:10:60","type":""}],"src":"6640:545:60"},{"body":{"nodeType":"YulBlock","src":"7275:141:60","statements":[{"nodeType":"YulAssignment","src":"7285:125:60","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"7300:4:60"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7318:1:60","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"7321:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7314:3:60"},"nodeType":"YulFunctionCall","src":"7314:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"7327:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7310:3:60"},"nodeType":"YulFunctionCall","src":"7310:84:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7306:3:60"},"nodeType":"YulFunctionCall","src":"7306:89:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7296:3:60"},"nodeType":"YulFunctionCall","src":"7296:100:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7402:1:60","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"7405:3:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7398:3:60"},"nodeType":"YulFunctionCall","src":"7398:11:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7293:2:60"},"nodeType":"YulFunctionCall","src":"7293:117:60"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"7285:4:60"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"7252:4:60","type":""},{"name":"len","nodeType":"YulTypedName","src":"7258:3:60","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"7266:4:60","type":""}],"src":"7190:226:60"},{"body":{"nodeType":"YulBlock","src":"7517:1375:60","statements":[{"nodeType":"YulVariableDeclaration","src":"7527:24:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7547:3:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7541:5:60"},"nodeType":"YulFunctionCall","src":"7541:10:60"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"7531:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"7594:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"7596:16:60"},"nodeType":"YulFunctionCall","src":"7596:18:60"},"nodeType":"YulExpressionStatement","src":"7596:18:60"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"7566:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7574:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7563:2:60"},"nodeType":"YulFunctionCall","src":"7563:30:60"},"nodeType":"YulIf","src":"7560:56:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"7669:4:60"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"7707:4:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"7701:5:60"},"nodeType":"YulFunctionCall","src":"7701:11:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"7675:25:60"},"nodeType":"YulFunctionCall","src":"7675:38:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"7715:6:60"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"7625:43:60"},"nodeType":"YulFunctionCall","src":"7625:97:60"},"nodeType":"YulExpressionStatement","src":"7625:97:60"},{"nodeType":"YulVariableDeclaration","src":"7731:18:60","value":{"kind":"number","nodeType":"YulLiteral","src":"7748:1:60","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"7735:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7758:23:60","value":{"kind":"number","nodeType":"YulLiteral","src":"7777:4:60","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"7762:11:60","type":""}]},{"nodeType":"YulAssignment","src":"7790:24:60","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"7803:11:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"7790:9:60"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"7860:775:60","statements":[{"nodeType":"YulVariableDeclaration","src":"7874:94:60","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"7893:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7901:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7889:3:60"},"nodeType":"YulFunctionCall","src":"7889:79:60"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"7878:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7981:49:60","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"8025:4:60"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"7995:29:60"},"nodeType":"YulFunctionCall","src":"7995:35:60"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"7985:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8043:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"8052:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"8047:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"8130:172:60","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"8155:6:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8173:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"8178:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8169:3:60"},"nodeType":"YulFunctionCall","src":"8169:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8163:5:60"},"nodeType":"YulFunctionCall","src":"8163:26:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8148:6:60"},"nodeType":"YulFunctionCall","src":"8148:42:60"},"nodeType":"YulExpressionStatement","src":"8148:42:60"},{"nodeType":"YulAssignment","src":"8207:24:60","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"8221:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"8229:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8217:3:60"},"nodeType":"YulFunctionCall","src":"8217:14:60"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"8207:6:60"}]},{"nodeType":"YulAssignment","src":"8248:40:60","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"8265:9:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"8276:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8261:3:60"},"nodeType":"YulFunctionCall","src":"8261:27:60"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"8248:9:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8077:1:60"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"8080:7:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8074:2:60"},"nodeType":"YulFunctionCall","src":"8074:14:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8089:28:60","statements":[{"nodeType":"YulAssignment","src":"8091:24:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8100:1:60"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"8103:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8096:3:60"},"nodeType":"YulFunctionCall","src":"8096:19:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"8091:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"8070:3:60","statements":[]},"src":"8066:236:60"},{"body":{"nodeType":"YulBlock","src":"8350:226:60","statements":[{"nodeType":"YulVariableDeclaration","src":"8368:43:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8395:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"8400:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8391:3:60"},"nodeType":"YulFunctionCall","src":"8391:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8385:5:60"},"nodeType":"YulFunctionCall","src":"8385:26:60"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"8372:9:60","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"8435:6:60"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"8447:9:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8474:1:60","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"8477:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8470:3:60"},"nodeType":"YulFunctionCall","src":"8470:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"8486:3:60","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8466:3:60"},"nodeType":"YulFunctionCall","src":"8466:24:60"},{"kind":"number","nodeType":"YulLiteral","src":"8492:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8462:3:60"},"nodeType":"YulFunctionCall","src":"8462:97:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8458:3:60"},"nodeType":"YulFunctionCall","src":"8458:102:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8443:3:60"},"nodeType":"YulFunctionCall","src":"8443:118:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8428:6:60"},"nodeType":"YulFunctionCall","src":"8428:134:60"},"nodeType":"YulExpressionStatement","src":"8428:134:60"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"8321:7:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"8330:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8318:2:60"},"nodeType":"YulFunctionCall","src":"8318:19:60"},"nodeType":"YulIf","src":"8315:261:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"8596:4:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8610:1:60","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"8613:6:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8606:3:60"},"nodeType":"YulFunctionCall","src":"8606:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"8622:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8602:3:60"},"nodeType":"YulFunctionCall","src":"8602:22:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8589:6:60"},"nodeType":"YulFunctionCall","src":"8589:36:60"},"nodeType":"YulExpressionStatement","src":"8589:36:60"}]},"nodeType":"YulCase","src":"7853:782:60","value":{"kind":"number","nodeType":"YulLiteral","src":"7858:1:60","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"8652:234:60","statements":[{"nodeType":"YulVariableDeclaration","src":"8666:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"8679:1:60","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8670:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"8715:67:60","statements":[{"nodeType":"YulAssignment","src":"8733:35:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8752:3:60"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"8757:9:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8748:3:60"},"nodeType":"YulFunctionCall","src":"8748:19:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8742:5:60"},"nodeType":"YulFunctionCall","src":"8742:26:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8733:5:60"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"8696:6:60"},"nodeType":"YulIf","src":"8693:89:60"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"8802:4:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8861:5:60"},{"name":"newLen","nodeType":"YulIdentifier","src":"8868:6:60"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"8808:52:60"},"nodeType":"YulFunctionCall","src":"8808:67:60"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8795:6:60"},"nodeType":"YulFunctionCall","src":"8795:81:60"},"nodeType":"YulExpressionStatement","src":"8795:81:60"}]},"nodeType":"YulCase","src":"8644:242:60","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"7833:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"7841:2:60","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7830:2:60"},"nodeType":"YulFunctionCall","src":"7830:14:60"},"nodeType":"YulSwitch","src":"7823:1063:60"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"7502:4:60","type":""},{"name":"src","nodeType":"YulTypedName","src":"7508:3:60","type":""}],"src":"7421:1471:60"},{"body":{"nodeType":"YulBlock","src":"9071:237:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9088:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9099:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9081:6:60"},"nodeType":"YulFunctionCall","src":"9081:21:60"},"nodeType":"YulExpressionStatement","src":"9081:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9122:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9133:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9118:3:60"},"nodeType":"YulFunctionCall","src":"9118:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"9138:2:60","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9111:6:60"},"nodeType":"YulFunctionCall","src":"9111:30:60"},"nodeType":"YulExpressionStatement","src":"9111:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9161:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9172:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9157:3:60"},"nodeType":"YulFunctionCall","src":"9157:18:60"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"9177:34:60","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9150:6:60"},"nodeType":"YulFunctionCall","src":"9150:62:60"},"nodeType":"YulExpressionStatement","src":"9150:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9232:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9243:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9228:3:60"},"nodeType":"YulFunctionCall","src":"9228:18:60"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"9248:17:60","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9221:6:60"},"nodeType":"YulFunctionCall","src":"9221:45:60"},"nodeType":"YulExpressionStatement","src":"9221:45:60"},{"nodeType":"YulAssignment","src":"9275:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9287:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9298:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9283:3:60"},"nodeType":"YulFunctionCall","src":"9283:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9275:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9048:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9062:4:60","type":""}],"src":"8897:411:60"},{"body":{"nodeType":"YulBlock","src":"9373:78:60","statements":[{"nodeType":"YulAssignment","src":"9383:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9398:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9392:5:60"},"nodeType":"YulFunctionCall","src":"9392:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9383:5:60"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9439:5:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9414:24:60"},"nodeType":"YulFunctionCall","src":"9414:31:60"},"nodeType":"YulExpressionStatement","src":"9414:31:60"}]},"name":"abi_decode_uint160_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"9352:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"9363:5:60","type":""}],"src":"9313:138:60"},{"body":{"nodeType":"YulBlock","src":"9540:199:60","statements":[{"body":{"nodeType":"YulBlock","src":"9584:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9593:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9596:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9586:6:60"},"nodeType":"YulFunctionCall","src":"9586:12:60"},"nodeType":"YulExpressionStatement","src":"9586:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"9561:3:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"9566:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9557:3:60"},"nodeType":"YulFunctionCall","src":"9557:19:60"},{"kind":"number","nodeType":"YulLiteral","src":"9578:4:60","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9553:3:60"},"nodeType":"YulFunctionCall","src":"9553:30:60"},"nodeType":"YulIf","src":"9550:50:60"},{"nodeType":"YulAssignment","src":"9609:26:60","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9618:15:60"},"nodeType":"YulFunctionCall","src":"9618:17:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9609:5:60"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9651:5:60"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9664:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9658:5:60"},"nodeType":"YulFunctionCall","src":"9658:16:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9644:6:60"},"nodeType":"YulFunctionCall","src":"9644:31:60"},"nodeType":"YulExpressionStatement","src":"9644:31:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9695:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"9702:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9691:3:60"},"nodeType":"YulFunctionCall","src":"9691:14:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9717:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9728:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9713:3:60"},"nodeType":"YulFunctionCall","src":"9713:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9707:5:60"},"nodeType":"YulFunctionCall","src":"9707:25:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9684:6:60"},"nodeType":"YulFunctionCall","src":"9684:49:60"},"nodeType":"YulExpressionStatement","src":"9684:49:60"}]},"name":"abi_decode_struct_RewardSummations_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9511:9:60","type":""},{"name":"end","nodeType":"YulTypedName","src":"9522:3:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"9530:5:60","type":""}],"src":"9456:283:60"},{"body":{"nodeType":"YulBlock","src":"9803:112:60","statements":[{"nodeType":"YulAssignment","src":"9813:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9828:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9822:5:60"},"nodeType":"YulFunctionCall","src":"9822:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9813:5:60"}]},{"body":{"nodeType":"YulBlock","src":"9893:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9902:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9905:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9895:6:60"},"nodeType":"YulFunctionCall","src":"9895:12:60"},"nodeType":"YulExpressionStatement","src":"9895:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9857:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9868:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"9875:14:60","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9864:3:60"},"nodeType":"YulFunctionCall","src":"9864:26:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9854:2:60"},"nodeType":"YulFunctionCall","src":"9854:37:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9847:6:60"},"nodeType":"YulFunctionCall","src":"9847:45:60"},"nodeType":"YulIf","src":"9844:65:60"}]},"name":"abi_decode_uint48_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"9782:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"9793:5:60","type":""}],"src":"9744:171:60"},{"body":{"nodeType":"YulBlock","src":"10028:930:60","statements":[{"nodeType":"YulVariableDeclaration","src":"10038:33:60","value":{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10052:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"10061:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10048:3:60"},"nodeType":"YulFunctionCall","src":"10048:23:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10042:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10096:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10105:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10108:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10098:6:60"},"nodeType":"YulFunctionCall","src":"10098:12:60"},"nodeType":"YulExpressionStatement","src":"10098:12:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10087:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"10091:3:60","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10083:3:60"},"nodeType":"YulFunctionCall","src":"10083:12:60"},"nodeType":"YulIf","src":"10080:32:60"},{"nodeType":"YulVariableDeclaration","src":"10121:35:60","value":{"arguments":[],"functionName":{"name":"allocate_memory_2917","nodeType":"YulIdentifier","src":"10134:20:60"},"nodeType":"YulFunctionCall","src":"10134:22:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10125:5:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10182:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10191:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10194:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10184:6:60"},"nodeType":"YulFunctionCall","src":"10184:12:60"},"nodeType":"YulExpressionStatement","src":"10184:12:60"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10172:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"10176:4:60","type":"","value":"0x40"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10168:3:60"},"nodeType":"YulFunctionCall","src":"10168:13:60"},"nodeType":"YulIf","src":"10165:33:60"},{"nodeType":"YulVariableDeclaration","src":"10207:32:60","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"10222:15:60"},"nodeType":"YulFunctionCall","src":"10222:17:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"10211:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10248:31:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10269:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10263:5:60"},"nodeType":"YulFunctionCall","src":"10263:16:60"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"10252:7:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"10353:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10362:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10365:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10355:6:60"},"nodeType":"YulFunctionCall","src":"10355:12:60"},"nodeType":"YulExpressionStatement","src":"10355:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"10301:7:60"},{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"10314:7:60"},{"kind":"number","nodeType":"YulLiteral","src":"10323:26:60","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10310:3:60"},"nodeType":"YulFunctionCall","src":"10310:40:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10298:2:60"},"nodeType":"YulFunctionCall","src":"10298:53:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10291:6:60"},"nodeType":"YulFunctionCall","src":"10291:61:60"},"nodeType":"YulIf","src":"10288:81:60"},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10385:7:60"},{"name":"value_2","nodeType":"YulIdentifier","src":"10394:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10378:6:60"},"nodeType":"YulFunctionCall","src":"10378:24:60"},"nodeType":"YulExpressionStatement","src":"10378:24:60"},{"nodeType":"YulVariableDeclaration","src":"10411:40:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10436:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10447:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10432:3:60"},"nodeType":"YulFunctionCall","src":"10432:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10426:5:60"},"nodeType":"YulFunctionCall","src":"10426:25:60"},"variables":[{"name":"value_3","nodeType":"YulTypedName","src":"10415:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_3","nodeType":"YulIdentifier","src":"10485:7:60"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"10460:24:60"},"nodeType":"YulFunctionCall","src":"10460:33:60"},"nodeType":"YulExpressionStatement","src":"10460:33:60"},{"expression":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"10513:7:60"},{"kind":"number","nodeType":"YulLiteral","src":"10522:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10509:3:60"},"nodeType":"YulFunctionCall","src":"10509:16:60"},{"name":"value_3","nodeType":"YulIdentifier","src":"10527:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10502:6:60"},"nodeType":"YulFunctionCall","src":"10502:33:60"},"nodeType":"YulExpressionStatement","src":"10502:33:60"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10551:5:60"},{"name":"value_1","nodeType":"YulIdentifier","src":"10558:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10544:6:60"},"nodeType":"YulFunctionCall","src":"10544:22:60"},"nodeType":"YulExpressionStatement","src":"10544:22:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10586:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"10593:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10582:3:60"},"nodeType":"YulFunctionCall","src":"10582:14:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10648:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10659:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10644:3:60"},"nodeType":"YulFunctionCall","src":"10644:20:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10666:7:60"}],"functionName":{"name":"abi_decode_struct_RewardSummations_fromMemory","nodeType":"YulIdentifier","src":"10598:45:60"},"nodeType":"YulFunctionCall","src":"10598:76:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10575:6:60"},"nodeType":"YulFunctionCall","src":"10575:100:60"},"nodeType":"YulExpressionStatement","src":"10575:100:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10695:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"10702:4:60","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10691:3:60"},"nodeType":"YulFunctionCall","src":"10691:16:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10743:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10754:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10739:3:60"},"nodeType":"YulFunctionCall","src":"10739:19:60"}],"functionName":{"name":"abi_decode_uint160_fromMemory","nodeType":"YulIdentifier","src":"10709:29:60"},"nodeType":"YulFunctionCall","src":"10709:50:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10684:6:60"},"nodeType":"YulFunctionCall","src":"10684:76:60"},"nodeType":"YulExpressionStatement","src":"10684:76:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10780:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"10787:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10776:3:60"},"nodeType":"YulFunctionCall","src":"10776:16:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10827:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10838:4:60","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10823:3:60"},"nodeType":"YulFunctionCall","src":"10823:20:60"}],"functionName":{"name":"abi_decode_uint48_fromMemory","nodeType":"YulIdentifier","src":"10794:28:60"},"nodeType":"YulFunctionCall","src":"10794:50:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10769:6:60"},"nodeType":"YulFunctionCall","src":"10769:76:60"},"nodeType":"YulExpressionStatement","src":"10769:76:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10865:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"10872:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10861:3:60"},"nodeType":"YulFunctionCall","src":"10861:15:60"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10911:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10922:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10907:3:60"},"nodeType":"YulFunctionCall","src":"10907:19:60"}],"functionName":{"name":"abi_decode_uint48_fromMemory","nodeType":"YulIdentifier","src":"10878:28:60"},"nodeType":"YulFunctionCall","src":"10878:49:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10854:6:60"},"nodeType":"YulFunctionCall","src":"10854:74:60"},"nodeType":"YulExpressionStatement","src":"10854:74:60"},{"nodeType":"YulAssignment","src":"10937:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"10947:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10937:6:60"}]}]},"name":"abi_decode_tuple_t_struct$_Position_$17418_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9994:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10005:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10017:6:60","type":""}],"src":"9920:1038:60"},{"body":{"nodeType":"YulBlock","src":"10995:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11012:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11015:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11005:6:60"},"nodeType":"YulFunctionCall","src":"11005:88:60"},"nodeType":"YulExpressionStatement","src":"11005:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11109:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11112:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11102:6:60"},"nodeType":"YulFunctionCall","src":"11102:15:60"},"nodeType":"YulExpressionStatement","src":"11102:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11133:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11136:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11126:6:60"},"nodeType":"YulFunctionCall","src":"11126:15:60"},"nodeType":"YulExpressionStatement","src":"11126:15:60"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"10963:184:60"},{"body":{"nodeType":"YulBlock","src":"11184:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11201:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11204:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11194:6:60"},"nodeType":"YulFunctionCall","src":"11194:88:60"},"nodeType":"YulExpressionStatement","src":"11194:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11298:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"11301:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11291:6:60"},"nodeType":"YulFunctionCall","src":"11291:15:60"},"nodeType":"YulExpressionStatement","src":"11291:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11322:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11325:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11315:6:60"},"nodeType":"YulFunctionCall","src":"11315:15:60"},"nodeType":"YulExpressionStatement","src":"11315:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"11152:184:60"},{"body":{"nodeType":"YulBlock","src":"11387:74:60","statements":[{"body":{"nodeType":"YulBlock","src":"11410:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"11412:16:60"},"nodeType":"YulFunctionCall","src":"11412:18:60"},"nodeType":"YulExpressionStatement","src":"11412:18:60"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11407:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11400:6:60"},"nodeType":"YulFunctionCall","src":"11400:9:60"},"nodeType":"YulIf","src":"11397:35:60"},{"nodeType":"YulAssignment","src":"11441:14:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11450:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"11453:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11446:3:60"},"nodeType":"YulFunctionCall","src":"11446:9:60"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"11441:1:60"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11372:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"11375:1:60","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"11381:1:60","type":""}],"src":"11341:120:60"},{"body":{"nodeType":"YulBlock","src":"11547:103:60","statements":[{"body":{"nodeType":"YulBlock","src":"11593:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11602:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11605:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11595:6:60"},"nodeType":"YulFunctionCall","src":"11595:12:60"},"nodeType":"YulExpressionStatement","src":"11595:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11568:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"11577:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11564:3:60"},"nodeType":"YulFunctionCall","src":"11564:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"11589:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11560:3:60"},"nodeType":"YulFunctionCall","src":"11560:32:60"},"nodeType":"YulIf","src":"11557:52:60"},{"nodeType":"YulAssignment","src":"11618:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11634:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11628:5:60"},"nodeType":"YulFunctionCall","src":"11628:16:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11618:6:60"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11513:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11524:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11536:6:60","type":""}],"src":"11466:184:60"},{"body":{"nodeType":"YulBlock","src":"11707:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"11826:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11828:16:60"},"nodeType":"YulFunctionCall","src":"11828:18:60"},"nodeType":"YulExpressionStatement","src":"11828:18:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11738:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11731:6:60"},"nodeType":"YulFunctionCall","src":"11731:9:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11724:6:60"},"nodeType":"YulFunctionCall","src":"11724:17:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11746:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11753:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"11821:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11749:3:60"},"nodeType":"YulFunctionCall","src":"11749:74:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11743:2:60"},"nodeType":"YulFunctionCall","src":"11743:81:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11720:3:60"},"nodeType":"YulFunctionCall","src":"11720:105:60"},"nodeType":"YulIf","src":"11717:131:60"},{"nodeType":"YulAssignment","src":"11857:20:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11872:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"11875:1:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"11868:3:60"},"nodeType":"YulFunctionCall","src":"11868:9:60"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"11857:7:60"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11686:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"11689:1:60","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"11695:7:60","type":""}],"src":"11655:228:60"},{"body":{"nodeType":"YulBlock","src":"11937:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"11959:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11961:16:60"},"nodeType":"YulFunctionCall","src":"11961:18:60"},"nodeType":"YulExpressionStatement","src":"11961:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11953:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"11956:1:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11950:2:60"},"nodeType":"YulFunctionCall","src":"11950:8:60"},"nodeType":"YulIf","src":"11947:34:60"},{"nodeType":"YulAssignment","src":"11990:17:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12002:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"12005:1:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11998:3:60"},"nodeType":"YulFunctionCall","src":"11998:9:60"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"11990:4:60"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11919:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"11922:1:60","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"11928:4:60","type":""}],"src":"11888:125:60"},{"body":{"nodeType":"YulBlock","src":"12076:722:60","statements":[{"nodeType":"YulVariableDeclaration","src":"12086:29:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12109:5:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12103:5:60"},"nodeType":"YulFunctionCall","src":"12103:12:60"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"12090:9:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12124:50:60","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12164:9:60"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"12138:25:60"},"nodeType":"YulFunctionCall","src":"12138:36:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12128:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12183:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"12193:1:60","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12187:2:60","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"12244:184:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12265:3:60"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12274:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"12285:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12270:3:60"},"nodeType":"YulFunctionCall","src":"12270:82:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12258:6:60"},"nodeType":"YulFunctionCall","src":"12258:95:60"},"nodeType":"YulExpressionStatement","src":"12258:95:60"},{"nodeType":"YulAssignment","src":"12366:52:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12377:3:60"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12386:6:60"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12408:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12401:6:60"},"nodeType":"YulFunctionCall","src":"12401:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12394:6:60"},"nodeType":"YulFunctionCall","src":"12394:22:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12382:3:60"},"nodeType":"YulFunctionCall","src":"12382:35:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12373:3:60"},"nodeType":"YulFunctionCall","src":"12373:45:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12366:3:60"}]}]},"nodeType":"YulCase","src":"12237:191:60","value":{"kind":"number","nodeType":"YulLiteral","src":"12242:1:60","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"12444:348:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12465:1:60","type":"","value":"0"},{"name":"value","nodeType":"YulIdentifier","src":"12468:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12458:6:60"},"nodeType":"YulFunctionCall","src":"12458:16:60"},"nodeType":"YulExpressionStatement","src":"12458:16:60"},{"nodeType":"YulVariableDeclaration","src":"12487:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"12497:4:60","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12491:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12514:31:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12539:1:60","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"12542:2:60"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12529:9:60"},"nodeType":"YulFunctionCall","src":"12529:16:60"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"12518:7:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12558:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"12567:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12562:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"12635:111:60","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12664:3:60"},{"name":"i","nodeType":"YulIdentifier","src":"12669:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12660:3:60"},"nodeType":"YulFunctionCall","src":"12660:11:60"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12679:7:60"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12673:5:60"},"nodeType":"YulFunctionCall","src":"12673:14:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12653:6:60"},"nodeType":"YulFunctionCall","src":"12653:35:60"},"nodeType":"YulExpressionStatement","src":"12653:35:60"},{"nodeType":"YulAssignment","src":"12705:27:60","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12720:7:60"},{"name":"_1","nodeType":"YulIdentifier","src":"12729:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12716:3:60"},"nodeType":"YulFunctionCall","src":"12716:16:60"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"12705:7:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12592:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"12595:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12589:2:60"},"nodeType":"YulFunctionCall","src":"12589:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12603:19:60","statements":[{"nodeType":"YulAssignment","src":"12605:15:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12614:1:60"},{"name":"_2","nodeType":"YulIdentifier","src":"12617:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12610:3:60"},"nodeType":"YulFunctionCall","src":"12610:10:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12605:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"12585:3:60","statements":[]},"src":"12581:165:60"},{"nodeType":"YulAssignment","src":"12759:23:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12770:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"12775:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12766:3:60"},"nodeType":"YulFunctionCall","src":"12766:16:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12759:3:60"}]}]},"nodeType":"YulCase","src":"12437:355:60","value":{"kind":"number","nodeType":"YulLiteral","src":"12442:1:60","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12214:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"12225:2:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12210:3:60"},"nodeType":"YulFunctionCall","src":"12210:18:60"},"nodeType":"YulSwitch","src":"12203:589:60"}]},"name":"abi_encode_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12053:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12060:3:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"12068:3:60","type":""}],"src":"12018:780:60"},{"body":{"nodeType":"YulBlock","src":"13287:1854:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13304:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13309:66:60","type":"","value":"0x3c7376672077696474683d2236363322206865696768743d2231303830222076"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13297:6:60"},"nodeType":"YulFunctionCall","src":"13297:79:60"},"nodeType":"YulExpressionStatement","src":"13297:79:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13396:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13401:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13392:3:60"},"nodeType":"YulFunctionCall","src":"13392:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"13406:66:60","type":"","value":"0x696577626f783d223020302036363320313038302220786d6c6e733d22687474"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13385:6:60"},"nodeType":"YulFunctionCall","src":"13385:88:60"},"nodeType":"YulExpressionStatement","src":"13385:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13493:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13498:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13489:3:60"},"nodeType":"YulFunctionCall","src":"13489:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"13503:66:60","type":"","value":"0x703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a78"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13482:6:60"},"nodeType":"YulFunctionCall","src":"13482:88:60"},"nodeType":"YulExpressionStatement","src":"13482:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13590:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13595:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13586:3:60"},"nodeType":"YulFunctionCall","src":"13586:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"13600:66:60","type":"","value":"0x6c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c69"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13579:6:60"},"nodeType":"YulFunctionCall","src":"13579:88:60"},"nodeType":"YulExpressionStatement","src":"13579:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13687:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13692:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13683:3:60"},"nodeType":"YulFunctionCall","src":"13683:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"13698:66:60","type":"","value":"0x6e6b223e203c7374796c6520747970653d22746578742f637373223e2040666f"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13676:6:60"},"nodeType":"YulFunctionCall","src":"13676:89:60"},"nodeType":"YulExpressionStatement","src":"13676:89:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13785:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13790:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13781:3:60"},"nodeType":"YulFunctionCall","src":"13781:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"13796:66:60","type":"","value":"0x6e742d66616365207b20666f6e742d66616d696c793a2022506f7070696e7322"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13774:6:60"},"nodeType":"YulFunctionCall","src":"13774:89:60"},"nodeType":"YulExpressionStatement","src":"13774:89:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13883:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13888:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13879:3:60"},"nodeType":"YulFunctionCall","src":"13879:13:60"},{"hexValue":"3b207372633a2075726c28","kind":"string","nodeType":"YulLiteral","src":"13894:13:60","type":"","value":"; src: url("}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13872:6:60"},"nodeType":"YulFunctionCall","src":"13872:36:60"},"nodeType":"YulExpressionStatement","src":"13872:36:60"},{"nodeType":"YulVariableDeclaration","src":"13917:58:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13953:6:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13965:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"13970:3:60","type":"","value":"203"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13961:3:60"},"nodeType":"YulFunctionCall","src":"13961:13:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"13927:25:60"},"nodeType":"YulFunctionCall","src":"13927:48:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13921:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13991:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"13995:66:60","type":"","value":"0x2920666f726d61742822776f66663222293b207d2040666f6e742d6661636520"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13984:6:60"},"nodeType":"YulFunctionCall","src":"13984:78:60"},"nodeType":"YulExpressionStatement","src":"13984:78:60"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14082:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14086:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14078:3:60"},"nodeType":"YulFunctionCall","src":"14078:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"14091:66:60","type":"","value":"0x7b20666f6e742d66616d696c793a2022506f7070696e73223b20666f6e742d77"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14071:6:60"},"nodeType":"YulFunctionCall","src":"14071:87:60"},"nodeType":"YulExpressionStatement","src":"14071:87:60"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14178:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14182:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14174:3:60"},"nodeType":"YulFunctionCall","src":"14174:11:60"},{"hexValue":"65696768743a20626f6c643b207372633a2075726c28","kind":"string","nodeType":"YulLiteral","src":"14187:24:60","type":"","value":"eight: bold; src: url("}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14167:6:60"},"nodeType":"YulFunctionCall","src":"14167:45:60"},"nodeType":"YulExpressionStatement","src":"14167:45:60"},{"nodeType":"YulVariableDeclaration","src":"14221:56:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14257:6:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"14269:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14273:2:60","type":"","value":"86"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14265:3:60"},"nodeType":"YulFunctionCall","src":"14265:11:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"14231:25:60"},"nodeType":"YulFunctionCall","src":"14231:46:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"14225:2:60","type":""}]},{"expression":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14293:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14297:66:60","type":"","value":"0x2920666f726d61742822776f66663222293b207d2074657874207b20636f6c6f"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14286:6:60"},"nodeType":"YulFunctionCall","src":"14286:78:60"},"nodeType":"YulExpressionStatement","src":"14286:78:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14384:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14388:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14380:3:60"},"nodeType":"YulFunctionCall","src":"14380:11:60"},{"hexValue":"723a233161316131613b20666f6e742d66616d696c793a506f7070696e732c20","kind":"string","nodeType":"YulLiteral","src":"14393:34:60","type":"","value":"r:#1a1a1a; font-family:Poppins, "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14373:6:60"},"nodeType":"YulFunctionCall","src":"14373:55:60"},"nodeType":"YulExpressionStatement","src":"14373:55:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14448:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14452:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14444:3:60"},"nodeType":"YulFunctionCall","src":"14444:11:60"},{"hexValue":"73616e732d73657269663b20666f6e742d73697a653a32342e373370783b207d","kind":"string","nodeType":"YulLiteral","src":"14457:34:60","type":"","value":"sans-serif; font-size:24.73px; }"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14437:6:60"},"nodeType":"YulFunctionCall","src":"14437:55:60"},"nodeType":"YulExpressionStatement","src":"14437:55:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14512:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14516:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14508:3:60"},"nodeType":"YulFunctionCall","src":"14508:11:60"},{"hexValue":"202e646174615f7370616e207b20666f6e742d7765696768743a626f6c643b20","kind":"string","nodeType":"YulLiteral","src":"14521:34:60","type":"","value":" .data_span { font-weight:bold; "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14501:6:60"},"nodeType":"YulFunctionCall","src":"14501:55:60"},"nodeType":"YulExpressionStatement","src":"14501:55:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14576:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14580:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14572:3:60"},"nodeType":"YulFunctionCall","src":"14572:12:60"},{"hexValue":"666f6e742d73697a653a33372e30397078207d202e746578745f626f74746f6d","kind":"string","nodeType":"YulLiteral","src":"14586:34:60","type":"","value":"font-size:37.09px } .text_bottom"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14565:6:60"},"nodeType":"YulFunctionCall","src":"14565:56:60"},"nodeType":"YulExpressionStatement","src":"14565:56:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14641:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14645:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14637:3:60"},"nodeType":"YulFunctionCall","src":"14637:12:60"},{"hexValue":"202e696e666f5f7370616e207b20666f6e742d73697a653a2032382e38317078","kind":"string","nodeType":"YulLiteral","src":"14651:34:60","type":"","value":" .info_span { font-size: 28.81px"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14630:6:60"},"nodeType":"YulFunctionCall","src":"14630:56:60"},"nodeType":"YulExpressionStatement","src":"14630:56:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14706:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14710:3:60","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14702:3:60"},"nodeType":"YulFunctionCall","src":"14702:12:60"},{"hexValue":"207d202e746578745f626f74746f6d202e646174615f7370616e207b20666f6e","kind":"string","nodeType":"YulLiteral","src":"14716:34:60","type":"","value":" } .text_bottom .data_span { fon"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14695:6:60"},"nodeType":"YulFunctionCall","src":"14695:56:60"},"nodeType":"YulExpressionStatement","src":"14695:56:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14771:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14775:3:60","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14767:3:60"},"nodeType":"YulFunctionCall","src":"14767:12:60"},{"hexValue":"742d73697a653a2034332e32317078207d203c2f7374796c653e203c696d6167","kind":"string","nodeType":"YulLiteral","src":"14781:34:60","type":"","value":"t-size: 43.21px } </style> <imag"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14760:6:60"},"nodeType":"YulFunctionCall","src":"14760:56:60"},"nodeType":"YulExpressionStatement","src":"14760:56:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14836:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14840:3:60","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14832:3:60"},"nodeType":"YulFunctionCall","src":"14832:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"14846:66:60","type":"","value":"0x65207072657365727665417370656374526174696f3d22784d6964594d696420"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14825:6:60"},"nodeType":"YulFunctionCall","src":"14825:88:60"},"nodeType":"YulExpressionStatement","src":"14825:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"14933:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"14937:3:60","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14929:3:60"},"nodeType":"YulFunctionCall","src":"14929:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"14943:66:60","type":"","value":"0x736c696365222077696474683d223130302522206865696768743d2231303025"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14922:6:60"},"nodeType":"YulFunctionCall","src":"14922:88:60"},"nodeType":"YulExpressionStatement","src":"14922:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"15030:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"15034:3:60","type":"","value":"320"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15026:3:60"},"nodeType":"YulFunctionCall","src":"15026:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"15040:66:60","type":"","value":"0x2220786c696e6b3a687265663d22000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15019:6:60"},"nodeType":"YulFunctionCall","src":"15019:88:60"},"nodeType":"YulExpressionStatement","src":"15019:88:60"},{"nodeType":"YulAssignment","src":"15116:19:60","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"15127:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"15131:3:60","type":"","value":"334"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15123:3:60"},"nodeType":"YulFunctionCall","src":"15123:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15116:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_ec3b898d1750454430826289f081b24a57051cc258a4f2a50d9b65e96410f989_t_string_storage_t_stringliteral_85bb1728d9d30adc45f34d75d3b5ae3a82445483cf22e70449812b9c25089bcf_t_string_storage_t_stringliteral_7ddfc767b89a5297b7bc6b4077a7181152d7e4a2ac6cb5e988b4f3c73f8c2065__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"13255:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13260:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13268:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13279:3:60","type":""}],"src":"12803:2338:60"},{"body":{"nodeType":"YulBlock","src":"15196:135:60","statements":[{"nodeType":"YulVariableDeclaration","src":"15206:26:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15226:5:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15220:5:60"},"nodeType":"YulFunctionCall","src":"15220:12:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15210:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15267:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"15274:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15263:3:60"},"nodeType":"YulFunctionCall","src":"15263:16:60"},{"name":"pos","nodeType":"YulIdentifier","src":"15281:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"15286:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"15241:21:60"},"nodeType":"YulFunctionCall","src":"15241:52:60"},"nodeType":"YulExpressionStatement","src":"15241:52:60"},{"nodeType":"YulAssignment","src":"15302:23:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15313:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"15318:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15309:3:60"},"nodeType":"YulFunctionCall","src":"15309:16:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15302:3:60"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15173:5:60","type":""},{"name":"pos","nodeType":"YulTypedName","src":"15180:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15188:3:60","type":""}],"src":"15146:185:60"},{"body":{"nodeType":"YulBlock","src":"15391:611:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15408:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"15413:66:60","type":"","value":"0x253c2f747370616e3e3c2f746578743e203c7465787420783d223333312e3522"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15401:6:60"},"nodeType":"YulFunctionCall","src":"15401:79:60"},"nodeType":"YulExpressionStatement","src":"15401:79:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15500:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"15505:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15496:3:60"},"nodeType":"YulFunctionCall","src":"15496:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"15510:66:60","type":"","value":"0x20793d22313030312e39372220746578742d616e63686f723d226d6964646c65"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15489:6:60"},"nodeType":"YulFunctionCall","src":"15489:88:60"},"nodeType":"YulExpressionStatement","src":"15489:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15597:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"15602:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15593:3:60"},"nodeType":"YulFunctionCall","src":"15593:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"15607:66:60","type":"","value":"0x2220636c6173733d22746578745f626f74746f6d223e3c747370616e20636c61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15586:6:60"},"nodeType":"YulFunctionCall","src":"15586:88:60"},"nodeType":"YulExpressionStatement","src":"15586:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15694:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"15699:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15690:3:60"},"nodeType":"YulFunctionCall","src":"15690:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"15704:66:60","type":"","value":"0x73733d22696e666f5f7370616e223e4541524e45443a203c2f747370616e3e3c"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15683:6:60"},"nodeType":"YulFunctionCall","src":"15683:88:60"},"nodeType":"YulExpressionStatement","src":"15683:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15791:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"15796:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15787:3:60"},"nodeType":"YulFunctionCall","src":"15787:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"15802:66:60","type":"","value":"0x747370616e20636c6173733d22646174615f7370616e2220783d223333312e35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15780:6:60"},"nodeType":"YulFunctionCall","src":"15780:89:60"},"nodeType":"YulExpressionStatement","src":"15780:89:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15889:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"15894:3:60","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15885:3:60"},"nodeType":"YulFunctionCall","src":"15885:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"15900:66:60","type":"","value":"0x222064793d2235312e3835223e262333363b0000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15878:6:60"},"nodeType":"YulFunctionCall","src":"15878:89:60"},"nodeType":"YulExpressionStatement","src":"15878:89:60"},{"nodeType":"YulAssignment","src":"15976:20:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15987:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"15992:3:60","type":"","value":"178"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15983:3:60"},"nodeType":"YulFunctionCall","src":"15983:13:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15976:3:60"}]}]},"name":"abi_encode_stringliteral_71fb","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"15375:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15383:3:60","type":""}],"src":"15336:666:60"},{"body":{"nodeType":"YulBlock","src":"16062:59:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16079:3:60"},{"hexValue":"20","kind":"string","nodeType":"YulLiteral","src":"16084:3:60","type":"","value":" "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16072:6:60"},"nodeType":"YulFunctionCall","src":"16072:16:60"},"nodeType":"YulExpressionStatement","src":"16072:16:60"},{"nodeType":"YulAssignment","src":"16097:18:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16108:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"16113:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16104:3:60"},"nodeType":"YulFunctionCall","src":"16104:11:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16097:3:60"}]}]},"name":"abi_encode_stringliteral_681a","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16046:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16054:3:60","type":""}],"src":"16007:114:60"},{"body":{"nodeType":"YulBlock","src":"16176:81:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16193:3:60"},{"hexValue":"3c2f747370616e3e3c2f746578743e203c2f7376673e","kind":"string","nodeType":"YulLiteral","src":"16198:24:60","type":"","value":"</tspan></text> </svg>"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16186:6:60"},"nodeType":"YulFunctionCall","src":"16186:37:60"},"nodeType":"YulExpressionStatement","src":"16186:37:60"},{"nodeType":"YulAssignment","src":"16232:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16243:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"16248:2:60","type":"","value":"22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16239:3:60"},"nodeType":"YulFunctionCall","src":"16239:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16232:3:60"}]}]},"name":"abi_encode_stringliteral","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16160:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16168:3:60","type":""}],"src":"16126:131:60"},{"body":{"nodeType":"YulBlock","src":"17241:1561:60","statements":[{"nodeType":"YulVariableDeclaration","src":"17251:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17271:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17265:5:60"},"nodeType":"YulFunctionCall","src":"17265:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"17255:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17313:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"17321:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17309:3:60"},"nodeType":"YulFunctionCall","src":"17309:17:60"},{"name":"pos","nodeType":"YulIdentifier","src":"17328:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"17333:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"17287:21:60"},"nodeType":"YulFunctionCall","src":"17287:53:60"},"nodeType":"YulExpressionStatement","src":"17287:53:60"},{"nodeType":"YulVariableDeclaration","src":"17349:29:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17366:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"17371:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17362:3:60"},"nodeType":"YulFunctionCall","src":"17362:16:60"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"17353:5:60","type":""}]},{"expression":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"17394:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17401:66:60","type":"","value":"0x223e3c2f696d6167653e203c7465787420783d2232372e332220793d2235342e"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17387:6:60"},"nodeType":"YulFunctionCall","src":"17387:81:60"},"nodeType":"YulExpressionStatement","src":"17387:81:60"},{"expression":{"arguments":[{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"17488:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17495:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17484:3:60"},"nodeType":"YulFunctionCall","src":"17484:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"17502:66:60","type":"","value":"0x392220746578742d616e63686f723d2273746172742220636c6173733d227465"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17477:6:60"},"nodeType":"YulFunctionCall","src":"17477:92:60"},"nodeType":"YulExpressionStatement","src":"17477:92:60"},{"expression":{"arguments":[{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"17589:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17596:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17585:3:60"},"nodeType":"YulFunctionCall","src":"17585:14:60"},{"kind":"number","nodeType":"YulLiteral","src":"17601:66:60","type":"","value":"0x78745f746f70223e3c747370616e20636c6173733d22696e666f5f7370616e22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17578:6:60"},"nodeType":"YulFunctionCall","src":"17578:90:60"},"nodeType":"YulExpressionStatement","src":"17578:90:60"},{"expression":{"arguments":[{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"17688:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17695:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17684:3:60"},"nodeType":"YulFunctionCall","src":"17684:14:60"},{"hexValue":"3e262333363b","kind":"string","nodeType":"YulLiteral","src":"17700:8:60","type":"","value":">&#36;"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17677:6:60"},"nodeType":"YulFunctionCall","src":"17677:32:60"},"nodeType":"YulExpressionStatement","src":"17677:32:60"},{"nodeType":"YulVariableDeclaration","src":"17718:60:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"17754:6:60"},{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"17766:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"17773:3:60","type":"","value":"102"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17762:3:60"},"nodeType":"YulFunctionCall","src":"17762:15:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"17728:25:60"},"nodeType":"YulFunctionCall","src":"17728:50:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17722:2:60","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17794:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"17798:66:60","type":"","value":"0x3a203c2f747370616e3e3c747370616e20636c6173733d22646174615f737061"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17787:6:60"},"nodeType":"YulFunctionCall","src":"17787:78:60"},"nodeType":"YulExpressionStatement","src":"17787:78:60"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17885:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"17889:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17881:3:60"},"nodeType":"YulFunctionCall","src":"17881:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"17896:66:60","type":"","value":"0x6e223e0000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17874:6:60"},"nodeType":"YulFunctionCall","src":"17874:89:60"},"nodeType":"YulExpressionStatement","src":"17874:89:60"},{"nodeType":"YulVariableDeclaration","src":"17972:29:60","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17994:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17988:5:60"},"nodeType":"YulFunctionCall","src":"17988:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"17976:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18036:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"18044:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18032:3:60"},"nodeType":"YulFunctionCall","src":"18032:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"18055:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"18059:2:60","type":"","value":"35"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18051:3:60"},"nodeType":"YulFunctionCall","src":"18051:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"18064:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"18010:21:60"},"nodeType":"YulFunctionCall","src":"18010:63:60"},"nodeType":"YulExpressionStatement","src":"18010:63:60"},{"nodeType":"YulVariableDeclaration","src":"18082:27:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"18096:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"18100:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18092:3:60"},"nodeType":"YulFunctionCall","src":"18092:17:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"18086:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"18129:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"18133:2:60","type":"","value":"35"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18125:3:60"},"nodeType":"YulFunctionCall","src":"18125:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"18138:66:60","type":"","value":"0x3c2f747370616e3e3c2f746578743e203c7465787420783d223633352e372220"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18118:6:60"},"nodeType":"YulFunctionCall","src":"18118:87:60"},"nodeType":"YulExpressionStatement","src":"18118:87:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"18225:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"18229:2:60","type":"","value":"67"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18221:3:60"},"nodeType":"YulFunctionCall","src":"18221:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"18234:66:60","type":"","value":"0x793d2235342e392220746578742d616e63686f723d22656e642220636c617373"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18214:6:60"},"nodeType":"YulFunctionCall","src":"18214:87:60"},"nodeType":"YulExpressionStatement","src":"18214:87:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"18321:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"18325:2:60","type":"","value":"99"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18317:3:60"},"nodeType":"YulFunctionCall","src":"18317:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"18330:66:60","type":"","value":"0x3d22746578745f746f70223e3c747370616e20636c6173733d22696e666f5f73"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18310:6:60"},"nodeType":"YulFunctionCall","src":"18310:87:60"},"nodeType":"YulExpressionStatement","src":"18310:87:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"18417:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"18421:3:60","type":"","value":"131"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18413:3:60"},"nodeType":"YulFunctionCall","src":"18413:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"18427:66:60","type":"","value":"0x70616e223e4150523a203c2f747370616e3e3c747370616e20636c6173733d22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18406:6:60"},"nodeType":"YulFunctionCall","src":"18406:88:60"},"nodeType":"YulExpressionStatement","src":"18406:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"18514:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"18518:3:60","type":"","value":"163"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18510:3:60"},"nodeType":"YulFunctionCall","src":"18510:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"18524:66:60","type":"","value":"0x646174615f7370616e223e000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18503:6:60"},"nodeType":"YulFunctionCall","src":"18503:88:60"},"nodeType":"YulExpressionStatement","src":"18503:88:60"},{"nodeType":"YulAssignment","src":"18600:196:60","value":{"arguments":[{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"18650:6:60"},{"arguments":[{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"18714:6:60"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18770:6:60"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"18782:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"18786:3:60","type":"","value":"174"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18778:3:60"},"nodeType":"YulFunctionCall","src":"18778:12:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"18752:17:60"},"nodeType":"YulFunctionCall","src":"18752:39:60"}],"functionName":{"name":"abi_encode_stringliteral_71fb","nodeType":"YulIdentifier","src":"18722:29:60"},"nodeType":"YulFunctionCall","src":"18722:70:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"18688:25:60"},"nodeType":"YulFunctionCall","src":"18688:105:60"}],"functionName":{"name":"abi_encode_stringliteral_681a","nodeType":"YulIdentifier","src":"18658:29:60"},"nodeType":"YulFunctionCall","src":"18658:136:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"18632:17:60"},"nodeType":"YulFunctionCall","src":"18632:163:60"}],"functionName":{"name":"abi_encode_stringliteral","nodeType":"YulIdentifier","src":"18607:24:60"},"nodeType":"YulFunctionCall","src":"18607:189:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"18600:3:60"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_126e987cb53e9e978d2b6808a31a5dabcc9ade817848aa8224230df7b024f7a1_t_string_storage_t_stringliteral_86751ac112c8bd0ae01ed6f5f965b45154e9a942a13b0461fee321be26fab98c_t_string_memory_ptr_t_stringliteral_637d8234fbae871b6717a67ca5e765d25997fab608e6f7d402a8517d1b2934d3_t_string_memory_ptr_t_stringliteral_71fbda23d91b84717b91e7e4d3c431d4704a76fb8430203edf0acff8b0d9b2b9_t_string_storage_t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a_t_string_memory_ptr_t_stringliteral_7607d31c6a4a9d8a907bf0a596a0b66f726b0ae204d30d513f71769ba03a9586__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"17177:3:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"17182:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17190:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17198:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17206:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17214:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17222:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"17233:3:60","type":""}],"src":"16262:2540:60"},{"body":{"nodeType":"YulBlock","src":"18990:283:60","statements":[{"nodeType":"YulVariableDeclaration","src":"19000:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19020:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19014:5:60"},"nodeType":"YulFunctionCall","src":"19014:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19004:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19062:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"19070:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19058:3:60"},"nodeType":"YulFunctionCall","src":"19058:17:60"},{"name":"pos","nodeType":"YulIdentifier","src":"19077:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"19082:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"19036:21:60"},"nodeType":"YulFunctionCall","src":"19036:53:60"},"nodeType":"YulExpressionStatement","src":"19036:53:60"},{"nodeType":"YulVariableDeclaration","src":"19098:29:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19115:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"19120:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19111:3:60"},"nodeType":"YulFunctionCall","src":"19111:16:60"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"19102:5:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19136:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19158:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19152:5:60"},"nodeType":"YulFunctionCall","src":"19152:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"19140:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19200:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"19208:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19196:3:60"},"nodeType":"YulFunctionCall","src":"19196:17:60"},{"name":"end_1","nodeType":"YulIdentifier","src":"19215:5:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"19222:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"19174:21:60"},"nodeType":"YulFunctionCall","src":"19174:57:60"},"nodeType":"YulExpressionStatement","src":"19174:57:60"},{"nodeType":"YulAssignment","src":"19240:27:60","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"19251:5:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"19258:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19247:3:60"},"nodeType":"YulFunctionCall","src":"19247:20:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19240:3:60"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"18958:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18963:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18971:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"18982:3:60","type":""}],"src":"18807:466:60"},{"body":{"nodeType":"YulBlock","src":"19333:317:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19350:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19355:66:60","type":"","value":"0x7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19343:6:60"},"nodeType":"YulFunctionCall","src":"19343:79:60"},"nodeType":"YulExpressionStatement","src":"19343:79:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19442:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19447:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19438:3:60"},"nodeType":"YulFunctionCall","src":"19438:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"19452:66:60","type":"","value":"0x76616c7565223a2239222c2274726169745f74797065223a2242616c616e6365"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19431:6:60"},"nodeType":"YulFunctionCall","src":"19431:88:60"},"nodeType":"YulExpressionStatement","src":"19431:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19539:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19544:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19535:3:60"},"nodeType":"YulFunctionCall","src":"19535:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"19549:66:60","type":"","value":"0x204c6576656c222c2276616c7565223a00000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19528:6:60"},"nodeType":"YulFunctionCall","src":"19528:88:60"},"nodeType":"YulExpressionStatement","src":"19528:88:60"},{"nodeType":"YulAssignment","src":"19625:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19636:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19641:2:60","type":"","value":"80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19632:3:60"},"nodeType":"YulFunctionCall","src":"19632:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19625:3:60"}]}]},"name":"abi_encode_stringliteral_2ca4","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19317:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19325:3:60","type":""}],"src":"19278:372:60"},{"body":{"nodeType":"YulBlock","src":"19710:317:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19727:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19732:66:60","type":"","value":"0x7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19720:6:60"},"nodeType":"YulFunctionCall","src":"19720:79:60"},"nodeType":"YulExpressionStatement","src":"19720:79:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19819:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19824:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19815:3:60"},"nodeType":"YulFunctionCall","src":"19815:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"19829:66:60","type":"","value":"0x76616c7565223a2239222c2274726169745f74797065223a224475726174696f"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19808:6:60"},"nodeType":"YulFunctionCall","src":"19808:88:60"},"nodeType":"YulExpressionStatement","src":"19808:88:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19916:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"19921:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19912:3:60"},"nodeType":"YulFunctionCall","src":"19912:12:60"},{"kind":"number","nodeType":"YulLiteral","src":"19926:66:60","type":"","value":"0x6e204c6576656c222c2276616c7565223a000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19905:6:60"},"nodeType":"YulFunctionCall","src":"19905:88:60"},"nodeType":"YulExpressionStatement","src":"19905:88:60"},{"nodeType":"YulAssignment","src":"20002:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20013:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"20018:2:60","type":"","value":"81"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20009:3:60"},"nodeType":"YulFunctionCall","src":"20009:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20002:3:60"}]}]},"name":"abi_encode_stringliteral_19ab","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"19694:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19702:3:60","type":""}],"src":"19655:372:60"},{"body":{"nodeType":"YulBlock","src":"20087:162:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20104:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"20109:66:60","type":"","value":"0x7d5d2c22696d616765223a22646174613a696d6167652f7376672b786d6c3b62"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20097:6:60"},"nodeType":"YulFunctionCall","src":"20097:79:60"},"nodeType":"YulExpressionStatement","src":"20097:79:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20196:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"20201:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20192:3:60"},"nodeType":"YulFunctionCall","src":"20192:12:60"},{"hexValue":"61736536342c","kind":"string","nodeType":"YulLiteral","src":"20206:8:60","type":"","value":"ase64,"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20185:6:60"},"nodeType":"YulFunctionCall","src":"20185:30:60"},"nodeType":"YulExpressionStatement","src":"20185:30:60"},{"nodeType":"YulAssignment","src":"20224:19:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20235:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"20240:2:60","type":"","value":"38"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20231:3:60"},"nodeType":"YulFunctionCall","src":"20231:12:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20224:3:60"}]}]},"name":"abi_encode_stringliteral_c7dd","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"20071:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"20079:3:60","type":""}],"src":"20032:217:60"},{"body":{"nodeType":"YulBlock","src":"20309:122:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20326:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"20331:66:60","type":"","value":"0x227d0a0000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20319:6:60"},"nodeType":"YulFunctionCall","src":"20319:79:60"},"nodeType":"YulExpressionStatement","src":"20319:79:60"},{"nodeType":"YulAssignment","src":"20407:18:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20418:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"20423:1:60","type":"","value":"3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20414:3:60"},"nodeType":"YulFunctionCall","src":"20414:11:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20407:3:60"}]}]},"name":"abi_encode_stringliteral_16b4","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"20293:3:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"20301:3:60","type":""}],"src":"20254:177:60"},{"body":{"nodeType":"YulBlock","src":"21814:1364:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21831:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"21836:66:60","type":"","value":"0x7b226e616d65223a2250616e676f6c696e205374616b696e6720506f73697469"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21824:6:60"},"nodeType":"YulFunctionCall","src":"21824:79:60"},"nodeType":"YulExpressionStatement","src":"21824:79:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21923:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"21928:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21919:3:60"},"nodeType":"YulFunctionCall","src":"21919:12:60"},{"hexValue":"6f6e2023","kind":"string","nodeType":"YulLiteral","src":"21933:6:60","type":"","value":"on #"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21912:6:60"},"nodeType":"YulFunctionCall","src":"21912:28:60"},"nodeType":"YulExpressionStatement","src":"21912:28:60"},{"nodeType":"YulVariableDeclaration","src":"21949:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21969:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21963:5:60"},"nodeType":"YulFunctionCall","src":"21963:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"21953:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22011:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"22019:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22007:3:60"},"nodeType":"YulFunctionCall","src":"22007:15:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22028:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"22033:2:60","type":"","value":"36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22024:3:60"},"nodeType":"YulFunctionCall","src":"22024:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"22038:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"21985:21:60"},"nodeType":"YulFunctionCall","src":"21985:60:60"},"nodeType":"YulExpressionStatement","src":"21985:60:60"},{"nodeType":"YulVariableDeclaration","src":"22054:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"22068:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"22073:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22064:3:60"},"nodeType":"YulFunctionCall","src":"22064:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22058:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"22100:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22104:2:60","type":"","value":"36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22096:3:60"},"nodeType":"YulFunctionCall","src":"22096:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"22109:66:60","type":"","value":"0x222c226465736372697074696f6e223a22000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22089:6:60"},"nodeType":"YulFunctionCall","src":"22089:87:60"},"nodeType":"YulExpressionStatement","src":"22089:87:60"},{"nodeType":"YulVariableDeclaration","src":"22185:56:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22221:6:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"22233:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22237:2:60","type":"","value":"53"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22229:3:60"},"nodeType":"YulFunctionCall","src":"22229:11:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"22195:25:60"},"nodeType":"YulFunctionCall","src":"22195:46:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"22189:2:60","type":""}]},{"expression":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"22257:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22261:66:60","type":"","value":"0x222c2265787465726e616c5f75726c223a220000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22250:6:60"},"nodeType":"YulFunctionCall","src":"22250:78:60"},"nodeType":"YulExpressionStatement","src":"22250:78:60"},{"nodeType":"YulVariableDeclaration","src":"22337:56:60","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22373:6:60"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"22385:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22389:2:60","type":"","value":"18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22381:3:60"},"nodeType":"YulFunctionCall","src":"22381:11:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"22347:25:60"},"nodeType":"YulFunctionCall","src":"22347:46:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"22341:2:60","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"22409:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22413:66:60","type":"","value":"0x222c2261747472696275746573223a5b7b2274726169745f74797065223a2242"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22402:6:60"},"nodeType":"YulFunctionCall","src":"22402:78:60"},"nodeType":"YulExpressionStatement","src":"22402:78:60"},{"expression":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"22500:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22504:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22496:3:60"},"nodeType":"YulFunctionCall","src":"22496:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"22509:66:60","type":"","value":"0x616c616e6365222c2276616c7565223a00000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22489:6:60"},"nodeType":"YulFunctionCall","src":"22489:87:60"},"nodeType":"YulExpressionStatement","src":"22489:87:60"},{"nodeType":"YulVariableDeclaration","src":"22585:29:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"22607:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22601:5:60"},"nodeType":"YulFunctionCall","src":"22601:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"22589:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"22649:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"22657:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22645:3:60"},"nodeType":"YulFunctionCall","src":"22645:15:60"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"22666:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22670:2:60","type":"","value":"48"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22662:3:60"},"nodeType":"YulFunctionCall","src":"22662:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"22675:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"22623:21:60"},"nodeType":"YulFunctionCall","src":"22623:61:60"},"nodeType":"YulExpressionStatement","src":"22623:61:60"},{"nodeType":"YulVariableDeclaration","src":"22693:27:60","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"22707:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"22711:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22703:3:60"},"nodeType":"YulFunctionCall","src":"22703:17:60"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"22697:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"22740:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22744:2:60","type":"","value":"48"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22736:3:60"},"nodeType":"YulFunctionCall","src":"22736:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"22749:66:60","type":"","value":"0x7d2c7b22646973706c61795f74797065223a2264617465222c2274726169745f"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22729:6:60"},"nodeType":"YulFunctionCall","src":"22729:87:60"},"nodeType":"YulExpressionStatement","src":"22729:87:60"},{"expression":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"22836:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"22840:2:60","type":"","value":"80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22832:3:60"},"nodeType":"YulFunctionCall","src":"22832:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"22845:66:60","type":"","value":"0x74797065223a22456e7472792054696d65222c2276616c7565223a0000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22825:6:60"},"nodeType":"YulFunctionCall","src":"22825:87:60"},"nodeType":"YulExpressionStatement","src":"22825:87:60"},{"nodeType":"YulAssignment","src":"22921:251:60","value":{"arguments":[{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"22976:6:60"},{"arguments":[{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"23032:6:60"},{"arguments":[{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"23088:6:60"},{"arguments":[{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"23144:6:60"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"23156:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"23160:3:60","type":"","value":"107"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23152:3:60"},"nodeType":"YulFunctionCall","src":"23152:12:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"23126:17:60"},"nodeType":"YulFunctionCall","src":"23126:39:60"}],"functionName":{"name":"abi_encode_stringliteral_2ca4","nodeType":"YulIdentifier","src":"23096:29:60"},"nodeType":"YulFunctionCall","src":"23096:70:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"23070:17:60"},"nodeType":"YulFunctionCall","src":"23070:97:60"}],"functionName":{"name":"abi_encode_stringliteral_19ab","nodeType":"YulIdentifier","src":"23040:29:60"},"nodeType":"YulFunctionCall","src":"23040:128:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"23014:17:60"},"nodeType":"YulFunctionCall","src":"23014:155:60"}],"functionName":{"name":"abi_encode_stringliteral_c7dd","nodeType":"YulIdentifier","src":"22984:29:60"},"nodeType":"YulFunctionCall","src":"22984:186:60"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"22958:17:60"},"nodeType":"YulFunctionCall","src":"22958:213:60"}],"functionName":{"name":"abi_encode_stringliteral_16b4","nodeType":"YulIdentifier","src":"22928:29:60"},"nodeType":"YulFunctionCall","src":"22928:244:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"22921:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_92dbaf40f9706d2b597b386be95e10fa691cc1efcd1ea5168aeb9a5b1a0617e7_t_string_memory_ptr_t_stringliteral_4c216c0cacb2979ab2fa64169618dff639cb413b3341193391c2734a2cc9c17d_t_string_storage_t_stringliteral_183a274fb9786dd6ae964fc99afc6a718b130a0fb2dc308fd55c8ad4e85e406f_t_string_storage_t_stringliteral_b829c54deee6024f4fa91ed5017266784331ef97933f654b85db88fe01baaf8d_t_string_memory_ptr_t_stringliteral_d50fcf646cea104ad238e6de7b6827a2b6606ec72e8db9322fccb4f5a07d1e58_t_string_memory_ptr_t_stringliteral_2ca42eadce1df16387bc81ad68fab938e98dd01c0b7bc001f3e1e14d11329c9d_t_string_memory_ptr_t_stringliteral_19ab5e81ebf345e2bd2ab6dc40a164c9472240a793cc475733cdb36ff503bd27_t_string_memory_ptr_t_stringliteral_c7dd93b963919fee8b26c45310fc9a39dced1698a9189a666fe49aaeb2a476b4_t_string_memory_ptr_t_stringliteral_16b4dd963f5e31b977c360b753d919414d2417f3859f98a1987c53bd5d752167__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21734:3:60","type":""},{"name":"value7","nodeType":"YulTypedName","src":"21739:6:60","type":""},{"name":"value6","nodeType":"YulTypedName","src":"21747:6:60","type":""},{"name":"value5","nodeType":"YulTypedName","src":"21755:6:60","type":""},{"name":"value4","nodeType":"YulTypedName","src":"21763:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"21771:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21779:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21787:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21795:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21806:3:60","type":""}],"src":"20436:2742:60"},{"body":{"nodeType":"YulBlock","src":"23423:208:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23440:3:60"},{"hexValue":"646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c","kind":"string","nodeType":"YulLiteral","src":"23445:31:60","type":"","value":"data:application/json;base64,"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23433:6:60"},"nodeType":"YulFunctionCall","src":"23433:44:60"},"nodeType":"YulExpressionStatement","src":"23433:44:60"},{"nodeType":"YulVariableDeclaration","src":"23486:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23506:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23500:5:60"},"nodeType":"YulFunctionCall","src":"23500:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"23490:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23548:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"23556:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23544:3:60"},"nodeType":"YulFunctionCall","src":"23544:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23567:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"23572:2:60","type":"","value":"29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23563:3:60"},"nodeType":"YulFunctionCall","src":"23563:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"23577:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"23522:21:60"},"nodeType":"YulFunctionCall","src":"23522:62:60"},"nodeType":"YulExpressionStatement","src":"23522:62:60"},{"nodeType":"YulAssignment","src":"23593:32:60","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23608:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"23613:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23604:3:60"},"nodeType":"YulFunctionCall","src":"23604:16:60"},{"kind":"number","nodeType":"YulLiteral","src":"23622:2:60","type":"","value":"29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23600:3:60"},"nodeType":"YulFunctionCall","src":"23600:25:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23593:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23399:3:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23404:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23415:3:60","type":""}],"src":"23183:448:60"},{"body":{"nodeType":"YulBlock","src":"23674:74:60","statements":[{"body":{"nodeType":"YulBlock","src":"23697:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"23699:16:60"},"nodeType":"YulFunctionCall","src":"23699:18:60"},"nodeType":"YulExpressionStatement","src":"23699:18:60"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23694:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23687:6:60"},"nodeType":"YulFunctionCall","src":"23687:9:60"},"nodeType":"YulIf","src":"23684:35:60"},{"nodeType":"YulAssignment","src":"23728:14:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23737:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"23740:1:60"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"23733:3:60"},"nodeType":"YulFunctionCall","src":"23733:9:60"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"23728:1:60"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23659:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"23662:1:60","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"23668:1:60","type":""}],"src":"23636:112:60"},{"body":{"nodeType":"YulBlock","src":"23801:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"23828:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23830:16:60"},"nodeType":"YulFunctionCall","src":"23830:18:60"},"nodeType":"YulExpressionStatement","src":"23830:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23817:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23824:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"23820:3:60"},"nodeType":"YulFunctionCall","src":"23820:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23814:2:60"},"nodeType":"YulFunctionCall","src":"23814:13:60"},"nodeType":"YulIf","src":"23811:39:60"},{"nodeType":"YulAssignment","src":"23859:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23870:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"23873:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23866:3:60"},"nodeType":"YulFunctionCall","src":"23866:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"23859:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23784:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"23787:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"23793:3:60","type":""}],"src":"23753:128:60"},{"body":{"nodeType":"YulBlock","src":"23918:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23935:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23938:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23928:6:60"},"nodeType":"YulFunctionCall","src":"23928:88:60"},"nodeType":"YulExpressionStatement","src":"23928:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24032:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24035:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24025:6:60"},"nodeType":"YulFunctionCall","src":"24025:15:60"},"nodeType":"YulExpressionStatement","src":"24025:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24056:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24059:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24049:6:60"},"nodeType":"YulFunctionCall","src":"24049:15:60"},"nodeType":"YulExpressionStatement","src":"24049:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"23886:184:60"},{"body":{"nodeType":"YulBlock","src":"24352:373:60","statements":[{"nodeType":"YulVariableDeclaration","src":"24362:48:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24398:6:60"},{"name":"pos","nodeType":"YulIdentifier","src":"24406:3:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"24372:25:60"},"nodeType":"YulFunctionCall","src":"24372:38:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"24366:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24419:27:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24439:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24433:5:60"},"nodeType":"YulFunctionCall","src":"24433:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"24423:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24481:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"24489:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24477:3:60"},"nodeType":"YulFunctionCall","src":"24477:17:60"},{"name":"_1","nodeType":"YulIdentifier","src":"24496:2:60"},{"name":"length","nodeType":"YulIdentifier","src":"24500:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"24455:21:60"},"nodeType":"YulFunctionCall","src":"24455:52:60"},"nodeType":"YulExpressionStatement","src":"24455:52:60"},{"nodeType":"YulVariableDeclaration","src":"24516:28:60","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"24533:2:60"},{"name":"length","nodeType":"YulIdentifier","src":"24537:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24529:3:60"},"nodeType":"YulFunctionCall","src":"24529:15:60"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"24520:5:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"24553:29:60","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"24575:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24569:5:60"},"nodeType":"YulFunctionCall","src":"24569:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"24557:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"24617:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"24625:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24613:3:60"},"nodeType":"YulFunctionCall","src":"24613:17:60"},{"name":"end_1","nodeType":"YulIdentifier","src":"24632:5:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"24639:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"24591:21:60"},"nodeType":"YulFunctionCall","src":"24591:57:60"},"nodeType":"YulExpressionStatement","src":"24591:57:60"},{"nodeType":"YulAssignment","src":"24657:62:60","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"24690:6:60"},{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"24702:5:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"24709:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24698:3:60"},"nodeType":"YulFunctionCall","src":"24698:20:60"}],"functionName":{"name":"abi_encode_string_storage","nodeType":"YulIdentifier","src":"24664:25:60"},"nodeType":"YulFunctionCall","src":"24664:55:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"24657:3:60"}]}]},"name":"abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr_t_string_memory_ptr_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"24304:3:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"24309:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24317:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24325:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24333:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"24344:3:60","type":""}],"src":"24075:650:60"},{"body":{"nodeType":"YulBlock","src":"24777:148:60","statements":[{"body":{"nodeType":"YulBlock","src":"24868:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24870:16:60"},"nodeType":"YulFunctionCall","src":"24870:18:60"},"nodeType":"YulExpressionStatement","src":"24870:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24793:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"24800:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24790:2:60"},"nodeType":"YulFunctionCall","src":"24790:77:60"},"nodeType":"YulIf","src":"24787:103:60"},{"nodeType":"YulAssignment","src":"24899:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24910:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"24917:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24906:3:60"},"nodeType":"YulFunctionCall","src":"24906:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"24899:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"24759:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"24769:3:60","type":""}],"src":"24730:195:60"},{"body":{"nodeType":"YulBlock","src":"25319:397:60","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25336:3:60"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"25341:25:60","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25329:6:60"},"nodeType":"YulFunctionCall","src":"25329:38:60"},"nodeType":"YulExpressionStatement","src":"25329:38:60"},{"nodeType":"YulVariableDeclaration","src":"25376:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25396:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25390:5:60"},"nodeType":"YulFunctionCall","src":"25390:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"25380:6:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25438:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"25446:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25434:3:60"},"nodeType":"YulFunctionCall","src":"25434:17:60"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25457:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"25462:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25453:3:60"},"nodeType":"YulFunctionCall","src":"25453:12:60"},{"name":"length","nodeType":"YulIdentifier","src":"25467:6:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"25412:21:60"},"nodeType":"YulFunctionCall","src":"25412:62:60"},"nodeType":"YulExpressionStatement","src":"25412:62:60"},{"nodeType":"YulVariableDeclaration","src":"25483:26:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25497:3:60"},{"name":"length","nodeType":"YulIdentifier","src":"25502:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25493:3:60"},"nodeType":"YulFunctionCall","src":"25493:16:60"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25487:2:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"25529:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"25533:2:60","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25525:3:60"},"nodeType":"YulFunctionCall","src":"25525:11:60"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"25538:19:60","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25518:6:60"},"nodeType":"YulFunctionCall","src":"25518:40:60"},"nodeType":"YulExpressionStatement","src":"25518:40:60"},{"nodeType":"YulVariableDeclaration","src":"25567:29:60","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25589:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25583:5:60"},"nodeType":"YulFunctionCall","src":"25583:13:60"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"25571:8:60","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25631:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"25639:4:60","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25627:3:60"},"nodeType":"YulFunctionCall","src":"25627:17:60"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"25650:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"25654:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25646:3:60"},"nodeType":"YulFunctionCall","src":"25646:11:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"25659:8:60"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"25605:21:60"},"nodeType":"YulFunctionCall","src":"25605:63:60"},"nodeType":"YulExpressionStatement","src":"25605:63:60"},{"nodeType":"YulAssignment","src":"25677:33:60","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"25692:2:60"},{"name":"length_1","nodeType":"YulIdentifier","src":"25696:8:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25688:3:60"},"nodeType":"YulFunctionCall","src":"25688:17:60"},{"kind":"number","nodeType":"YulLiteral","src":"25707:2:60","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25684:3:60"},"nodeType":"YulFunctionCall","src":"25684:26:60"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"25677:3:60"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"25287:3:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25292:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25300:6:60","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"25311:3:60","type":""}],"src":"24930:786:60"},{"body":{"nodeType":"YulBlock","src":"25768:149:60","statements":[{"body":{"nodeType":"YulBlock","src":"25795:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"25797:16:60"},"nodeType":"YulFunctionCall","src":"25797:18:60"},"nodeType":"YulExpressionStatement","src":"25797:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"25788:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"25781:6:60"},"nodeType":"YulFunctionCall","src":"25781:13:60"},"nodeType":"YulIf","src":"25778:39:60"},{"nodeType":"YulAssignment","src":"25826:85:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"25837:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"25844:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25833:3:60"},"nodeType":"YulFunctionCall","src":"25833:78:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"25826:3:60"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"25750:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"25760:3:60","type":""}],"src":"25721:196:60"},{"body":{"nodeType":"YulBlock","src":"26096:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26113:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"26124:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26106:6:60"},"nodeType":"YulFunctionCall","src":"26106:21:60"},"nodeType":"YulExpressionStatement","src":"26106:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26147:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"26158:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26143:3:60"},"nodeType":"YulFunctionCall","src":"26143:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"26163:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26136:6:60"},"nodeType":"YulFunctionCall","src":"26136:30:60"},"nodeType":"YulExpressionStatement","src":"26136:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26186:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"26197:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26182:3:60"},"nodeType":"YulFunctionCall","src":"26182:18:60"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"26202:34:60","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26175:6:60"},"nodeType":"YulFunctionCall","src":"26175:62:60"},"nodeType":"YulExpressionStatement","src":"26175:62:60"},{"nodeType":"YulAssignment","src":"26246:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26258:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"26269:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26254:3:60"},"nodeType":"YulFunctionCall","src":"26254:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26246:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26073:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26087:4:60","type":""}],"src":"25922:356:60"},{"body":{"nodeType":"YulBlock","src":"26315:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26332:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26335:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26325:6:60"},"nodeType":"YulFunctionCall","src":"26325:88:60"},"nodeType":"YulExpressionStatement","src":"26325:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26429:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26432:4:60","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26422:6:60"},"nodeType":"YulFunctionCall","src":"26422:15:60"},"nodeType":"YulExpressionStatement","src":"26422:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26453:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26456:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26446:6:60"},"nodeType":"YulFunctionCall","src":"26446:15:60"},"nodeType":"YulExpressionStatement","src":"26446:15:60"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"26283:184:60"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_bytes1__to_t_bytes1__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff00000000000000000000000000000000000000000000000000000000000000))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory() -> memPtr\n    {\n        memPtr := mload(0x40)\n        let newFreePtr := add(memPtr, 0x40)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(0x40, newFreePtr)\n    }\n    function allocate_memory_2917() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0xa0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0xffffffffffffffff\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(memPtr, _1), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_address(value)\n        value1 := value\n    }\n    function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_string(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_bytes1(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xff00000000000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_contract$_IPangolinStakingPositions_$17441t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_uint160_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_address(value)\n    }\n    function abi_decode_struct_RewardSummations_fromMemory(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n        value := allocate_memory()\n        mstore(value, mload(headStart))\n        mstore(add(value, 32), mload(add(headStart, 32)))\n    }\n    function abi_decode_uint48_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_Position_$17418_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := sub(dataEnd, headStart)\n        if slt(_1, 224) { revert(0, 0) }\n        let value := allocate_memory_2917()\n        if slt(_1, 0x40) { revert(0, 0) }\n        let value_1 := allocate_memory()\n        let value_2 := mload(headStart)\n        if iszero(eq(value_2, and(value_2, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n        mstore(value_1, value_2)\n        let value_3 := mload(add(headStart, 32))\n        validator_revert_address(value_3)\n        mstore(add(value_1, 32), value_3)\n        mstore(value, value_1)\n        mstore(add(value, 32), abi_decode_struct_RewardSummations_fromMemory(add(headStart, 0x40), dataEnd))\n        mstore(add(value, 0x40), abi_decode_uint160_fromMemory(add(headStart, 128)))\n        mstore(add(value, 0x60), abi_decode_uint48_fromMemory(add(headStart, 0xa0)))\n        mstore(add(value, 128), abi_decode_uint48_fromMemory(add(headStart, 192)))\n        value0 := value\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        let _1 := 1\n        switch and(slotValue, _1)\n        case 0 {\n            mstore(pos, and(slotValue, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value)\n            let _2 := 0x20\n            let dataPos := keccak256(0, _2)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _2) }\n            {\n                mstore(add(pos, i), sload(dataPos))\n                dataPos := add(dataPos, _1)\n            }\n            ret := add(pos, length)\n        }\n    }\n    function abi_encode_tuple_packed_t_stringliteral_ec3b898d1750454430826289f081b24a57051cc258a4f2a50d9b65e96410f989_t_string_storage_t_stringliteral_85bb1728d9d30adc45f34d75d3b5ae3a82445483cf22e70449812b9c25089bcf_t_string_storage_t_stringliteral_7ddfc767b89a5297b7bc6b4077a7181152d7e4a2ac6cb5e988b4f3c73f8c2065__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, 0x3c7376672077696474683d2236363322206865696768743d2231303830222076)\n        mstore(add(pos, 32), 0x696577626f783d223020302036363320313038302220786d6c6e733d22687474)\n        mstore(add(pos, 64), 0x703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a78)\n        mstore(add(pos, 96), 0x6c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c69)\n        mstore(add(pos, 128), 0x6e6b223e203c7374796c6520747970653d22746578742f637373223e2040666f)\n        mstore(add(pos, 160), 0x6e742d66616365207b20666f6e742d66616d696c793a2022506f7070696e7322)\n        mstore(add(pos, 192), \"; src: url(\")\n        let _1 := abi_encode_string_storage(value0, add(pos, 203))\n        mstore(_1, 0x2920666f726d61742822776f66663222293b207d2040666f6e742d6661636520)\n        mstore(add(_1, 32), 0x7b20666f6e742d66616d696c793a2022506f7070696e73223b20666f6e742d77)\n        mstore(add(_1, 64), \"eight: bold; src: url(\")\n        let _2 := abi_encode_string_storage(value1, add(_1, 86))\n        mstore(_2, 0x2920666f726d61742822776f66663222293b207d2074657874207b20636f6c6f)\n        mstore(add(_2, 32), \"r:#1a1a1a; font-family:Poppins, \")\n        mstore(add(_2, 64), \"sans-serif; font-size:24.73px; }\")\n        mstore(add(_2, 96), \" .data_span { font-weight:bold; \")\n        mstore(add(_2, 128), \"font-size:37.09px } .text_bottom\")\n        mstore(add(_2, 160), \" .info_span { font-size: 28.81px\")\n        mstore(add(_2, 192), \" } .text_bottom .data_span { fon\")\n        mstore(add(_2, 224), \"t-size: 43.21px } </style> <imag\")\n        mstore(add(_2, 256), 0x65207072657365727665417370656374526174696f3d22784d6964594d696420)\n        mstore(add(_2, 288), 0x736c696365222077696474683d223130302522206865696768743d2231303025)\n        mstore(add(_2, 320), 0x2220786c696e6b3a687265663d22000000000000000000000000000000000000)\n        end := add(_2, 334)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_stringliteral_71fb(pos) -> end\n    {\n        mstore(pos, 0x253c2f747370616e3e3c2f746578743e203c7465787420783d223333312e3522)\n        mstore(add(pos, 32), 0x20793d22313030312e39372220746578742d616e63686f723d226d6964646c65)\n        mstore(add(pos, 64), 0x2220636c6173733d22746578745f626f74746f6d223e3c747370616e20636c61)\n        mstore(add(pos, 96), 0x73733d22696e666f5f7370616e223e4541524e45443a203c2f747370616e3e3c)\n        mstore(add(pos, 128), 0x747370616e20636c6173733d22646174615f7370616e2220783d223333312e35)\n        mstore(add(pos, 160), 0x222064793d2235312e3835223e262333363b0000000000000000000000000000)\n        end := add(pos, 178)\n    }\n    function abi_encode_stringliteral_681a(pos) -> end\n    {\n        mstore(pos, \" \")\n        end := add(pos, 1)\n    }\n    function abi_encode_stringliteral(pos) -> end\n    {\n        mstore(pos, \"</tspan></text> </svg>\")\n        end := add(pos, 22)\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_126e987cb53e9e978d2b6808a31a5dabcc9ade817848aa8224230df7b024f7a1_t_string_storage_t_stringliteral_86751ac112c8bd0ae01ed6f5f965b45154e9a942a13b0461fee321be26fab98c_t_string_memory_ptr_t_stringliteral_637d8234fbae871b6717a67ca5e765d25997fab608e6f7d402a8517d1b2934d3_t_string_memory_ptr_t_stringliteral_71fbda23d91b84717b91e7e4d3c431d4704a76fb8430203edf0acff8b0d9b2b9_t_string_storage_t_stringliteral_681afa780d17da29203322b473d3f210a7d621259a4e6ce9e403f5a266ff719a_t_string_memory_ptr_t_stringliteral_7607d31c6a4a9d8a907bf0a596a0b66f726b0ae204d30d513f71769ba03a9586__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value5, value4, value3, value2, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        mstore(end_1, 0x223e3c2f696d6167653e203c7465787420783d2232372e332220793d2235342e)\n        mstore(add(end_1, 0x20), 0x392220746578742d616e63686f723d2273746172742220636c6173733d227465)\n        mstore(add(end_1, 64), 0x78745f746f70223e3c747370616e20636c6173733d22696e666f5f7370616e22)\n        mstore(add(end_1, 96), \">&#36;\")\n        let _1 := abi_encode_string_storage(value1, add(end_1, 102))\n        mstore(_1, 0x3a203c2f747370616e3e3c747370616e20636c6173733d22646174615f737061)\n        mstore(add(_1, 0x20), 0x6e223e0000000000000000000000000000000000000000000000000000000000)\n        let length_1 := mload(value2)\n        copy_memory_to_memory(add(value2, 0x20), add(_1, 35), length_1)\n        let _2 := add(_1, length_1)\n        mstore(add(_2, 35), 0x3c2f747370616e3e3c2f746578743e203c7465787420783d223633352e372220)\n        mstore(add(_2, 67), 0x793d2235342e392220746578742d616e63686f723d22656e642220636c617373)\n        mstore(add(_2, 99), 0x3d22746578745f746f70223e3c747370616e20636c6173733d22696e666f5f73)\n        mstore(add(_2, 131), 0x70616e223e4150523a203c2f747370616e3e3c747370616e20636c6173733d22)\n        mstore(add(_2, 163), 0x646174615f7370616e223e000000000000000000000000000000000000000000)\n        end := abi_encode_stringliteral(abi_encode_string(value5, abi_encode_stringliteral_681a(abi_encode_string_storage(value4, abi_encode_stringliteral_71fb(abi_encode_string(value3, add(_2, 174)))))))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_stringliteral_2ca4(pos) -> end\n    {\n        mstore(pos, 0x7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f)\n        mstore(add(pos, 32), 0x76616c7565223a2239222c2274726169745f74797065223a2242616c616e6365)\n        mstore(add(pos, 64), 0x204c6576656c222c2276616c7565223a00000000000000000000000000000000)\n        end := add(pos, 80)\n    }\n    function abi_encode_stringliteral_19ab(pos) -> end\n    {\n        mstore(pos, 0x7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f)\n        mstore(add(pos, 32), 0x76616c7565223a2239222c2274726169745f74797065223a224475726174696f)\n        mstore(add(pos, 64), 0x6e204c6576656c222c2276616c7565223a000000000000000000000000000000)\n        end := add(pos, 81)\n    }\n    function abi_encode_stringliteral_c7dd(pos) -> end\n    {\n        mstore(pos, 0x7d5d2c22696d616765223a22646174613a696d6167652f7376672b786d6c3b62)\n        mstore(add(pos, 32), \"ase64,\")\n        end := add(pos, 38)\n    }\n    function abi_encode_stringliteral_16b4(pos) -> end\n    {\n        mstore(pos, 0x227d0a0000000000000000000000000000000000000000000000000000000000)\n        end := add(pos, 3)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_92dbaf40f9706d2b597b386be95e10fa691cc1efcd1ea5168aeb9a5b1a0617e7_t_string_memory_ptr_t_stringliteral_4c216c0cacb2979ab2fa64169618dff639cb413b3341193391c2734a2cc9c17d_t_string_storage_t_stringliteral_183a274fb9786dd6ae964fc99afc6a718b130a0fb2dc308fd55c8ad4e85e406f_t_string_storage_t_stringliteral_b829c54deee6024f4fa91ed5017266784331ef97933f654b85db88fe01baaf8d_t_string_memory_ptr_t_stringliteral_d50fcf646cea104ad238e6de7b6827a2b6606ec72e8db9322fccb4f5a07d1e58_t_string_memory_ptr_t_stringliteral_2ca42eadce1df16387bc81ad68fab938e98dd01c0b7bc001f3e1e14d11329c9d_t_string_memory_ptr_t_stringliteral_19ab5e81ebf345e2bd2ab6dc40a164c9472240a793cc475733cdb36ff503bd27_t_string_memory_ptr_t_stringliteral_c7dd93b963919fee8b26c45310fc9a39dced1698a9189a666fe49aaeb2a476b4_t_string_memory_ptr_t_stringliteral_16b4dd963f5e31b977c360b753d919414d2417f3859f98a1987c53bd5d752167__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value7, value6, value5, value4, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, 0x7b226e616d65223a2250616e676f6c696e205374616b696e6720506f73697469)\n        mstore(add(pos, 32), \"on #\")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 32), add(pos, 36), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 36), 0x222c226465736372697074696f6e223a22000000000000000000000000000000)\n        let _2 := abi_encode_string_storage(value1, add(_1, 53))\n        mstore(_2, 0x222c2265787465726e616c5f75726c223a220000000000000000000000000000)\n        let _3 := abi_encode_string_storage(value2, add(_2, 18))\n        mstore(_3, 0x222c2261747472696275746573223a5b7b2274726169745f74797065223a2242)\n        mstore(add(_3, 32), 0x616c616e6365222c2276616c7565223a00000000000000000000000000000000)\n        let length_1 := mload(value3)\n        copy_memory_to_memory(add(value3, 32), add(_3, 48), length_1)\n        let _4 := add(_3, length_1)\n        mstore(add(_4, 48), 0x7d2c7b22646973706c61795f74797065223a2264617465222c2274726169745f)\n        mstore(add(_4, 80), 0x74797065223a22456e7472792054696d65222c2276616c7565223a0000000000)\n        end := abi_encode_stringliteral_16b4(abi_encode_string(value7, abi_encode_stringliteral_c7dd(abi_encode_string(value6, abi_encode_stringliteral_19ab(abi_encode_string(value5, abi_encode_stringliteral_2ca4(abi_encode_string(value4, add(_4, 107)))))))))\n    }\n    function abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, \"data:application/json;base64,\")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 29), length)\n        end := add(add(pos, length), 29)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr_t_string_memory_ptr_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        let _1 := abi_encode_string_storage(value0, pos)\n        let length := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), _1, length)\n        let end_1 := add(_1, length)\n        let length_1 := mload(value2)\n        copy_memory_to_memory(add(value2, 0x20), end_1, length_1)\n        end := abi_encode_string_storage(value3, add(end_1, length_1))\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, \"AccessControl: account \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 23), \" is missing role \")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n        end := add(add(_1, length_1), 40)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101985760003560e01c80639010d07c116100e3578063a9ef3aeb1161008c578063d547741f11610066578063d547741f1461039c578063e89e6075146103af578063e9dc6375146103b757600080fd5b8063a9ef3aeb1461036e578063c4e1750b14610376578063ca15c8731461038957600080fd5b806396a3be7a116100bd57806396a3be7a14610340578063a217fddf14610353578063a33eb2eb1461035b57600080fd5b80639010d07c146102cb57806390c3f38f146102f657806391d148541461030957600080fd5b8063364a9b5f116101455780634c226e9b1161011f5780634c226e9b146102b35780637284e416146102bb5780637b61c320146102c357600080fd5b8063364a9b5f1461027157806336568abe14610279578063388417821461028c57600080fd5b8063248a9ca311610176578063248a9ca3146102185780632c9ea242146102495780632f2ff15d1461025e57600080fd5b806301ffc9a71461019d5780630dde8d27146101c55780631bf671c214610203575b600080fd5b6101b06101ab3660046117bc565b6103ca565b60405190151581526020015b60405180910390f35b600c546101d29060f81b81565b6040517fff0000000000000000000000000000000000000000000000000000000000000090911681526020016101bc565b6102166102113660046118ed565b610426565b005b61023b61022636600461192a565b60009081526020819052604090206001015490565b6040519081526020016101bc565b610251610461565b6040516101bc919061196f565b61021661026c3660046119b7565b6104ef565b610251610514565b6102166102873660046119b7565b610521565b61023b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8081565b6102516105b2565b6102516105bf565b6102516105cc565b6102de6102d93660046119e7565b6105d9565b6040516001600160a01b0390911681526020016101bc565b6102166103043660046118ed565b6105f8565b6101b06103173660046119b7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61021661034e366004611a09565b61062e565b61023b600081565b610216610369366004611a6d565b610677565b6102516106b8565b610216610384366004611a09565b6106c5565b61023b61039736600461192a565b610708565b6102166103aa3660046119b7565b61071f565b610251610744565b6102516103c5366004611aaf565b610751565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f5a05180f000000000000000000000000000000000000000000000000000000001480610420575061042082610b5c565b92915050565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8061045081610bf3565b600e61045c8382611b63565b505050565b6011805461046e90611adb565b80601f016020809104026020016040519081016040528092919081815260200182805461049a90611adb565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b505050505081565b60008281526020819052604090206001015461050a81610bf3565b61045c8383610c00565b6010805461046e90611adb565b6001600160a01b03811633146105a45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6105ae8282610c22565b5050565b600f805461046e90611adb565b600d805461046e90611adb565b6013805461046e90611adb565b60008281526001602052604081206105f19083610c44565b9392505050565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8061062281610bf3565b600d61045c8382611b63565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f8061065881610bf3565b600f6106648482611b63565b5060106106718382611b63565b50505050565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f806106a181610bf3565b50600c805460ff191660f89290921c919091179055565b6012805461046e90611adb565b7f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f806106ef81610bf3565b60116106fb8482611b63565b5060126106718382611b63565b600081815260016020526040812061042090610c50565b60008281526020819052604090206001015461073a81610bf3565b61045c8383610c22565b600e805461046e90611adb565b6040517f99fbab88000000000000000000000000000000000000000000000000000000008152600481018290526060906000906001600160a01b038516906399fbab889060240160e060405180830381865afa1580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190611c79565b5180519091506bffffffffffffffffffffffff1660008115610813578183602001516001600160a01b031661080e9190611d59565b610815565b425b9050600082156108cb576040517f468cc41e0000000000000000000000000000000000000000000000000000000081526004810187905283906001600160a01b0389169063468cc41e90602401602060405180830381865afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611d6d565b6108b1906301e13380611d86565b6108bc906064611d86565b6108c69190611d59565b6108ce565b60005b90506000610949886001600160a01b031663496cea98896040518263ffffffff1660e01b815260040161090391815260200190565b602060405180830381865afa158015610920573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109449190611d6d565b610c5a565b905061095484610c5a565b9350600061096485610194610cb1565b9050600061097d6109758642611da5565b612580610cb1565b905060606000600f6010604051602001610998929190611e2f565b604051602081830303815290604052905060006109b58585610e1c565b60136109c08b610e5e565b6109c98a610e5e565b60136109d48b610e5e565b6040516020016109e99695949392919061218c565b6040516020818303038152906040529050610a248282604051602001610a109291906124d3565b604051602081830303815290604052611039565b925050506060610a76610a368c61118c565b600d600e610a438c61118c565b610a4c8c61118c565b610a558a61118c565b610a5e8a61118c565b89604051602001610a10989796959493929190612502565b905080604051602001610a899190612817565b604051602081830303815290604052995050505050505050505092915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166105ae576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610b033390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006105f1836001600160a01b03841661122c565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061042057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610420565b610bfd813361127b565b50565b610c0a8282610aa9565b600082815260016020526040902061045c9082610b47565b610c2c82826112ee565b600082815260016020526040902061045c908261136d565b60006105f18383611382565b6000610420825490565b60006706f05b59d3b20000610c77670de0b6b3a76400008461285c565b1015610c9457610c8f670de0b6b3a764000083611d59565b610420565b610ca6670de0b6b3a764000083611d59565b610420906001612870565b600b54600090610cc2908390611d86565b610cce6103e885611d86565b10610cdb57506009610420565b600a54610ce9908390611d86565b610cf56103e885611d86565b10610d0257506008610420565b600954610d10908390611d86565b610d1c6103e885611d86565b10610d2957506007610420565b600854610d37908390611d86565b610d436103e885611d86565b10610d5057506006610420565b600754610d5e908390611d86565b610d6a6103e885611d86565b10610d7757506005610420565b600654610d85908390611d86565b610d916103e885611d86565b10610d9e57506004610420565b600554610dac908390611d86565b610db86103e885611d86565b10610dc557506003610420565b600454610dd3908390611d86565b610ddf6103e885611d86565b10610dec57506002610420565b600354610dfa908390611d86565b610e066103e885611d86565b10610e1357506001610420565b50600092915050565b60606011610e298461118c565b610e328461118c565b6012604051602001610e47949392919061289e565b604051602081830303815290604052905092915050565b60606000610e6b8361118c565b805190915060006003821115610e97576003610e88600184611da5565b610e929190611d59565b610e9a565b60005b90506000610ea960038461285c565b9050600080610eb88486612870565b67ffffffffffffffff811115610ed057610ed06117fe565b6040519080825280601f01601f191660200182016040528015610efa576020820181803683370190505b50905060005b8581101561102d578015801590610f175750838110155b8015610f2c575083610f2a60038361285c565b145b15610f9a57610f3a836128e5565b600c5490935060f81b826001610f508685612870565b610f5a9190611da5565b81518110610f6a57610f6a612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b868181518110610fac57610fac612888565b01602001517fff000000000000000000000000000000000000000000000000000000000000001682610fde8584612870565b81518110610fee57610fee612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611026816128e5565b9050610f00565b50979650505050505050565b6060815160000361105857505060408051602081019091526000815290565b60006040518060600160405280604081526020016129ae60409139905060006003845160026110879190612870565b6110919190611d59565b61109c906004611d86565b67ffffffffffffffff8111156110b4576110b46117fe565b6040519080825280601f01601f1916602001820160405280156110de576020820181803683370190505b509050600182016020820185865187015b8082101561114a576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f81168501518453506001830192506110ef565b5050600386510660018114611166576002811461117957611181565b603d6001830353603d6002830353611181565b603d60018303535b509195945050505050565b60606000611199836113ac565b600101905060008167ffffffffffffffff8111156111b9576111b96117fe565b6040519080825280601f01601f1916602001820160405280156111e3576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846111ed57509392505050565b600081815260018301602052604081205461127357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610420565b506000610420565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166105ae576112ac8161148e565b6112b78360206114a0565b6040516020016112c89291906128ff565b60408051601f198184030181529082905262461bcd60e51b825261059b9160040161196f565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156105ae576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006105f1836001600160a01b0384166116c9565b600082600001828154811061139957611399612888565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106113f5577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611421576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061143f57662386f26fc10000830492506010015b6305f5e1008310611457576305f5e100830492506008015b612710831061146b57612710830492506004015b6064831061147d576064830492506002015b600a83106104205760010192915050565b60606104206001600160a01b03831660145b606060006114af836002611d86565b6114ba906002612870565b67ffffffffffffffff8111156114d2576114d26117fe565b6040519080825280601f01601f1916602001820160405280156114fc576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061153357611533612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061159657611596612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006115d2846002611d86565b6115dd906001612870565b90505b600181111561167a577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061161e5761161e612888565b1a60f81b82828151811061163457611634612888565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361167381612980565b90506115e0565b5083156105f15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161059b565b600081815260018301602052604081205480156117b25760006116ed600183611da5565b855490915060009061170190600190611da5565b905081811461176657600086600001828154811061172157611721612888565b906000526020600020015490508087600001848154811061174457611744612888565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061177757611777612997565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610420565b6000915050610420565b6000602082840312156117ce57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146105f157600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611837576118376117fe565b60405290565b60405160a0810167ffffffffffffffff81118282101715611837576118376117fe565b600082601f83011261187157600080fd5b813567ffffffffffffffff8082111561188c5761188c6117fe565b604051601f8301601f19908116603f011681019082821181831017156118b4576118b46117fe565b816040528381528660208588010111156118cd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156118ff57600080fd5b813567ffffffffffffffff81111561191657600080fd5b61192284828501611860565b949350505050565b60006020828403121561193c57600080fd5b5035919050565b60005b8381101561195e578181015183820152602001611946565b838111156106715750506000910152565b602081526000825180602084015261198e816040850160208701611943565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610bfd57600080fd5b600080604083850312156119ca57600080fd5b8235915060208301356119dc816119a2565b809150509250929050565b600080604083850312156119fa57600080fd5b50508035926020909101359150565b60008060408385031215611a1c57600080fd5b823567ffffffffffffffff80821115611a3457600080fd5b611a4086838701611860565b93506020850135915080821115611a5657600080fd5b50611a6385828601611860565b9150509250929050565b600060208284031215611a7f57600080fd5b81357fff00000000000000000000000000000000000000000000000000000000000000811681146105f157600080fd5b60008060408385031215611ac257600080fd5b8235611acd816119a2565b946020939093013593505050565b600181811c90821680611aef57607f821691505b602082108103611b0f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561045c57600081815260208120601f850160051c81016020861015611b3c5750805b601f850160051c820191505b81811015611b5b57828155600101611b48565b505050505050565b815167ffffffffffffffff811115611b7d57611b7d6117fe565b611b9181611b8b8454611adb565b84611b15565b602080601f831160018114611bc65760008415611bae5750858301515b600019600386901b1c1916600185901b178555611b5b565b600085815260208120601f198616915b82811015611bf557888601518255948401946001909101908401611bd6565b5085821015611c135787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8051611c2e816119a2565b919050565b600060408284031215611c4557600080fd5b611c4d611814565b9050815181526020820151602082015292915050565b805165ffffffffffff81168114611c2e57600080fd5b600081830360e0811215611c8c57600080fd5b611c9461183d565b6040821215611ca257600080fd5b611caa611814565b915083516bffffffffffffffffffffffff81168114611cc857600080fd5b82526020840151611cd8816119a2565b6020830152818152611ced8560408601611c33565b6020820152611cfe60808501611c23565b6040820152611d0f60a08501611c63565b6060820152611d2060c08501611c63565b6080820152949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082611d6857611d68611d2d565b500490565b600060208284031215611d7f57600080fd5b5051919050565b6000816000190483118215151615611da057611da0611d43565b500290565b600082821015611db757611db7611d43565b500390565b60008154611dc981611adb565b60018281168015611de15760018114611df657611e25565b60ff1984168752821515830287019450611e25565b8560005260208060002060005b85811015611e1c5781548a820152908401908201611e03565b50505082870194505b5050505092915050565b7f3c7376672077696474683d2236363322206865696768743d223130383022207681527f696577626f783d223020302036363320313038302220786d6c6e733d2268747460208201527f703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a7860408201527f6c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c6960608201527f6e6b223e203c7374796c6520747970653d22746578742f637373223e2040666f60808201527f6e742d66616365207b20666f6e742d66616d696c793a2022506f7070696e732260a08201527f3b207372633a2075726c2800000000000000000000000000000000000000000060c08201526000611f4560cb830185611dbc565b7f2920666f726d61742822776f66663222293b207d2040666f6e742d666163652081527f7b20666f6e742d66616d696c793a2022506f7070696e73223b20666f6e742d7760208201527f65696768743a20626f6c643b207372633a2075726c28000000000000000000006040820152611fc16056820185611dbc565b7f2920666f726d61742822776f66663222293b207d2074657874207b20636f6c6f81527f723a233161316131613b20666f6e742d66616d696c793a506f7070696e732c2060208201527f73616e732d73657269663b20666f6e742d73697a653a32342e373370783b207d60408201527f202e646174615f7370616e207b20666f6e742d7765696768743a626f6c643b2060608201527f666f6e742d73697a653a33372e30397078207d202e746578745f626f74746f6d60808201527f202e696e666f5f7370616e207b20666f6e742d73697a653a2032382e3831707860a08201527f207d202e746578745f626f74746f6d202e646174615f7370616e207b20666f6e60c08201527f742d73697a653a2034332e32317078207d203c2f7374796c653e203c696d616760e08201527f65207072657365727665417370656374526174696f3d22784d6964594d6964206101008201527f736c696365222077696474683d223130302522206865696768743d22313030256101208201527f2220786c696e6b3a687265663d2200000000000000000000000000000000000061014082015261014e0195945050505050565b60008151612182818560208601611943565b9290920192915050565b6000875161219e818460208c01611943565b7f223e3c2f696d6167653e203c7465787420783d2232372e332220793d2235342e9083019081527f392220746578742d616e63686f723d2273746172742220636c6173733d22746560208201527f78745f746f70223e3c747370616e20636c6173733d22696e666f5f7370616e2260408201527f3e262333363b000000000000000000000000000000000000000000000000000060608201526122446066820189611dbc565b90507f3a203c2f747370616e3e3c747370616e20636c6173733d22646174615f73706181527f6e223e0000000000000000000000000000000000000000000000000000000000602082015286516122a2816023840160208b01611943565b7f3c2f747370616e3e3c2f746578743e203c7465787420783d223633352e372220602392909101918201527f793d2235342e392220746578742d616e63686f723d22656e642220636c61737360438201527f3d22746578745f746f70223e3c747370616e20636c6173733d22696e666f5f7360638201527f70616e223e4150523a203c2f747370616e3e3c747370616e20636c6173733d2260838201527f646174615f7370616e223e00000000000000000000000000000000000000000060a38201526124c661249d61249761246e61246861238160ae87018c612170565b7f253c2f747370616e3e3c2f746578743e203c7465787420783d223333312e352281527f20793d22313030312e39372220746578742d616e63686f723d226d6964646c6560208201527f2220636c6173733d22746578745f626f74746f6d223e3c747370616e20636c6160408201527f73733d22696e666f5f7370616e223e4541524e45443a203c2f747370616e3e3c60608201527f747370616e20636c6173733d22646174615f7370616e2220783d223333312e3560808201527f222064793d2235312e3835223e262333363b000000000000000000000000000060a082015260b20190565b89611dbc565b7f2000000000000000000000000000000000000000000000000000000000000000815260010190565b86612170565b7f3c2f747370616e3e3c2f746578743e203c2f7376673e00000000000000000000815260160190565b9998505050505050505050565b600083516124e5818460208801611943565b8351908301906124f9818360208801611943565b01949350505050565b7f7b226e616d65223a2250616e676f6c696e205374616b696e6720506f7369746981527f6f6e202300000000000000000000000000000000000000000000000000000000602082015260008951612560816024850160208e01611943565b7f222c226465736372697074696f6e223a22000000000000000000000000000000602491840191820152612597603582018b611dbc565b90507f222c2265787465726e616c5f75726c223a22000000000000000000000000000081526125c9601282018a611dbc565b90507f222c2261747472696275746573223a5b7b2274726169745f74797065223a224281527f616c616e6365222c2276616c7565223a0000000000000000000000000000000060208201528751612627816030840160208c01611943565b7f7d2c7b22646973706c61795f74797065223a2264617465222c2274726169745f603092909101918201527f74797065223a22456e7472792054696d65222c2276616c7565223a000000000060508201526128086127df61249761279061278a61271561270f61269a606b89018f612170565b7f7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f81527f76616c7565223a2239222c2274726169745f74797065223a2242616c616e636560208201527f204c6576656c222c2276616c7565223a00000000000000000000000000000000604082015260500190565b8c612170565b7f7d2c7b22646973706c61795f74797065223a226e756d626572222c226d61785f81527f76616c7565223a2239222c2274726169745f74797065223a224475726174696f60208201527f6e204c6576656c222c2276616c7565223a000000000000000000000000000000604082015260510190565b89612170565b7f7d5d2c22696d616765223a22646174613a696d6167652f7376672b786d6c3b6281527f61736536342c0000000000000000000000000000000000000000000000000000602082015260260190565b7f227d0a0000000000000000000000000000000000000000000000000000000000815260030190565b9b9a5050505050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081526000825161284f81601d850160208701611943565b91909101601d0192915050565b60008261286b5761286b611d2d565b500690565b6000821982111561288357612883611d43565b500190565b634e487b7160e01b600052603260045260246000fd5b60006128aa8287611dbc565b85516128ba818360208a01611943565b85519101906128cd818360208901611943565b6128d981830186611dbc565b98975050505050505050565b600060001982036128f8576128f8611d43565b5060010190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612937816017850160208801611943565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351612974816028840160208801611943565b01602801949350505050565b60008161298f5761298f611d43565b506000190190565b634e487b7160e01b600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122049786221452f415f2738edc8b34fa7099e95e61b0fe0950de9faa2ed450e53fb64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x198 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9010D07C GT PUSH2 0xE3 JUMPI DUP1 PUSH4 0xA9EF3AEB GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xE89E6075 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0xE9DC6375 EQ PUSH2 0x3B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA9EF3AEB EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xC4E1750B EQ PUSH2 0x376 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x389 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x96A3BE7A GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x96A3BE7A EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0xA33EB2EB EQ PUSH2 0x35B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9010D07C EQ PUSH2 0x2CB JUMPI DUP1 PUSH4 0x90C3F38F EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x364A9B5F GT PUSH2 0x145 JUMPI DUP1 PUSH4 0x4C226E9B GT PUSH2 0x11F JUMPI DUP1 PUSH4 0x4C226E9B EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x7284E416 EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x7B61C320 EQ PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x364A9B5F EQ PUSH2 0x271 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x38841782 EQ PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x176 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x218 JUMPI DUP1 PUSH4 0x2C9EA242 EQ PUSH2 0x249 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x19D JUMPI DUP1 PUSH4 0xDDE8D27 EQ PUSH2 0x1C5 JUMPI DUP1 PUSH4 0x1BF671C2 EQ PUSH2 0x203 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0 PUSH2 0x1AB CALLDATASIZE PUSH1 0x4 PUSH2 0x17BC JUMP JUMPDEST PUSH2 0x3CA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0xC SLOAD PUSH2 0x1D2 SWAP1 PUSH1 0xF8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x216 PUSH2 0x211 CALLDATASIZE PUSH1 0x4 PUSH2 0x18ED JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH2 0x226 CALLDATASIZE PUSH1 0x4 PUSH2 0x192A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x251 PUSH2 0x461 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x196F JUMP JUMPDEST PUSH2 0x216 PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0x4EF JUMP JUMPDEST PUSH2 0x251 PUSH2 0x514 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0x521 JUMP JUMPDEST PUSH2 0x23B PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 DUP2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x5B2 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x5BF JUMP JUMPDEST PUSH2 0x251 PUSH2 0x5CC JUMP JUMPDEST PUSH2 0x2DE PUSH2 0x2D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x19E7 JUMP JUMPDEST PUSH2 0x5D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH2 0x216 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x18ED JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH2 0x1B0 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x34E CALLDATASIZE PUSH1 0x4 PUSH2 0x1A09 JUMP JUMPDEST PUSH2 0x62E JUMP JUMPDEST PUSH2 0x23B PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x369 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A6D JUMP JUMPDEST PUSH2 0x677 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x6B8 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x384 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A09 JUMP JUMPDEST PUSH2 0x6C5 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x397 CALLDATASIZE PUSH1 0x4 PUSH2 0x192A JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST PUSH2 0x216 PUSH2 0x3AA CALLDATASIZE PUSH1 0x4 PUSH2 0x19B7 JUMP JUMPDEST PUSH2 0x71F JUMP JUMPDEST PUSH2 0x251 PUSH2 0x744 JUMP JUMPDEST PUSH2 0x251 PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1AAF JUMP JUMPDEST PUSH2 0x751 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5A05180F00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x420 JUMPI POP PUSH2 0x420 DUP3 PUSH2 0xB5C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x450 DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xE PUSH2 0x45C DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x49A SWAP1 PUSH2 0x1ADB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4E7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4BC JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4E7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4CA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x50A DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH2 0x45C DUP4 DUP4 PUSH2 0xC00 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x5A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x20726F6C657320666F722073656C660000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5AE DUP3 DUP3 PUSH2 0xC22 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x13 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x5F1 SWAP1 DUP4 PUSH2 0xC44 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x622 DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xD PUSH2 0x45C DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x658 DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0xF PUSH2 0x664 DUP5 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP PUSH1 0x10 PUSH2 0x671 DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x6A1 DUP2 PUSH2 0xBF3 JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xF8 SWAP3 SWAP1 SWAP3 SHR SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x12 DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH32 0x6BD6B5318A46E5FFF572D5E4258A20774AAB40CC35AC7680654B9081FCC82F80 PUSH2 0x6EF DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x11 PUSH2 0x6FB DUP5 DUP3 PUSH2 0x1B63 JUMP JUMPDEST POP PUSH1 0x12 PUSH2 0x671 DUP4 DUP3 PUSH2 0x1B63 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x420 SWAP1 PUSH2 0xC50 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x73A DUP2 PUSH2 0xBF3 JUMP JUMPDEST PUSH2 0x45C DUP4 DUP4 PUSH2 0xC22 JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH2 0x46E SWAP1 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x99FBAB8800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x99FBAB88 SWAP1 PUSH1 0x24 ADD PUSH1 0xE0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7D9 SWAP2 SWAP1 PUSH2 0x1C79 JUMP JUMPDEST MLOAD DUP1 MLOAD SWAP1 SWAP2 POP PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO PUSH2 0x813 JUMPI DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x80E SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x815 JUMP JUMPDEST TIMESTAMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ISZERO PUSH2 0x8CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x468CC41E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND SWAP1 PUSH4 0x468CC41E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x87F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A3 SWAP2 SWAP1 PUSH2 0x1D6D JUMP JUMPDEST PUSH2 0x8B1 SWAP1 PUSH4 0x1E13380 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x8BC SWAP1 PUSH1 0x64 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x8C6 SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x8CE JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x949 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x496CEA98 DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x903 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x920 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x944 SWAP2 SWAP1 PUSH2 0x1D6D JUMP JUMPDEST PUSH2 0xC5A JUMP JUMPDEST SWAP1 POP PUSH2 0x954 DUP5 PUSH2 0xC5A JUMP JUMPDEST SWAP4 POP PUSH1 0x0 PUSH2 0x964 DUP6 PUSH2 0x194 PUSH2 0xCB1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x97D PUSH2 0x975 DUP7 TIMESTAMP PUSH2 0x1DA5 JUMP JUMPDEST PUSH2 0x2580 PUSH2 0xCB1 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 PUSH1 0x0 PUSH1 0xF PUSH1 0x10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x998 SWAP3 SWAP2 SWAP1 PUSH2 0x1E2F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 PUSH2 0x9B5 DUP6 DUP6 PUSH2 0xE1C JUMP JUMPDEST PUSH1 0x13 PUSH2 0x9C0 DUP12 PUSH2 0xE5E JUMP JUMPDEST PUSH2 0x9C9 DUP11 PUSH2 0xE5E JUMP JUMPDEST PUSH1 0x13 PUSH2 0x9D4 DUP12 PUSH2 0xE5E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9E9 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x218C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xA24 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA10 SWAP3 SWAP2 SWAP1 PUSH2 0x24D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1039 JUMP JUMPDEST SWAP3 POP POP POP PUSH1 0x60 PUSH2 0xA76 PUSH2 0xA36 DUP13 PUSH2 0x118C JUMP JUMPDEST PUSH1 0xD PUSH1 0xE PUSH2 0xA43 DUP13 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xA4C DUP13 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xA55 DUP11 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xA5E DUP11 PUSH2 0x118C JUMP JUMPDEST DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2502 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA89 SWAP2 SWAP1 PUSH2 0x2817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP10 POP POP POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5AE JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xB03 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x122C JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x420 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0x420 JUMP JUMPDEST PUSH2 0xBFD DUP2 CALLER PUSH2 0x127B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xC0A DUP3 DUP3 PUSH2 0xAA9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x45C SWAP1 DUP3 PUSH2 0xB47 JUMP JUMPDEST PUSH2 0xC2C DUP3 DUP3 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x45C SWAP1 DUP3 PUSH2 0x136D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F1 DUP4 DUP4 PUSH2 0x1382 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x420 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0x6F05B59D3B20000 PUSH2 0xC77 PUSH8 0xDE0B6B3A7640000 DUP5 PUSH2 0x285C JUMP JUMPDEST LT ISZERO PUSH2 0xC94 JUMPI PUSH2 0xC8F PUSH8 0xDE0B6B3A7640000 DUP4 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x420 JUMP JUMPDEST PUSH2 0xCA6 PUSH8 0xDE0B6B3A7640000 DUP4 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x420 SWAP1 PUSH1 0x1 PUSH2 0x2870 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 PUSH2 0xCC2 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xCCE PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xCDB JUMPI POP PUSH1 0x9 PUSH2 0x420 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0xCE9 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xCF5 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD02 JUMPI POP PUSH1 0x8 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0xD10 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD1C PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD29 JUMPI POP PUSH1 0x7 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0xD37 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD43 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD50 JUMPI POP PUSH1 0x6 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0xD5E SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD6A PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD77 JUMPI POP PUSH1 0x5 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH2 0xD85 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xD91 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xD9E JUMPI POP PUSH1 0x4 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0xDAC SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xDB8 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xDC5 JUMPI POP PUSH1 0x3 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH2 0xDD3 SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xDDF PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xDEC JUMPI POP PUSH1 0x2 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0xDFA SWAP1 DUP4 SWAP1 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0xE06 PUSH2 0x3E8 DUP6 PUSH2 0x1D86 JUMP JUMPDEST LT PUSH2 0xE13 JUMPI POP PUSH1 0x1 PUSH2 0x420 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x11 PUSH2 0xE29 DUP5 PUSH2 0x118C JUMP JUMPDEST PUSH2 0xE32 DUP5 PUSH2 0x118C JUMP JUMPDEST PUSH1 0x12 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE47 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x289E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xE6B DUP4 PUSH2 0x118C JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0xE97 JUMPI PUSH1 0x3 PUSH2 0xE88 PUSH1 0x1 DUP5 PUSH2 0x1DA5 JUMP JUMPDEST PUSH2 0xE92 SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0xE9A JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEA9 PUSH1 0x3 DUP5 PUSH2 0x285C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0xEB8 DUP5 DUP7 PUSH2 0x2870 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xED0 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xEFA JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x102D JUMPI DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0xF17 JUMPI POP DUP4 DUP2 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xF2C JUMPI POP DUP4 PUSH2 0xF2A PUSH1 0x3 DUP4 PUSH2 0x285C JUMP JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xF9A JUMPI PUSH2 0xF3A DUP4 PUSH2 0x28E5 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 SWAP4 POP PUSH1 0xF8 SHL DUP3 PUSH1 0x1 PUSH2 0xF50 DUP7 DUP6 PUSH2 0x2870 JUMP JUMPDEST PUSH2 0xF5A SWAP2 SWAP1 PUSH2 0x1DA5 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xF6A JUMPI PUSH2 0xF6A PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xFAC JUMPI PUSH2 0xFAC PUSH2 0x2888 JUMP JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND DUP3 PUSH2 0xFDE DUP6 DUP5 PUSH2 0x2870 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xFEE JUMPI PUSH2 0xFEE PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x1026 DUP2 PUSH2 0x28E5 JUMP JUMPDEST SWAP1 POP PUSH2 0xF00 JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x1058 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29AE PUSH1 0x40 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP5 MLOAD PUSH1 0x2 PUSH2 0x1087 SWAP2 SWAP1 PUSH2 0x2870 JUMP JUMPDEST PUSH2 0x1091 SWAP2 SWAP1 PUSH2 0x1D59 JUMP JUMPDEST PUSH2 0x109C SWAP1 PUSH1 0x4 PUSH2 0x1D86 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10B4 JUMPI PUSH2 0x10B4 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x10DE JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x1 DUP3 ADD PUSH1 0x20 DUP3 ADD DUP6 DUP7 MLOAD DUP8 ADD JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x114A JUMPI PUSH1 0x3 DUP3 ADD SWAP2 POP DUP2 MLOAD PUSH1 0x3F DUP2 PUSH1 0x12 SHR AND DUP6 ADD MLOAD DUP5 MSTORE8 PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0x3F DUP2 PUSH1 0xC SHR AND DUP6 ADD MLOAD DUP5 MSTORE8 PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0x3F DUP2 PUSH1 0x6 SHR AND DUP6 ADD MLOAD DUP5 MSTORE8 PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0x3F DUP2 AND DUP6 ADD MLOAD DUP5 MSTORE8 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x10EF JUMP JUMPDEST POP POP PUSH1 0x3 DUP7 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x1166 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1179 JUMPI PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP4 SUB MSTORE8 PUSH1 0x3D PUSH1 0x2 DUP4 SUB MSTORE8 PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x3D PUSH1 0x1 DUP4 SUB MSTORE8 JUMPDEST POP SWAP2 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1199 DUP4 PUSH2 0x13AC JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11B9 JUMPI PUSH2 0x11B9 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11E3 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x11ED JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1273 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x420 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x420 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5AE JUMPI PUSH2 0x12AC DUP2 PUSH2 0x148E JUMP JUMPDEST PUSH2 0x12B7 DUP4 PUSH1 0x20 PUSH2 0x14A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12C8 SWAP3 SWAP2 SWAP1 PUSH2 0x28FF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x59B SWAP2 PUSH1 0x4 ADD PUSH2 0x196F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x5AE JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x16C9 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1399 JUMPI PUSH2 0x1399 PUSH2 0x2888 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x13F5 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1421 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x143F JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1457 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x146B JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x147D JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x420 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x420 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x14AF DUP4 PUSH1 0x2 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x14BA SWAP1 PUSH1 0x2 PUSH2 0x2870 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14D2 JUMPI PUSH2 0x14D2 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14FC JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1533 JUMPI PUSH2 0x1533 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1596 JUMPI PUSH2 0x1596 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x15D2 DUP5 PUSH1 0x2 PUSH2 0x1D86 JUMP JUMPDEST PUSH2 0x15DD SWAP1 PUSH1 0x1 PUSH2 0x2870 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x167A JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x161E JUMPI PUSH2 0x161E PUSH2 0x2888 JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1634 JUMPI PUSH2 0x1634 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1673 DUP2 PUSH2 0x2980 JUMP JUMPDEST SWAP1 POP PUSH2 0x15E0 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x5F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x59B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x17B2 JUMPI PUSH1 0x0 PUSH2 0x16ED PUSH1 0x1 DUP4 PUSH2 0x1DA5 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1701 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1DA5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x1766 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1721 JUMPI PUSH2 0x1721 PUSH2 0x2888 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1744 JUMPI PUSH2 0x1744 PUSH2 0x2888 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x1777 JUMPI PUSH2 0x1777 PUSH2 0x2997 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x420 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x420 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1837 JUMPI PUSH2 0x1837 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1837 JUMPI PUSH2 0x1837 PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1871 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x188C JUMPI PUSH2 0x188C PUSH2 0x17FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x18B4 JUMPI PUSH2 0x18B4 PUSH2 0x17FE JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH2 0x18CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH1 0x20 DUP8 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1922 DUP5 DUP3 DUP6 ADD PUSH2 0x1860 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x193C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x195E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1946 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x671 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x198E DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xBFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x19DC DUP2 PUSH2 0x19A2 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1A34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A40 DUP7 DUP4 DUP8 ADD PUSH2 0x1860 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A63 DUP6 DUP3 DUP7 ADD PUSH2 0x1860 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x5F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1ACD DUP2 PUSH2 0x19A2 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1AEF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1B0F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x45C JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x1B3C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B5B JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1B48 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B7D JUMPI PUSH2 0x1B7D PUSH2 0x17FE JUMP JUMPDEST PUSH2 0x1B91 DUP2 PUSH2 0x1B8B DUP5 SLOAD PUSH2 0x1ADB JUMP JUMPDEST DUP5 PUSH2 0x1B15 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1BAE JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x1B5B JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BF5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x1BD6 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1C13 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C2E DUP2 PUSH2 0x19A2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C4D PUSH2 0x1814 JUMP JUMPDEST SWAP1 POP DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH6 0xFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1C2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB PUSH1 0xE0 DUP2 SLT ISZERO PUSH2 0x1C8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C94 PUSH2 0x183D JUMP JUMPDEST PUSH1 0x40 DUP3 SLT ISZERO PUSH2 0x1CA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CAA PUSH2 0x1814 JUMP JUMPDEST SWAP2 POP DUP4 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1CC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MSTORE PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x1CD8 DUP2 PUSH2 0x19A2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE DUP2 DUP2 MSTORE PUSH2 0x1CED DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x1C33 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1CFE PUSH1 0x80 DUP6 ADD PUSH2 0x1C23 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1D0F PUSH1 0xA0 DUP6 ADD PUSH2 0x1C63 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x1D20 PUSH1 0xC0 DUP6 ADD PUSH2 0x1C63 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D68 JUMPI PUSH2 0x1D68 PUSH2 0x1D2D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1DA0 JUMPI PUSH2 0x1DA0 PUSH2 0x1D43 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1DB7 JUMPI PUSH2 0x1DB7 PUSH2 0x1D43 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x1DC9 DUP2 PUSH2 0x1ADB JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x1DE1 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x1DF6 JUMPI PUSH2 0x1E25 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0x1E25 JUMP JUMPDEST DUP6 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x1E1C JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x1E03 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x3C7376672077696474683D2236363322206865696768743D2231303830222076 DUP2 MSTORE PUSH32 0x696577626F783D223020302036363320313038302220786D6C6E733D22687474 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x703A2F2F7777772E77332E6F72672F323030302F7376672220786D6C6E733A78 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x6C696E6B3D22687474703A2F2F7777772E77332E6F72672F313939392F786C69 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x6E6B223E203C7374796C6520747970653D22746578742F637373223E2040666F PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x6E742D66616365207B20666F6E742D66616D696C793A2022506F7070696E7322 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x3B207372633A2075726C28000000000000000000000000000000000000000000 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1F45 PUSH1 0xCB DUP4 ADD DUP6 PUSH2 0x1DBC JUMP JUMPDEST PUSH32 0x2920666F726D61742822776F66663222293B207D2040666F6E742D6661636520 DUP2 MSTORE PUSH32 0x7B20666F6E742D66616D696C793A2022506F7070696E73223B20666F6E742D77 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x65696768743A20626F6C643B207372633A2075726C2800000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1FC1 PUSH1 0x56 DUP3 ADD DUP6 PUSH2 0x1DBC JUMP JUMPDEST PUSH32 0x2920666F726D61742822776F66663222293B207D2074657874207B20636F6C6F DUP2 MSTORE PUSH32 0x723A233161316131613B20666F6E742D66616D696C793A506F7070696E732C20 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x73616E732D73657269663B20666F6E742D73697A653A32342E373370783B207D PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x202E646174615F7370616E207B20666F6E742D7765696768743A626F6C643B20 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x666F6E742D73697A653A33372E30397078207D202E746578745F626F74746F6D PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x202E696E666F5F7370616E207B20666F6E742D73697A653A2032382E38317078 PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x207D202E746578745F626F74746F6D202E646174615F7370616E207B20666F6E PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x742D73697A653A2034332E32317078207D203C2F7374796C653E203C696D6167 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x65207072657365727665417370656374526174696F3D22784D6964594D696420 PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0x736C696365222077696474683D223130302522206865696768743D2231303025 PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x2220786C696E6B3A687265663D22000000000000000000000000000000000000 PUSH2 0x140 DUP3 ADD MSTORE PUSH2 0x14E ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH2 0x2182 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP8 MLOAD PUSH2 0x219E DUP2 DUP5 PUSH1 0x20 DUP13 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x223E3C2F696D6167653E203C7465787420783D2232372E332220793D2235342E SWAP1 DUP4 ADD SWAP1 DUP2 MSTORE PUSH32 0x392220746578742D616E63686F723D2273746172742220636C6173733D227465 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x78745F746F70223E3C747370616E20636C6173733D22696E666F5F7370616E22 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x3E262333363B0000000000000000000000000000000000000000000000000000 PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2244 PUSH1 0x66 DUP3 ADD DUP10 PUSH2 0x1DBC JUMP JUMPDEST SWAP1 POP PUSH32 0x3A203C2F747370616E3E3C747370616E20636C6173733D22646174615F737061 DUP2 MSTORE PUSH32 0x6E223E0000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP7 MLOAD PUSH2 0x22A2 DUP2 PUSH1 0x23 DUP5 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x3C2F747370616E3E3C2F746578743E203C7465787420783D223633352E372220 PUSH1 0x23 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x793D2235342E392220746578742D616E63686F723D22656E642220636C617373 PUSH1 0x43 DUP3 ADD MSTORE PUSH32 0x3D22746578745F746F70223E3C747370616E20636C6173733D22696E666F5F73 PUSH1 0x63 DUP3 ADD MSTORE PUSH32 0x70616E223E4150523A203C2F747370616E3E3C747370616E20636C6173733D22 PUSH1 0x83 DUP3 ADD MSTORE PUSH32 0x646174615F7370616E223E000000000000000000000000000000000000000000 PUSH1 0xA3 DUP3 ADD MSTORE PUSH2 0x24C6 PUSH2 0x249D PUSH2 0x2497 PUSH2 0x246E PUSH2 0x2468 PUSH2 0x2381 PUSH1 0xAE DUP8 ADD DUP13 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x253C2F747370616E3E3C2F746578743E203C7465787420783D223333312E3522 DUP2 MSTORE PUSH32 0x20793D22313030312E39372220746578742D616E63686F723D226D6964646C65 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2220636C6173733D22746578745F626F74746F6D223E3C747370616E20636C61 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x73733D22696E666F5F7370616E223E4541524E45443A203C2F747370616E3E3C PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x747370616E20636C6173733D22646174615F7370616E2220783D223333312E35 PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x222064793D2235312E3835223E262333363B0000000000000000000000000000 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xB2 ADD SWAP1 JUMP JUMPDEST DUP10 PUSH2 0x1DBC JUMP JUMPDEST PUSH32 0x2000000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP7 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x3C2F747370616E3E3C2F746578743E203C2F7376673E00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP1 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x24E5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x24F9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x7B226E616D65223A2250616E676F6C696E205374616B696E6720506F73697469 DUP2 MSTORE PUSH32 0x6F6E202300000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 DUP10 MLOAD PUSH2 0x2560 DUP2 PUSH1 0x24 DUP6 ADD PUSH1 0x20 DUP15 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x222C226465736372697074696F6E223A22000000000000000000000000000000 PUSH1 0x24 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE PUSH2 0x2597 PUSH1 0x35 DUP3 ADD DUP12 PUSH2 0x1DBC JUMP JUMPDEST SWAP1 POP PUSH32 0x222C2265787465726E616C5F75726C223A220000000000000000000000000000 DUP2 MSTORE PUSH2 0x25C9 PUSH1 0x12 DUP3 ADD DUP11 PUSH2 0x1DBC JUMP JUMPDEST SWAP1 POP PUSH32 0x222C2261747472696275746573223A5B7B2274726169745F74797065223A2242 DUP2 MSTORE PUSH32 0x616C616E6365222C2276616C7565223A00000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE DUP8 MLOAD PUSH2 0x2627 DUP2 PUSH1 0x30 DUP5 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x7D2C7B22646973706C61795F74797065223A2264617465222C2274726169745F PUSH1 0x30 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x74797065223A22456E7472792054696D65222C2276616C7565223A0000000000 PUSH1 0x50 DUP3 ADD MSTORE PUSH2 0x2808 PUSH2 0x27DF PUSH2 0x2497 PUSH2 0x2790 PUSH2 0x278A PUSH2 0x2715 PUSH2 0x270F PUSH2 0x269A PUSH1 0x6B DUP10 ADD DUP16 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x7D2C7B22646973706C61795F74797065223A226E756D626572222C226D61785F DUP2 MSTORE PUSH32 0x76616C7565223A2239222C2274726169745F74797065223A2242616C616E6365 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x204C6576656C222C2276616C7565223A00000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x50 ADD SWAP1 JUMP JUMPDEST DUP13 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x7D2C7B22646973706C61795F74797065223A226E756D626572222C226D61785F DUP2 MSTORE PUSH32 0x76616C7565223A2239222C2274726169745F74797065223A224475726174696F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E204C6576656C222C2276616C7565223A000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x51 ADD SWAP1 JUMP JUMPDEST DUP10 PUSH2 0x2170 JUMP JUMPDEST PUSH32 0x7D5D2C22696D616765223A22646174613A696D6167652F7376672B786D6C3B62 DUP2 MSTORE PUSH32 0x61736536342C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x26 ADD SWAP1 JUMP JUMPDEST PUSH32 0x227D0A0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x3 ADD SWAP1 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH2 0x284F DUP2 PUSH1 0x1D DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1943 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1D ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x286B JUMPI PUSH2 0x286B PUSH2 0x1D2D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2883 JUMPI PUSH2 0x2883 PUSH2 0x1D43 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x28AA DUP3 DUP8 PUSH2 0x1DBC JUMP JUMPDEST DUP6 MLOAD PUSH2 0x28BA DUP2 DUP4 PUSH1 0x20 DUP11 ADD PUSH2 0x1943 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x28CD DUP2 DUP4 PUSH1 0x20 DUP10 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH2 0x28D9 DUP2 DUP4 ADD DUP7 PUSH2 0x1DBC JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x28F8 JUMPI PUSH2 0x28F8 PUSH2 0x1D43 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x2937 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST PUSH32 0x206973206D697373696E6720726F6C6520000000000000000000000000000000 PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2974 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1943 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x298F JUMPI PUSH2 0x298F PUSH2 0x1D43 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID COINBASE TIMESTAMP NUMBER DIFFICULTY GASLIMIT CHAINID SELFBALANCE BASEFEE 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2FA2646970667358 0x22 SLT KECCAK256 0x49 PUSH25 0x6221452F415F2738EDC8B34FA7099E95E61B0FE0950DE9FAA2 0xED GASLIMIT 0xE MSTORE8 0xFB PUSH5 0x736F6C6343 STOP ADDMOD 0xF STOP CALLER ","sourceMap":"964:8519:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;:::i;:::-;;:::i;:::-;;;516:14:60;;509:22;491:41;;479:2;464:18;634:212:1;;;;;;;;1303:37:54;;;;;;;;;;;;717:66:60;705:79;;;687:98;;675:2;660:18;1303:37:54;543:248:60;2644:134:54;;;;;;:::i;:::-;;:::i;:::-;;4378:129:0;;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;;;;2941:25:60;;;2929:2;2914:18;4378:129:0;2795:177:60;1874:76:54;;;:::i;:::-;;;;;;;:::i;4803:145:0:-;;;;;;:::i;:::-;;:::i;1756:111:54:-;;;:::i;5912:214:0:-;;;;;;:::i;:::-;;:::i;1055:66:54:-;;1095:26;1055:66;;1639:110;;;:::i;1347:209::-;;;:::i;2001:25::-;;;:::i;1431:151:1:-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4583:55:60;;;4565:74;;4553:2;4538:18;1431:151:1;4419:226:60;2502:134:54;;;;;;:::i;:::-;;:::i;2895:145:0:-;;;;;;:::i;:::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;;;;2895:145;2786:228:54;;;;;;:::i;:::-;;:::i;2027:49:0:-;;2072:4;2027:49;;2343:151:54;;;;;;:::i;:::-;;:::i;1957:37::-;;;:::i;3022:232::-;;;;;;:::i;:::-;;:::i;1750:140:1:-;;;;;;:::i;:::-;;:::i;5228:147:0:-;;;;;;:::i;:::-;;:::i;1563:69:54:-;;;:::i;3262:4095::-;;;;;;:::i;:::-;;:::i;634:212:1:-;719:4;742:57;;;757:42;742:57;;:97;;;803:36;827:11;803:23;:36::i;:::-;735:104;634:212;-1:-1:-1;;634:212:1:o;2644:134:54:-;1095:26;2505:16:0;2516:4;2505:10;:16::i;:::-;2742:11:54::1;:28;2756:14:::0;2742:11;:28:::1;:::i;:::-;;2644:134:::0;;:::o;1874:76::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4803:145:0:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4916:25:::1;4927:4;4933:7;4916:10;:25::i;1756:111:54:-:0;;;;;;;:::i;5912:214:0:-;-1:-1:-1;;;;;6007:23:0;;719:10:24;6007:23:0;5999:83;;;;-1:-1:-1;;;5999:83:0;;9099:2:60;5999:83:0;;;9081:21:60;9138:2;9118:18;;;9111:30;9177:34;9157:18;;;9150:62;9248:17;9228:18;;;9221:45;9283:19;;5999:83:0;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;1639:110:54:-;;;;;;;:::i;1347:209::-;;;;;;;:::i;2001:25::-;;;;;;;:::i;1431:151:1:-;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;:::-;1540:35;1431:151;-1:-1:-1;;;1431:151:1:o;2502:134:54:-;1095:26;2505:16:0;2516:4;2505:10;:16::i;:::-;2600:11:54::1;:28;2614:14:::0;2600:11;:28:::1;:::i;2786:228::-:0;1095:26;2505:16:0;2516:4;2505:10;:16::i;:::-;2933:14:54::1;:34;2950:17:::0;2933:14;:34:::1;:::i;:::-;-1:-1:-1::0;2978:11:54::1;:28;2992:14:::0;2978:11;:28:::1;:::i;:::-;;2786:228:::0;;;:::o;2343:151::-;1095:26;2505:16:0;2516:4;2505:10;:16::i;:::-;-1:-1:-1;2446:17:54::1;:40:::0;;-1:-1:-1;;2446:40:54::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2343:151::o;1957:37::-;;;;;;;:::i;3022:232::-;1095:26;2505:16:0;2516:4;2505:10;:16::i;:::-;3171:12:54::1;:30;3186:15:::0;3171:12;:30:::1;:::i;:::-;-1:-1:-1::0;3212:14:54::1;:34;3229:17:::0;3212:14;:34:::1;:::i;1750:140:1:-:0;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;5228:147:0:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;1563:69:54:-:0;;;;;;;:::i;3262:4095::-;3519:64;;;;;;;;2941:25:60;;;3402:13:54;;3433:83;;-1:-1:-1;;;;;3519:52:54;;;;;2914:18:60;;3519:64:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:97;3647:30;;3519:97;;-1:-1:-1;3629:48:54;;3519:97;3708:12;;:81;;3782:7;3741:22;:38;;;-1:-1:-1;;;;;3741:48:54;;;;;:::i;:::-;3708:81;;;3723:15;3708:81;3688:101;-1:-1:-1;3800:11:54;3814:12;;:129;;3860:55;;;;;;;;2941:25:60;;;3936:7:54;;-1:-1:-1;;;;;3860:43:54;;;;;2914:18:60;;3860:55:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;;3918:8;3860:66;:::i;:::-;:72;;3929:3;3860:72;:::i;:::-;3859:84;;;;:::i;:::-;3814:129;;;3842:1;3814:129;3800:143;;3954:14;3971:71;3982:24;-1:-1:-1;;;;;3982:47:54;;4030:10;3982:59;;;;;;;;;;;;;2941:25:60;;2929:2;2914:18;;2795:177;3982:59:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3971:10;:71::i;:::-;3954:88;;4063:19;4074:7;4063:10;:19::i;:::-;4053:29;;4095:20;4118:25;4130:7;4139:3;4118:11;:25::i;:::-;4095:48;-1:-1:-1;4189:21:54;4213:64;4226:27;4244:9;4226:15;:27;:::i;:::-;4256:20;4213:11;:64::i;:::-;4189:88;;4327:17;4370:21;4653:14;4793:11;4394:780;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4370:804;;5189:21;5248:40;5260:12;5274:13;5248:11;:40::i;:::-;5430:11;5516:29;5537:7;5516:20;:29::i;:::-;5724:25;5745:3;5724:20;:25::i;:::-;5967:11;6019:28;6040:6;6019:20;:28::i;:::-;5213:892;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5189:916;;6126:51;6157:8;6167;6140:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6126:13;:51::i;:::-;6120:57;;4355:1834;;6201:18;6252:1003;6384:21;:10;:19;:21::i;:::-;6470:11;6547;6654:18;:7;:16;:18::i;:::-;6779:20;:9;:18;:20::i;:::-;6927:23;:12;:21;:23::i;:::-;7079:24;:13;:22;:24::i;:::-;7189:3;6284:956;;;;;;;;;;;;;;;:::i;6252:1003::-;6245:1010;;7343:4;7293:55;;;;;;;;:::i;:::-;;;;;;;;;;;;;7279:70;;;;;;;;;;;3262:4095;;;;:::o;7461:233:0:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:0;;;;;;;;;:36;;-1:-1:-1;;7582:36:0;7614:4;7582:36;;;7664:12;719:10:24;;640:96;7664:12:0;-1:-1:-1;;;;;7637:40:0;7655:7;-1:-1:-1;;;;;7637:40:0;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;8297:150:34:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:34;;8390:4;:50::i;2606:202:0:-;2691:4;2714:47;;;2729:32;2714:47;;:87;;-1:-1:-1;952:25:30;937:40;;;;2765:36:0;829:155:30;3334:103:0;3400:30;3411:4;719:10:24;3400::0;:30::i;:::-;3334:103;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;9555:156:34:-;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;9098:115::-;9161:7;9187:19;9195:3;4537:18;;4455:107;9334:146:54;9387:7;9429:11;9414;9418:7;9414:1;:11;:::i;:::-;:26;;:58;;9461:11;9465:7;9461:1;:11;:::i;:::-;9414:58;;;9443:11;9447:7;9443:1;:11;:::i;:::-;:15;;9457:1;9443:15;:::i;8555:771::-;8680:12;;8633:7;;8680:25;;8695:10;;8680:25;:::i;:::-;8657:19;1289:5;8657;:19;:::i;:::-;:48;8653:62;;-1:-1:-1;8714:1:54;8707:8;;8653:62;8753:12;;:25;;8768:10;;8753:25;:::i;:::-;8730:19;1289:5;8730;:19;:::i;:::-;:48;8726:62;;-1:-1:-1;8787:1:54;8780:8;;8726:62;8826:12;;:25;;8841:10;;8826:25;:::i;:::-;8803:19;1289:5;8803;:19;:::i;:::-;:48;8799:62;;-1:-1:-1;8860:1:54;8853:8;;8799:62;8899:12;;:25;;8914:10;;8899:25;:::i;:::-;8876:19;1289:5;8876;:19;:::i;:::-;:48;8872:62;;-1:-1:-1;8933:1:54;8926:8;;8872:62;8972:12;;:25;;8987:10;;8972:25;:::i;:::-;8949:19;1289:5;8949;:19;:::i;:::-;:48;8945:62;;-1:-1:-1;9006:1:54;8999:8;;8945:62;9045:12;;:25;;9060:10;;9045:25;:::i;:::-;9022:19;1289:5;9022;:19;:::i;:::-;:48;9018:62;;-1:-1:-1;9079:1:54;9072:8;;9018:62;9118:12;;:25;;9133:10;;9118:25;:::i;:::-;9095:19;1289:5;9095;:19;:::i;:::-;:48;9091:62;;-1:-1:-1;9152:1:54;9145:8;;9091:62;9191:12;;:25;;9206:10;;9191:25;:::i;:::-;9168:19;1289:5;9168;:19;:::i;:::-;:48;9164:62;;-1:-1:-1;9225:1:54;9218:8;;9164:62;9264:12;;:25;;9279:10;;9264:25;:::i;:::-;9241:19;1289:5;9241;:19;:::i;:::-;:48;9237:62;;-1:-1:-1;9298:1:54;9291:8;;9237:62;-1:-1:-1;9317:1:54;8555:771;;;;:::o;8133:414::-;8248:13;8363:12;8398:23;:12;:21;:23::i;:::-;8444:24;:13;:22;:24::i;:::-;8491:14;8324:200;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8279:260;;8133:414;;;;:::o;7365:760::-;7432:13;7458:19;7486:16;:5;:14;:16::i;:::-;7537:13;;7458:45;;-1:-1:-1;7514:20:54;7604:1;7588:17;;;:46;;7633:1;7613:16;7628:1;7613:12;:16;:::i;:::-;7612:22;;;;:::i;:::-;7588:46;;;7608:1;7588:46;7561:73;-1:-1:-1;7645:13:54;7661:16;7676:1;7661:12;:16;:::i;:::-;7645:32;-1:-1:-1;7688:22:54;;7757:31;7772:16;7757:12;:31;:::i;:::-;7747:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7747:42:54;;7725:64;;7805:9;7800:286;7824:12;7820:1;:16;7800:286;;;7862:6;;;;;:20;;;7877:5;7872:1;:10;;7862:20;:38;;;;-1:-1:-1;7895:5:54;7886;7890:1;7886;:5;:::i;:::-;:14;7862:38;7858:164;;;7921:16;;;:::i;:::-;7989:17;;7921:16;;-1:-1:-1;7989:17:54;;7956:6;7989:17;7963:18;7921:16;7963:1;:18;:::i;:::-;:22;;;;:::i;:::-;7956:30;;;;;;;;:::i;:::-;;;;:50;;;;;;;;;;;7858:164;8065:6;8072:1;8065:9;;;;;;;;:::i;:::-;;;;;;;8036:6;8043:18;8047:14;8043:1;:18;:::i;:::-;8036:26;;;;;;;;:::i;:::-;;;;:38;;;;;;;;;;-1:-1:-1;7838:3:54;;;:::i;:::-;;;7800:286;;;-1:-1:-1;8110:6:54;7365:760;-1:-1:-1;;;;;;;7365:760:54:o;505:3026:23:-;563:13;795:4;:11;810:1;795:16;791:31;;-1:-1:-1;;813:9:23;;;;;;;;;-1:-1:-1;813:9:23;;;505:3026::o;791:31::-;872:19;894:6;;;;;;;;;;;;;;;;;872:28;;1303:20;1362:1;1343:4;:11;1357:1;1343:15;;;;:::i;:::-;1342:21;;;;:::i;:::-;1337:27;;:1;:27;:::i;:::-;1326:39;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1326:39:23;;1303:62;;1540:1;1533:5;1529:13;1641:2;1633:6;1629:15;1748:4;1799;1793:11;1787:4;1783:22;1711:1403;1832:6;1823:7;1820:19;1711:1403;;;1934:1;1925:7;1921:15;1910:26;;1972:7;1966:14;2615:4;2607:5;2603:2;2599:14;2595:25;2585:8;2581:40;2575:47;2564:9;2556:67;2668:1;2657:9;2653:17;2640:30;;2758:4;2750:5;2746:2;2742:14;2738:25;2728:8;2724:40;2718:47;2707:9;2699:67;2811:1;2800:9;2796:17;2783:30;;2900:4;2892:5;2889:1;2885:13;2881:24;2871:8;2867:39;2861:46;2850:9;2842:66;2953:1;2942:9;2938:17;2925:30;;3034:4;3027:5;3023:16;3013:8;3009:31;3003:38;2992:9;2984:58;;3087:1;3076:9;3072:17;3059:30;;1711:1403;;;1715:104;;3272:1;3265:4;3259:11;3255:19;3292:1;3287:120;;;;3425:1;3420:71;;;;3248:243;;3287:120;3339:4;3335:1;3324:9;3320:17;3312:32;3388:4;3384:1;3373:9;3369:17;3361:32;3287:120;;3420:71;3472:4;3468:1;3457:9;3453:17;3445:32;3248:243;-1:-1:-1;3518:6:23;;505:3026;-1:-1:-1;;;;;505:3026:23:o;415:696:26:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:26;-1:-1:-1;572:41:26;-1:-1:-1;733:28:26;;;749:2;733:28;788:280;-1:-1:-1;;819:5:26;958:8;953:2;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:26;788:280;1032:21;-1:-1:-1;1088:6:26;415:696;-1:-1:-1;;;415:696:26:o;2206:404:34:-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:34;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:34;2581:12;;3718:479:0;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;3801:390;;3989:28;4009:7;3989:19;:28::i;:::-;4088:38;4116:4;4123:2;4088:19;:38::i;:::-;3896:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:252:0;;;;;;;;;;-1:-1:-1;;;3844:336:0;;;;;;;:::i;7865:234::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:0;;;;;;;;;;;;7944:149;;;8018:5;7986:12;;;;;;;;;;;-1:-1:-1;;;;;7986:29:0;;;;;;;;;;:37;;-1:-1:-1;;7986:37:0;;;8042:40;719:10:24;;7986:12:0;;8042:40;;8018:5;8042:40;7865:234;;:::o;8615:156:34:-;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:34;;8711:7;:53::i;4904:118::-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;9889:890:32:-;9942:7;;10026:6;10017:15;;10013:99;;10061:6;10052:15;;;-1:-1:-1;10095:2:32;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:32;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:32;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:32;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:32;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:32;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:32:o;2102:149:26:-;2160:13;2192:52;-1:-1:-1;;;;;2204:22:26;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;1635:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:26;;1613:47;;1670:15;:6;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1695;:6;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1725:9:26;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;1791:8;1800:5;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;;;;;;;;;;-1:-1:-1;1836:1:26;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:26;;1857:55;;;;-1:-1:-1;;;1857:55:26;;26124:2:60;1857:55:26;;;26106:21:60;;;26143:18;;;26136:30;26202:34;26182:18;;;26175:62;26254:18;;1857:55:26;25922:356:60;2778:1388:34;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:34;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;14:332:60;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;796:184;-1:-1:-1;;;845:1:60;838:88;945:4;942:1;935:15;969:4;966:1;959:15;985:252;1052:4;1046:11;;;1084:17;;1131:18;1116:34;;1152:22;;;1113:62;1110:88;;;1178:18;;:::i;:::-;1214:4;1207:24;985:252;:::o;1242:253::-;1314:2;1308:9;1356:4;1344:17;;1391:18;1376:34;;1412:22;;;1373:62;1370:88;;;1438:18;;:::i;1500:778::-;1543:5;1596:3;1589:4;1581:6;1577:17;1573:27;1563:55;;1614:1;1611;1604:12;1563:55;1650:6;1637:20;1676:18;1713:2;1709;1706:10;1703:36;;;1719:18;;:::i;:::-;1853:2;1847:9;1915:4;1907:13;;-1:-1:-1;;1903:22:60;;;1927:2;1899:31;1895:40;1883:53;;;1951:18;;;1971:22;;;1948:46;1945:72;;;1997:18;;:::i;:::-;2037:10;2033:2;2026:22;2072:2;2064:6;2057:18;2118:3;2111:4;2106:2;2098:6;2094:15;2090:26;2087:35;2084:55;;;2135:1;2132;2125:12;2084:55;2199:2;2192:4;2184:6;2180:17;2173:4;2165:6;2161:17;2148:54;2246:1;2239:4;2234:2;2226:6;2222:15;2218:26;2211:37;2266:6;2257:15;;;;;;1500:778;;;;:::o;2283:322::-;2352:6;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2461:9;2448:23;2494:18;2486:6;2483:30;2480:50;;;2526:1;2523;2516:12;2480:50;2549;2591:7;2582:6;2571:9;2567:22;2549:50;:::i;:::-;2539:60;2283:322;-1:-1:-1;;;;2283:322:60:o;2610:180::-;2669:6;2722:2;2710:9;2701:7;2697:23;2693:32;2690:52;;;2738:1;2735;2728:12;2690:52;-1:-1:-1;2761:23:60;;2610:180;-1:-1:-1;2610:180:60:o;2977:258::-;3049:1;3059:113;3073:6;3070:1;3067:13;3059:113;;;3149:11;;;3143:18;3130:11;;;3123:39;3095:2;3088:10;3059:113;;;3190:6;3187:1;3184:13;3181:48;;;-1:-1:-1;;3225:1:60;3207:16;;3200:27;2977:258::o;3240:442::-;3389:2;3378:9;3371:21;3352:4;3421:6;3415:13;3464:6;3459:2;3448:9;3444:18;3437:34;3480:66;3539:6;3534:2;3523:9;3519:18;3514:2;3506:6;3502:15;3480:66;:::i;:::-;3598:2;3586:15;-1:-1:-1;;3582:88:60;3567:104;;;;3673:2;3563:113;;3240:442;-1:-1:-1;;3240:442:60:o;3687:154::-;-1:-1:-1;;;;;3766:5:60;3762:54;3755:5;3752:65;3742:93;;3831:1;3828;3821:12;3846:315;3914:6;3922;3975:2;3963:9;3954:7;3950:23;3946:32;3943:52;;;3991:1;3988;3981:12;3943:52;4027:9;4014:23;4004:33;;4087:2;4076:9;4072:18;4059:32;4100:31;4125:5;4100:31;:::i;:::-;4150:5;4140:15;;;3846:315;;;;;:::o;4166:248::-;4234:6;4242;4295:2;4283:9;4274:7;4270:23;4266:32;4263:52;;;4311:1;4308;4301:12;4263:52;-1:-1:-1;;4334:23:60;;;4404:2;4389:18;;;4376:32;;-1:-1:-1;4166:248:60:o;4650:543::-;4738:6;4746;4799:2;4787:9;4778:7;4774:23;4770:32;4767:52;;;4815:1;4812;4805:12;4767:52;4855:9;4842:23;4884:18;4925:2;4917:6;4914:14;4911:34;;;4941:1;4938;4931:12;4911:34;4964:50;5006:7;4997:6;4986:9;4982:22;4964:50;:::i;:::-;4954:60;;5067:2;5056:9;5052:18;5039:32;5023:48;;5096:2;5086:8;5083:16;5080:36;;;5112:1;5109;5102:12;5080:36;;5135:52;5179:7;5168:8;5157:9;5153:24;5135:52;:::i;:::-;5125:62;;;4650:543;;;;;:::o;5198:332::-;5256:6;5309:2;5297:9;5288:7;5284:23;5280:32;5277:52;;;5325:1;5322;5315:12;5277:52;5364:9;5351:23;5414:66;5407:5;5403:78;5396:5;5393:89;5383:117;;5496:1;5493;5486:12;5717:350;5820:6;5828;5881:2;5869:9;5860:7;5856:23;5852:32;5849:52;;;5897:1;5894;5887:12;5849:52;5936:9;5923:23;5955:31;5980:5;5955:31;:::i;:::-;6005:5;6057:2;6042:18;;;;6029:32;;-1:-1:-1;;;5717:350:60:o;6072:437::-;6151:1;6147:12;;;;6194;;;6215:61;;6269:4;6261:6;6257:17;6247:27;;6215:61;6322:2;6314:6;6311:14;6291:18;6288:38;6285:218;;-1:-1:-1;;;6356:1:60;6349:88;6460:4;6457:1;6450:15;6488:4;6485:1;6478:15;6285:218;;6072:437;;;:::o;6640:545::-;6742:2;6737:3;6734:11;6731:448;;;6778:1;6803:5;6799:2;6792:17;6848:4;6844:2;6834:19;6918:2;6906:10;6902:19;6899:1;6895:27;6889:4;6885:38;6954:4;6942:10;6939:20;6936:47;;;-1:-1:-1;6977:4:60;6936:47;7032:2;7027:3;7023:12;7020:1;7016:20;7010:4;7006:31;6996:41;;7087:82;7105:2;7098:5;7095:13;7087:82;;;7150:17;;;7131:1;7120:13;7087:82;;;7091:3;;;6640:545;;;:::o;7421:1471::-;7547:3;7541:10;7574:18;7566:6;7563:30;7560:56;;;7596:18;;:::i;:::-;7625:97;7715:6;7675:38;7707:4;7701:11;7675:38;:::i;:::-;7669:4;7625:97;:::i;:::-;7777:4;;7841:2;7830:14;;7858:1;7853:782;;;;8679:1;8696:6;8693:89;;;-1:-1:-1;8748:19:60;;;8742:26;8693:89;-1:-1:-1;;7318:1:60;7314:11;;;7310:84;7306:89;7296:100;7402:1;7398:11;;;7293:117;8795:81;;7823:1063;;7853:782;6587:1;6580:14;;;6624:4;6611:18;;-1:-1:-1;;7889:79:60;;;8066:236;8080:7;8077:1;8074:14;8066:236;;;8169:19;;;8163:26;8148:42;;8261:27;;;;8229:1;8217:14;;;;8096:19;;8066:236;;;8070:3;8330:6;8321:7;8318:19;8315:261;;;8391:19;;;8385:26;-1:-1:-1;;8474:1:60;8470:14;;;8486:3;8466:24;8462:97;8458:102;8443:118;8428:134;;8315:261;-1:-1:-1;;;;;8622:1:60;8606:14;;;8602:22;8589:36;;-1:-1:-1;7421:1471:60:o;9313:138::-;9392:13;;9414:31;9392:13;9414:31;:::i;:::-;9313:138;;;:::o;9456:283::-;9530:5;9578:4;9566:9;9561:3;9557:19;9553:30;9550:50;;;9596:1;9593;9586:12;9550:50;9618:17;;:::i;:::-;9609:26;;9664:9;9658:16;9651:5;9644:31;9728:2;9717:9;9713:18;9707:25;9702:2;9695:5;9691:14;9684:49;9456:283;;;;:::o;9744:171::-;9822:13;;9875:14;9864:26;;9854:37;;9844:65;;9905:1;9902;9895:12;9920:1038;10017:6;10061:9;10052:7;10048:23;10091:3;10087:2;10083:12;10080:32;;;10108:1;10105;10098:12;10080:32;10134:22;;:::i;:::-;10176:4;10172:2;10168:13;10165:33;;;10194:1;10191;10184:12;10165:33;10222:17;;:::i;:::-;10207:32;;10269:9;10263:16;10323:26;10314:7;10310:40;10301:7;10298:53;10288:81;;10365:1;10362;10355:12;10288:81;10378:24;;10447:2;10432:18;;10426:25;10460:33;10426:25;10460:33;:::i;:::-;10522:2;10509:16;;10502:33;10544:22;;;10598:76;10666:7;10659:4;10644:20;;10598:76;:::i;:::-;10593:2;10586:5;10582:14;10575:100;10709:50;10754:3;10743:9;10739:19;10709:50;:::i;:::-;10702:4;10695:5;10691:16;10684:76;10794:50;10838:4;10827:9;10823:20;10794:50;:::i;:::-;10787:4;10780:5;10776:16;10769:76;10878:49;10922:3;10911:9;10907:19;10878:49;:::i;:::-;10872:3;10861:15;;10854:74;10865:5;9920:1038;-1:-1:-1;;;;9920:1038:60:o;10963:184::-;-1:-1:-1;;;11012:1:60;11005:88;11112:4;11109:1;11102:15;11136:4;11133:1;11126:15;11152:184;-1:-1:-1;;;11201:1:60;11194:88;11301:4;11298:1;11291:15;11325:4;11322:1;11315:15;11341:120;11381:1;11407;11397:35;;11412:18;;:::i;:::-;-1:-1:-1;11446:9:60;;11341:120::o;11466:184::-;11536:6;11589:2;11577:9;11568:7;11564:23;11560:32;11557:52;;;11605:1;11602;11595:12;11557:52;-1:-1:-1;11628:16:60;;11466:184;-1:-1:-1;11466:184:60:o;11655:228::-;11695:7;11821:1;-1:-1:-1;;11749:74:60;11746:1;11743:81;11738:1;11731:9;11724:17;11720:105;11717:131;;;11828:18;;:::i;:::-;-1:-1:-1;11868:9:60;;11655:228::o;11888:125::-;11928:4;11956:1;11953;11950:8;11947:34;;;11961:18;;:::i;:::-;-1:-1:-1;11998:9:60;;11888:125::o;12018:780::-;12068:3;12109:5;12103:12;12138:36;12164:9;12138:36;:::i;:::-;12193:1;12210:18;;;12237:191;;;;12442:1;12437:355;;;;12203:589;;12237:191;-1:-1:-1;;12274:9:60;12270:82;12265:3;12258:95;12408:6;12401:14;12394:22;12386:6;12382:35;12377:3;12373:45;12366:52;;12237:191;;12437:355;12468:5;12465:1;12458:16;12497:4;12542:2;12539:1;12529:16;12567:1;12581:165;12595:6;12592:1;12589:13;12581:165;;;12673:14;;12660:11;;;12653:35;12716:16;;;;12610:10;;12581:165;;;12585:3;;;12775:6;12770:3;12766:16;12759:23;;12203:589;;;;;12018:780;;;;:::o;12803:2338::-;13309:66;13304:3;13297:79;13406:66;13401:2;13396:3;13392:12;13385:88;13503:66;13498:2;13493:3;13489:12;13482:88;13600:66;13595:2;13590:3;13586:12;13579:88;13698:66;13692:3;13687;13683:13;13676:89;13796:66;13790:3;13785;13781:13;13774:89;13894:13;13888:3;13883;13879:13;13872:36;13279:3;13927:48;13970:3;13965;13961:13;13953:6;13927:48;:::i;:::-;13995:66;13991:2;13984:78;14091:66;14086:2;14082;14078:11;14071:87;14187:24;14182:2;14178;14174:11;14167:45;14231:46;14273:2;14269;14265:11;14257:6;14231:46;:::i;:::-;14297:66;14286:78;;14393:34;14388:2;14380:11;;14373:55;14457:34;14452:2;14444:11;;14437:55;14521:34;14516:2;14508:11;;14501:55;14586:34;14580:3;14572:12;;14565:56;14651:34;14645:3;14637:12;;14630:56;14716:34;14710:3;14702:12;;14695:56;14781:34;14775:3;14767:12;;14760:56;14846:66;14840:3;14832:12;;14825:88;14943:66;14937:3;14929:12;;14922:88;15040:66;15034:3;15026:12;;15019:88;15131:3;15123:12;;12803:2338;-1:-1:-1;;;;;12803:2338:60:o;15146:185::-;15188:3;15226:5;15220:12;15241:52;15286:6;15281:3;15274:4;15267:5;15263:16;15241:52;:::i;:::-;15309:16;;;;;15146:185;-1:-1:-1;;15146:185:60:o;16262:2540::-;17233:3;17271:6;17265:13;17287:53;17333:6;17328:3;17321:4;17313:6;17309:17;17287:53;:::i;:::-;17401:66;17362:16;;;17387:81;;;17502:66;17495:4;17484:16;;17477:92;17601:66;17596:2;17585:14;;17578:90;17700:8;17695:2;17684:14;;17677:32;17728:50;17773:3;17762:15;;17754:6;17728:50;:::i;:::-;17718:60;;17798:66;17794:2;17787:78;17896:66;17889:4;17885:2;17881:13;17874:89;17994:6;17988:13;18010:63;18064:8;18059:2;18055;18051:11;18044:4;18036:6;18032:17;18010:63;:::i;:::-;18138:66;18133:2;18092:17;;;;18125:11;;;18118:87;18234:66;18229:2;18221:11;;18214:87;18330:66;18325:2;18317:11;;18310:87;18427:66;18421:3;18413:12;;18406:88;18524:66;18518:3;18510:12;;18503:88;18607:189;18632:163;18658:136;18688:105;18722:70;18752:39;18786:3;18778:12;;18770:6;18752:39;:::i;:::-;15413:66;15401:79;;15510:66;15505:2;15496:12;;15489:88;15607:66;15602:2;15593:12;;15586:88;15704:66;15699:2;15690:12;;15683:88;15802:66;15796:3;15787:13;;15780:89;15900:66;15894:3;15885:13;;15878:89;15992:3;15983:13;;15336:666;18722:70;18714:6;18688:105;:::i;:::-;16084:3;16072:16;;16113:1;16104:11;;16007:114;18658:136;18650:6;18632:163;:::i;:::-;16198:24;16186:37;;16248:2;16239:12;;16126:131;18607:189;18600:196;16262:2540;-1:-1:-1;;;;;;;;;16262:2540:60:o;18807:466::-;18982:3;19020:6;19014:13;19036:53;19082:6;19077:3;19070:4;19062:6;19058:17;19036:53;:::i;:::-;19152:13;;19111:16;;;;19174:57;19152:13;19111:16;19208:4;19196:17;;19174:57;:::i;:::-;19247:20;;18807:466;-1:-1:-1;;;;18807:466:60:o;20436:2742::-;21836:66;21831:3;21824:79;21933:6;21928:2;21923:3;21919:12;21912:28;21806:3;21969:6;21963:13;21985:60;22038:6;22033:2;22028:3;22024:12;22019:2;22011:6;22007:15;21985:60;:::i;:::-;22109:66;22104:2;22064:16;;;22096:11;;;22089:87;22195:46;22237:2;22229:11;;22221:6;22195:46;:::i;:::-;22185:56;;22261:66;22257:2;22250:78;22347:46;22389:2;22385;22381:11;22373:6;22347:46;:::i;:::-;22337:56;;22413:66;22409:2;22402:78;22509:66;22504:2;22500;22496:11;22489:87;22607:6;22601:13;22623:61;22675:8;22670:2;22666;22662:11;22657:2;22649:6;22645:15;22623:61;:::i;:::-;22749:66;22744:2;22703:17;;;;22736:11;;;22729:87;22845:66;22840:2;22832:11;;22825:87;22928:244;22958:213;22984:186;23014:155;23040:128;23070:97;23096:70;23126:39;23160:3;23152:12;;23144:6;23126:39;:::i;:::-;19355:66;19343:79;;19452:66;19447:2;19438:12;;19431:88;19549:66;19544:2;19535:12;;19528:88;19641:2;19632:12;;19278:372;23096:70;23088:6;23070:97;:::i;:::-;19732:66;19720:79;;19829:66;19824:2;19815:12;;19808:88;19926:66;19921:2;19912:12;;19905:88;20018:2;20009:12;;19655:372;23040:128;23032:6;23014:155;:::i;:::-;20109:66;20097:79;;20206:8;20201:2;20192:12;;20185:30;20240:2;20231:12;;20032:217;22958:213;20331:66;20319:79;;20423:1;20414:11;;20254:177;22928:244;22921:251;20436:2742;-1:-1:-1;;;;;;;;;;;20436:2742:60:o;23183:448::-;23445:31;23440:3;23433:44;23415:3;23506:6;23500:13;23522:62;23577:6;23572:2;23567:3;23563:12;23556:4;23548:6;23544:17;23522:62;:::i;:::-;23604:16;;;;23622:2;23600:25;;23183:448;-1:-1:-1;;23183:448:60:o;23636:112::-;23668:1;23694;23684:35;;23699:18;;:::i;:::-;-1:-1:-1;23733:9:60;;23636:112::o;23753:128::-;23793:3;23824:1;23820:6;23817:1;23814:13;23811:39;;;23830:18;;:::i;:::-;-1:-1:-1;23866:9:60;;23753:128::o;23886:184::-;-1:-1:-1;;;23935:1:60;23928:88;24035:4;24032:1;24025:15;24059:4;24056:1;24049:15;24075:650;24344:3;24372:38;24406:3;24398:6;24372:38;:::i;:::-;24439:6;24433:13;24455:52;24500:6;24496:2;24489:4;24481:6;24477:17;24455:52;:::i;:::-;24569:13;;24529:15;;;24591:57;24569:13;24529:15;24625:4;24613:17;;24591:57;:::i;:::-;24664:55;24709:8;24702:5;24698:20;24690:6;24664:55;:::i;:::-;24657:62;24075:650;-1:-1:-1;;;;;;;;24075:650:60:o;24730:195::-;24769:3;-1:-1:-1;;24793:5:60;24790:77;24787:103;;24870:18;;:::i;:::-;-1:-1:-1;24917:1:60;24906:13;;24730:195::o;24930:786::-;25341:25;25336:3;25329:38;25311:3;25396:6;25390:13;25412:62;25467:6;25462:2;25457:3;25453:12;25446:4;25438:6;25434:17;25412:62;:::i;:::-;25538:19;25533:2;25493:16;;;25525:11;;;25518:40;25583:13;;25605:63;25583:13;25654:2;25646:11;;25639:4;25627:17;;25605:63;:::i;:::-;25688:17;25707:2;25684:26;;24930:786;-1:-1:-1;;;;24930:786:60:o;25721:196::-;25760:3;25788:5;25778:39;;25797:18;;:::i;:::-;-1:-1:-1;;;25833:78:60;;25721:196::o;26283:184::-;-1:-1:-1;;;26332:1:60;26325:88;26432:4;26429:1;26422:15;26456:4;26453:1;26446:15"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","METADATA_ROLE()":"38841782","boldFontUri()":"364a9b5f","description()":"7284e416","externalUri()":"e89e6075","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","imageBaseUri()":"2c9ea242","imageExtension()":"a9ef3aeb","regularFontUri()":"4c226e9b","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDescription(string)":"90c3f38f","setExternalUri(string)":"1bf671c2","setFont(string,string)":"96a3be7a","setImage(string,string)":"c4e1750b","setThousandSeparator(bytes1)":"a33eb2eb","supportsInterface(bytes4)":"01ffc9a7","thousandSeparator()":"0dde8d27","tokenSymbol()":"7b61c320","tokenURI(address,uint256)":"e9dc6375"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newTokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"METADATA_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"boldFontUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"externalUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"imageBaseUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"imageExtension\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"regularFontUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newDescription\",\"type\":\"string\"}],\"name\":\"setDescription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newExternalUri\",\"type\":\"string\"}],\"name\":\"setExternalUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newRegularFontUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"newBoldFontUri\",\"type\":\"string\"}],\"name\":\"setFont\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newImageBaseUri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"newImageExtension\",\"type\":\"string\"}],\"name\":\"setImage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes1\",\"name\":\"newThousandSeparator\",\"type\":\"bytes1\"}],\"name\":\"setThousandSeparator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"thousandSeparator\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenSymbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPangolinStakingPositions\",\"name\":\"pangolinStakingPositions\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/TokenMetadata.sol\":\"TokenMetadata\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96\",\"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/staking-positions/TokenMetadata.sol\":{\"keccak256\":\"0x16a2cad860b168ec8193da0dc2770f16ff9080a88b45c391e752e8fb8c829385\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://8ac72166c47c73097fe8dfbda068d27730b73f24f153ad79ab34bae6b69c9a06\",\"dweb:/ipfs/Qmd7aDrKvCsoa3k1pty9eC6bEdEDy841JCYG1XGBkCwWdm\"]}},\"version\":1}"}},"contracts/staking-positions/interfaces/IPangolinFactory.sol":{"IPangolinFactory":{"abi":[{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getPair(address,address)":"e6a43905"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/interfaces/IPangolinFactory.sol\":\"IPangolinFactory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/staking-positions/interfaces/IPangolinFactory.sol\":{\"keccak256\":\"0xb78e477d342058ea93a54118552a4a134474d8aaad49468864b087aebd592138\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://222678d46a13b6fbfb83f62842c1eabdc310af0e1ebd57a2ae98461cea2b5923\",\"dweb:/ipfs/QmcKQrjaBAZDyNaGg9LAax6S3Eb59fnCpPWtDvybSorouC\"]}},\"version\":1}"}},"contracts/staking-positions/interfaces/IPangolinPair.sol":{"IPangolinPair":{"abi":[{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"reserve0","type":"uint112"},{"internalType":"uint112","name":"reserve1","type":"uint112"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getReserves()":"0902f1ac","mint(address)":"6a627842","token0()":"0dfe1681","token1()":"d21220a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/interfaces/IPangolinPair.sol\":\"IPangolinPair\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/staking-positions/interfaces/IPangolinPair.sol\":{\"keccak256\":\"0xd25b4ab4887a1524128c210992825fa179b51febee83238e31da8cb9a18e53e1\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://c895bad22d84e202cf0a9e44f9f1afd44a046d1059e2a4b0f13fc37613a4aab1\",\"dweb:/ipfs/QmVaa8madApaVSPUnpCeNJUSv7z67GtnMXNPjGkYUJQ11v\"]}},\"version\":1}"}},"contracts/staking-positions/interfaces/IRewarder.sol":{"IRewarder":{"abi":[{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"destructiveAction","type":"bool"},{"internalType":"uint256","name":"rewardAmount","type":"uint256"},{"internalType":"uint256","name":"newLpAmount","type":"uint256"}],"name":"onReward","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onReward(uint256,address,bool,uint256,uint256)":"ba782bee"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"destructiveAction\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLpAmount\",\"type\":\"uint256\"}],\"name\":\"onReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/interfaces/IRewarder.sol\":\"IRewarder\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/staking-positions/interfaces/IRewarder.sol\":{\"keccak256\":\"0x3ffb03c3b5a5be2552835f292ef747c27fbb347b7ffa932525ecc048b317e7ad\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://af2d0ee60041eacbd2b974ae91de21911f2f3f0f55f915d8bbbd8998e3fb2913\",\"dweb:/ipfs/QmXLB7YeYjdwqNqTHQXEYbfGjDwQC6PNw7Gdj5ztDC3jYi\"]}},\"version\":1}"}},"contracts/staking-positions/interfaces/IWAVAX.sol":{"IWAVAX":{"abi":[{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"deposit()":"d0e30db0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/staking-positions/interfaces/IWAVAX.sol\":\"IWAVAX\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"contracts/staking-positions/interfaces/IWAVAX.sol\":{\"keccak256\":\"0xb4c14b219795e5bd1145dd2d2f3e0ee8b41280afd24302d784063c427fdc2e33\",\"license\":\"GPLv3\",\"urls\":[\"bzz-raw://5a8cf75bbdaa9a61f9dffc132d69d811d666eb188df39f575d608f5e01023543\",\"dweb:/ipfs/Qmb5sw9ZySsbdZYn2Jjih6iFHxx3PFeRBmvG1akRuifcPW\"]}},\"version\":1}"}},"contracts/treasury-vester/TreasuryVesterLinear.sol":{"IMiniChefV2":{"abi":[{"inputs":[{"internalType":"uint256","name":"newFunding","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"fundRewards","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"fundRewards(uint256,uint256)":"28662551"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFunding\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"fundRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/treasury-vester/TreasuryVesterLinear.sol\":\"IMiniChefV2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/treasury-vester/TreasuryVesterLinear.sol\":{\"keccak256\":\"0x804845818abd2b56c6dca3b96f408069e6c51882b9fd21de190aa896f979e2ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ffbb59a04cd27601cd926769335dd16b14bc140f82652a26f3778f54fa5e84d\",\"dweb:/ipfs/QmeCDkwFSYebQZv7SJJ9KJF1vnRnVgM7JQF1hw17qVZmpz\"]}},\"version\":1}"},"IPng":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"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","mint(address,uint256)":"40c10f19","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rawAmount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/treasury-vester/TreasuryVesterLinear.sol\":\"IPng\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/treasury-vester/TreasuryVesterLinear.sol\":{\"keccak256\":\"0x804845818abd2b56c6dca3b96f408069e6c51882b9fd21de190aa896f979e2ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ffbb59a04cd27601cd926769335dd16b14bc140f82652a26f3778f54fa5e84d\",\"dweb:/ipfs/QmeCDkwFSYebQZv7SJJ9KJF1vnRnVgM7JQF1hw17qVZmpz\"]}},\"version\":1}"},"TreasuryVesterLinear":{"abi":[{"inputs":[{"internalType":"address","name":"newVestedToken","type":"address"},{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"bool","name":"isMiniChef","type":"bool"}],"internalType":"struct TreasuryVesterLinear.Recipient[]","name":"newRecipients","type":"tuple[]"},{"internalType":"address","name":"newGuardian","type":"address"},{"internalType":"uint256","name":"newDailyVestingAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"bool","name":"isMiniChef","type":"bool"}],"indexed":false,"internalType":"struct TreasuryVesterLinear.Recipient[]","name":"newRecipients","type":"tuple[]"}],"name":"RecipientsChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"TokensVested","type":"event"},{"anonymous":false,"inputs":[],"name":"VestingEnabled","type":"event"},{"inputs":[],"name":"dailyVestingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"recipients","outputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"bool","name":"isMiniChef","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"bool","name":"isMiniChef","type":"bool"}],"internalType":"struct TreasuryVesterLinear.Recipient[]","name":"newRecipients","type":"tuple[]"}],"name":"setRecipients","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startVesting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestedToken","outputs":[{"internalType":"contract IPng","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_18274":{"entryPoint":null,"id":18274,"parameterSlots":4,"returnSlots":0},"@_562":{"entryPoint":null,"id":562,"parameterSlots":0,"returnSlots":0},"@_checkOwner_593":{"entryPoint":1325,"id":593,"parameterSlots":0,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_650":{"entryPoint":448,"id":650,"parameterSlots":1,"returnSlots":0},"@owner_579":{"entryPoint":null,"id":579,"parameterSlots":0,"returnSlots":1},"@setRecipients_18466":{"entryPoint":528,"id":18466,"parameterSlots":1,"returnSlots":0},"abi_decode_address_fromMemory":{"entryPoint":1513,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptrt_addresst_uint256_fromMemory":{"entryPoint":1658,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":2051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0fd2324a2ffeeca26bb5a7899f7b17b617ba13cffb0fa8a49bcc701d67dc6426__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4802f48874e7ccd34416d6409692387aed59c9966d421c77b823e38e339bb797__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fd6da1a76a3c4917dd482549ae7e1bc7a12eef2df6f859ac2425059dfef89282__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":1607,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_1483":{"entryPoint":1564,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1996,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":2023,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":1974,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":1952,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1542,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7380:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:60","statements":[{"nodeType":"YulAssignment","src":"84:22:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:60"},"nodeType":"YulFunctionCall","src":"93:13:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:60"}]},{"body":{"nodeType":"YulBlock","src":"169:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:60"},"nodeType":"YulFunctionCall","src":"171:12:60"},"nodeType":"YulExpressionStatement","src":"171:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:60"},"nodeType":"YulFunctionCall","src":"150:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:60"},"nodeType":"YulFunctionCall","src":"146:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:60"},"nodeType":"YulFunctionCall","src":"135:31:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:60"},"nodeType":"YulFunctionCall","src":"125:42:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:60"},"nodeType":"YulFunctionCall","src":"118:50:60"},"nodeType":"YulIf","src":"115:70:60"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"228:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"245:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"252:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"257:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"248:3:60"},"nodeType":"YulFunctionCall","src":"248:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"238:6:60"},"nodeType":"YulFunctionCall","src":"238:31:60"},"nodeType":"YulExpressionStatement","src":"238:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"285:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"288:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"278:6:60"},"nodeType":"YulFunctionCall","src":"278:15:60"},"nodeType":"YulExpressionStatement","src":"278:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:60"},"nodeType":"YulFunctionCall","src":"302:15:60"},"nodeType":"YulExpressionStatement","src":"302:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"196:127:60"},{"body":{"nodeType":"YulBlock","src":"374:207:60","statements":[{"nodeType":"YulAssignment","src":"384:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"400:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"394:5:60"},"nodeType":"YulFunctionCall","src":"394:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"384:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"412:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"434:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"442:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"430:3:60"},"nodeType":"YulFunctionCall","src":"430:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"416:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"522:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"524:16:60"},"nodeType":"YulFunctionCall","src":"524:18:60"},"nodeType":"YulExpressionStatement","src":"524:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"465:10:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"485:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"489:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"481:3:60"},"nodeType":"YulFunctionCall","src":"481:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"493:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"477:3:60"},"nodeType":"YulFunctionCall","src":"477:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"462:2:60"},"nodeType":"YulFunctionCall","src":"462:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"501:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"513:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"498:2:60"},"nodeType":"YulFunctionCall","src":"498:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"459:2:60"},"nodeType":"YulFunctionCall","src":"459:62:60"},"nodeType":"YulIf","src":"456:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"560:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"564:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"553:6:60"},"nodeType":"YulFunctionCall","src":"553:22:60"},"nodeType":"YulExpressionStatement","src":"553:22:60"}]},"name":"allocate_memory_1483","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"363:6:60","type":""}],"src":"328:253:60"},{"body":{"nodeType":"YulBlock","src":"631:230:60","statements":[{"nodeType":"YulAssignment","src":"641:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"657:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"651:5:60"},"nodeType":"YulFunctionCall","src":"651:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"641:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"669:58:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"691:6:60"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"707:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"713:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"703:3:60"},"nodeType":"YulFunctionCall","src":"703:13:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"722:2:60","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"718:3:60"},"nodeType":"YulFunctionCall","src":"718:7:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"699:3:60"},"nodeType":"YulFunctionCall","src":"699:27:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"687:3:60"},"nodeType":"YulFunctionCall","src":"687:40:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"673:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"802:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"804:16:60"},"nodeType":"YulFunctionCall","src":"804:18:60"},"nodeType":"YulExpressionStatement","src":"804:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"745:10:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"765:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"769:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"761:3:60"},"nodeType":"YulFunctionCall","src":"761:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"773:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"757:3:60"},"nodeType":"YulFunctionCall","src":"757:18:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"742:2:60"},"nodeType":"YulFunctionCall","src":"742:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"781:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"793:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"778:2:60"},"nodeType":"YulFunctionCall","src":"778:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"739:2:60"},"nodeType":"YulFunctionCall","src":"739:62:60"},"nodeType":"YulIf","src":"736:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"840:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"844:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"833:6:60"},"nodeType":"YulFunctionCall","src":"833:22:60"},"nodeType":"YulExpressionStatement","src":"833:22:60"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"611:4:60","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"620:6:60","type":""}],"src":"586:275:60"},{"body":{"nodeType":"YulBlock","src":"1051:1575:60","statements":[{"body":{"nodeType":"YulBlock","src":"1098:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1107:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1110:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1100:6:60"},"nodeType":"YulFunctionCall","src":"1100:12:60"},"nodeType":"YulExpressionStatement","src":"1100:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1072:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1081:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1068:3:60"},"nodeType":"YulFunctionCall","src":"1068:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"1093:3:60","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1064:3:60"},"nodeType":"YulFunctionCall","src":"1064:33:60"},"nodeType":"YulIf","src":"1061:53:60"},{"nodeType":"YulAssignment","src":"1123:50:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1163:9:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1133:29:60"},"nodeType":"YulFunctionCall","src":"1133:40:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1123:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1182:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1192:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1186:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1203:39:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1227:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1238:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1223:3:60"},"nodeType":"YulFunctionCall","src":"1223:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1217:5:60"},"nodeType":"YulFunctionCall","src":"1217:25:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1207:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1251:28:60","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1269:2:60","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1273:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1265:3:60"},"nodeType":"YulFunctionCall","src":"1265:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1277:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1261:3:60"},"nodeType":"YulFunctionCall","src":"1261:18:60"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1255:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1306:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1315:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1318:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1308:6:60"},"nodeType":"YulFunctionCall","src":"1308:12:60"},"nodeType":"YulExpressionStatement","src":"1308:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1294:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1302:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1291:2:60"},"nodeType":"YulFunctionCall","src":"1291:14:60"},"nodeType":"YulIf","src":"1288:34:60"},{"nodeType":"YulVariableDeclaration","src":"1331:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1345:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"1356:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1341:3:60"},"nodeType":"YulFunctionCall","src":"1341:22:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1335:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1411:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1420:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1423:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1413:6:60"},"nodeType":"YulFunctionCall","src":"1413:12:60"},"nodeType":"YulExpressionStatement","src":"1413:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1390:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"1394:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1386:3:60"},"nodeType":"YulFunctionCall","src":"1386:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1401:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1382:3:60"},"nodeType":"YulFunctionCall","src":"1382:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1375:6:60"},"nodeType":"YulFunctionCall","src":"1375:35:60"},"nodeType":"YulIf","src":"1372:55:60"},{"nodeType":"YulVariableDeclaration","src":"1436:19:60","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1452:2:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1446:5:60"},"nodeType":"YulFunctionCall","src":"1446:9:60"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1440:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1478:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1480:16:60"},"nodeType":"YulFunctionCall","src":"1480:18:60"},"nodeType":"YulExpressionStatement","src":"1480:18:60"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1470:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"1474:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1467:2:60"},"nodeType":"YulFunctionCall","src":"1467:10:60"},"nodeType":"YulIf","src":"1464:36:60"},{"nodeType":"YulVariableDeclaration","src":"1509:47:60","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1544:1:60","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"1547:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1540:3:60"},"nodeType":"YulFunctionCall","src":"1540:10:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1552:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1536:3:60"},"nodeType":"YulFunctionCall","src":"1536:19:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1520:15:60"},"nodeType":"YulFunctionCall","src":"1520:36:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1513:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1565:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"1578:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1569:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1597:3:60"},{"name":"_4","nodeType":"YulIdentifier","src":"1602:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1590:6:60"},"nodeType":"YulFunctionCall","src":"1590:15:60"},"nodeType":"YulExpressionStatement","src":"1590:15:60"},{"nodeType":"YulAssignment","src":"1614:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1625:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1630:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1621:3:60"},"nodeType":"YulFunctionCall","src":"1621:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1614:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"1642:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1652:4:60","type":"","value":"0x60"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"1646:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1665:43:60","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1687:2:60"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1695:2:60"},{"name":"_5","nodeType":"YulIdentifier","src":"1699:2:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1691:3:60"},"nodeType":"YulFunctionCall","src":"1691:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1683:3:60"},"nodeType":"YulFunctionCall","src":"1683:20:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1705:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1679:3:60"},"nodeType":"YulFunctionCall","src":"1679:29:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1669:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1740:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1749:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1752:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1742:6:60"},"nodeType":"YulFunctionCall","src":"1742:12:60"},"nodeType":"YulExpressionStatement","src":"1742:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1723:6:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1731:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1720:2:60"},"nodeType":"YulFunctionCall","src":"1720:19:60"},"nodeType":"YulIf","src":"1717:39:60"},{"nodeType":"YulVariableDeclaration","src":"1765:22:60","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1780:2:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1784:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1776:3:60"},"nodeType":"YulFunctionCall","src":"1776:11:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1769:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1852:632:60","statements":[{"body":{"nodeType":"YulBlock","src":"1908:74:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1926:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1936:1:60","type":"","value":"0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"1930:2:60","type":""}]},{"expression":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"1961:2:60"},{"name":"_6","nodeType":"YulIdentifier","src":"1965:2:60"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1954:6:60"},"nodeType":"YulFunctionCall","src":"1954:14:60"},"nodeType":"YulExpressionStatement","src":"1954:14:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1877:7:60"},{"name":"src","nodeType":"YulIdentifier","src":"1886:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1873:3:60"},"nodeType":"YulFunctionCall","src":"1873:17:60"},{"name":"_5","nodeType":"YulIdentifier","src":"1892:2:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1869:3:60"},"nodeType":"YulFunctionCall","src":"1869:26:60"},"nodeType":"YulIf","src":"1866:116:60"},{"nodeType":"YulVariableDeclaration","src":"1995:35:60","value":{"arguments":[],"functionName":{"name":"allocate_memory_1483","nodeType":"YulIdentifier","src":"2008:20:60"},"nodeType":"YulFunctionCall","src":"2008:22:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1999:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2050:5:60"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2087:3:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"2057:29:60"},"nodeType":"YulFunctionCall","src":"2057:34:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2043:6:60"},"nodeType":"YulFunctionCall","src":"2043:49:60"},"nodeType":"YulExpressionStatement","src":"2043:49:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2116:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2123:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2112:3:60"},"nodeType":"YulFunctionCall","src":"2112:14:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2138:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2143:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2134:3:60"},"nodeType":"YulFunctionCall","src":"2134:12:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2128:5:60"},"nodeType":"YulFunctionCall","src":"2128:19:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2105:6:60"},"nodeType":"YulFunctionCall","src":"2105:43:60"},"nodeType":"YulExpressionStatement","src":"2105:43:60"},{"nodeType":"YulVariableDeclaration","src":"2161:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2171:2:60","type":"","value":"64"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"2165:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2186:34:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2211:3:60"},{"name":"_7","nodeType":"YulIdentifier","src":"2216:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2207:3:60"},"nodeType":"YulFunctionCall","src":"2207:12:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2201:5:60"},"nodeType":"YulFunctionCall","src":"2201:19:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2190:7:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2293:74:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2311:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2321:1:60","type":"","value":"0"},"variables":[{"name":"_8","nodeType":"YulTypedName","src":"2315:2:60","type":""}]},{"expression":{"arguments":[{"name":"_8","nodeType":"YulIdentifier","src":"2346:2:60"},{"name":"_8","nodeType":"YulIdentifier","src":"2350:2:60"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2339:6:60"},"nodeType":"YulFunctionCall","src":"2339:14:60"},"nodeType":"YulExpressionStatement","src":"2339:14:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2246:7:60"},{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2269:7:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2262:6:60"},"nodeType":"YulFunctionCall","src":"2262:15:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2255:6:60"},"nodeType":"YulFunctionCall","src":"2255:23:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2243:2:60"},"nodeType":"YulFunctionCall","src":"2243:36:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2236:6:60"},"nodeType":"YulFunctionCall","src":"2236:44:60"},"nodeType":"YulIf","src":"2233:134:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2391:5:60"},{"name":"_7","nodeType":"YulIdentifier","src":"2398:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2387:3:60"},"nodeType":"YulFunctionCall","src":"2387:14:60"},{"name":"value_1","nodeType":"YulIdentifier","src":"2403:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2380:6:60"},"nodeType":"YulFunctionCall","src":"2380:31:60"},"nodeType":"YulExpressionStatement","src":"2380:31:60"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2431:3:60"},{"name":"value","nodeType":"YulIdentifier","src":"2436:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2424:6:60"},"nodeType":"YulFunctionCall","src":"2424:18:60"},"nodeType":"YulExpressionStatement","src":"2424:18:60"},{"nodeType":"YulAssignment","src":"2455:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2466:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2471:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2462:3:60"},"nodeType":"YulFunctionCall","src":"2462:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2455:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1807:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1812:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1804:2:60"},"nodeType":"YulFunctionCall","src":"1804:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1820:23:60","statements":[{"nodeType":"YulAssignment","src":"1822:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1833:3:60"},{"name":"_5","nodeType":"YulIdentifier","src":"1838:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:60"},"nodeType":"YulFunctionCall","src":"1829:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1822:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"1800:3:60","statements":[]},"src":"1796:688:60"},{"nodeType":"YulAssignment","src":"2493:15:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2503:5:60"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2493:6:60"}]},{"nodeType":"YulAssignment","src":"2517:59:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2561:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2572:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2557:3:60"},"nodeType":"YulFunctionCall","src":"2557:18:60"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"2527:29:60"},"nodeType":"YulFunctionCall","src":"2527:49:60"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2517:6:60"}]},{"nodeType":"YulAssignment","src":"2585:35:60","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2605:9:60"},{"name":"_5","nodeType":"YulIdentifier","src":"2616:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2601:3:60"},"nodeType":"YulFunctionCall","src":"2601:18:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2595:5:60"},"nodeType":"YulFunctionCall","src":"2595:25:60"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2585:6:60"}]}]},"name":"abi_decode_tuple_t_addresst_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptrt_addresst_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"993:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1004:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1016:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1024:6:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1032:6:60","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1040:6:60","type":""}],"src":"866:1760:60"},{"body":{"nodeType":"YulBlock","src":"2805:237:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2822:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2833:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2815:6:60"},"nodeType":"YulFunctionCall","src":"2815:21:60"},"nodeType":"YulExpressionStatement","src":"2815:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2856:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2867:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2852:3:60"},"nodeType":"YulFunctionCall","src":"2852:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"2872:2:60","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2845:6:60"},"nodeType":"YulFunctionCall","src":"2845:30:60"},"nodeType":"YulExpressionStatement","src":"2845:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2895:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2906:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2891:3:60"},"nodeType":"YulFunctionCall","src":"2891:18:60"},{"hexValue":"54726561737572795665737465723a3a436f6e7374727563746f723a206c6f77","kind":"string","nodeType":"YulLiteral","src":"2911:34:60","type":"","value":"TreasuryVester::Constructor: low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2884:6:60"},"nodeType":"YulFunctionCall","src":"2884:62:60"},"nodeType":"YulExpressionStatement","src":"2884:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2966:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"2977:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2962:3:60"},"nodeType":"YulFunctionCall","src":"2962:18:60"},{"hexValue":"2076657374696e6720616d6f756e74","kind":"string","nodeType":"YulLiteral","src":"2982:17:60","type":"","value":" vesting amount"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2955:6:60"},"nodeType":"YulFunctionCall","src":"2955:45:60"},"nodeType":"YulExpressionStatement","src":"2955:45:60"},{"nodeType":"YulAssignment","src":"3009:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3021:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3032:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3017:3:60"},"nodeType":"YulFunctionCall","src":"3017:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3009:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_fd6da1a76a3c4917dd482549ae7e1bc7a12eef2df6f859ac2425059dfef89282__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2782:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2796:4:60","type":""}],"src":"2631:411:60"},{"body":{"nodeType":"YulBlock","src":"3221:243:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3238:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3249:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3231:6:60"},"nodeType":"YulFunctionCall","src":"3231:21:60"},"nodeType":"YulExpressionStatement","src":"3231:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3272:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3283:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3268:3:60"},"nodeType":"YulFunctionCall","src":"3268:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3288:2:60","type":"","value":"53"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3261:6:60"},"nodeType":"YulFunctionCall","src":"3261:30:60"},"nodeType":"YulExpressionStatement","src":"3261:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3311:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3322:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3307:3:60"},"nodeType":"YulFunctionCall","src":"3307:18:60"},{"hexValue":"54726561737572795665737465723a3a436f6e7374727563746f723a20696e76","kind":"string","nodeType":"YulLiteral","src":"3327:34:60","type":"","value":"TreasuryVester::Constructor: inv"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3300:6:60"},"nodeType":"YulFunctionCall","src":"3300:62:60"},"nodeType":"YulExpressionStatement","src":"3300:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3382:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3393:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3378:3:60"},"nodeType":"YulFunctionCall","src":"3378:18:60"},{"hexValue":"616c696420677561726469616e2061646472657373","kind":"string","nodeType":"YulLiteral","src":"3398:23:60","type":"","value":"alid guardian address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3371:6:60"},"nodeType":"YulFunctionCall","src":"3371:51:60"},"nodeType":"YulExpressionStatement","src":"3371:51:60"},{"nodeType":"YulAssignment","src":"3431:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3443:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3454:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3439:3:60"},"nodeType":"YulFunctionCall","src":"3439:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3431:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_0fd2324a2ffeeca26bb5a7899f7b17b617ba13cffb0fa8a49bcc701d67dc6426__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3198:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3212:4:60","type":""}],"src":"3047:417:60"},{"body":{"nodeType":"YulBlock","src":"3643:240:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3660:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3671:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3653:6:60"},"nodeType":"YulFunctionCall","src":"3653:21:60"},"nodeType":"YulExpressionStatement","src":"3653:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3694:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3705:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3690:3:60"},"nodeType":"YulFunctionCall","src":"3690:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"3710:2:60","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3683:6:60"},"nodeType":"YulFunctionCall","src":"3683:30:60"},"nodeType":"YulExpressionStatement","src":"3683:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3733:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3744:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3729:3:60"},"nodeType":"YulFunctionCall","src":"3729:18:60"},{"hexValue":"54726561737572795665737465723a3a436f6e7374727563746f723a20696e76","kind":"string","nodeType":"YulLiteral","src":"3749:34:60","type":"","value":"TreasuryVester::Constructor: inv"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3722:6:60"},"nodeType":"YulFunctionCall","src":"3722:62:60"},"nodeType":"YulExpressionStatement","src":"3722:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3804:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3815:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3800:3:60"},"nodeType":"YulFunctionCall","src":"3800:18:60"},{"hexValue":"616c696420746f6b656e2061646472657373","kind":"string","nodeType":"YulLiteral","src":"3820:20:60","type":"","value":"alid token address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3793:6:60"},"nodeType":"YulFunctionCall","src":"3793:48:60"},"nodeType":"YulExpressionStatement","src":"3793:48:60"},{"nodeType":"YulAssignment","src":"3850:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3862:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3873:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3858:3:60"},"nodeType":"YulFunctionCall","src":"3858:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3850:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4802f48874e7ccd34416d6409692387aed59c9966d421c77b823e38e339bb797__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3620:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3634:4:60","type":""}],"src":"3469:414:60"},{"body":{"nodeType":"YulBlock","src":"4062:245:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4079:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4090:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4072:6:60"},"nodeType":"YulFunctionCall","src":"4072:21:60"},"nodeType":"YulExpressionStatement","src":"4072:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4113:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4124:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4109:3:60"},"nodeType":"YulFunctionCall","src":"4109:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4129:2:60","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4102:6:60"},"nodeType":"YulFunctionCall","src":"4102:30:60"},"nodeType":"YulExpressionStatement","src":"4102:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4152:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4163:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4148:3:60"},"nodeType":"YulFunctionCall","src":"4148:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"4168:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4141:6:60"},"nodeType":"YulFunctionCall","src":"4141:62:60"},"nodeType":"YulExpressionStatement","src":"4141:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4223:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4234:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4219:3:60"},"nodeType":"YulFunctionCall","src":"4219:18:60"},{"hexValue":"6e76616c696420726563697069656e74206e756d626572","kind":"string","nodeType":"YulLiteral","src":"4239:25:60","type":"","value":"nvalid recipient number"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4212:6:60"},"nodeType":"YulFunctionCall","src":"4212:53:60"},"nodeType":"YulExpressionStatement","src":"4212:53:60"},{"nodeType":"YulAssignment","src":"4274:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4286:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4297:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4282:3:60"},"nodeType":"YulFunctionCall","src":"4282:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4274:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4039:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4053:4:60","type":""}],"src":"3888:419:60"},{"body":{"nodeType":"YulBlock","src":"4344:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4361:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4368:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4373:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4364:3:60"},"nodeType":"YulFunctionCall","src":"4364:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4354:6:60"},"nodeType":"YulFunctionCall","src":"4354:31:60"},"nodeType":"YulExpressionStatement","src":"4354:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4401:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4404:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4394:6:60"},"nodeType":"YulFunctionCall","src":"4394:15:60"},"nodeType":"YulExpressionStatement","src":"4394:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4425:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4428:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4418:6:60"},"nodeType":"YulFunctionCall","src":"4418:15:60"},"nodeType":"YulExpressionStatement","src":"4418:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"4312:127:60"},{"body":{"nodeType":"YulBlock","src":"4618:246:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4635:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4646:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4628:6:60"},"nodeType":"YulFunctionCall","src":"4628:21:60"},"nodeType":"YulExpressionStatement","src":"4628:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4669:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4680:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4665:3:60"},"nodeType":"YulFunctionCall","src":"4665:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4685:2:60","type":"","value":"56"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4658:6:60"},"nodeType":"YulFunctionCall","src":"4658:30:60"},"nodeType":"YulExpressionStatement","src":"4658:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4708:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4719:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4704:3:60"},"nodeType":"YulFunctionCall","src":"4704:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"4724:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4697:6:60"},"nodeType":"YulFunctionCall","src":"4697:62:60"},"nodeType":"YulExpressionStatement","src":"4697:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4779:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4790:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:60"},"nodeType":"YulFunctionCall","src":"4775:18:60"},{"hexValue":"6e76616c696420726563697069656e742061646472657373","kind":"string","nodeType":"YulLiteral","src":"4795:26:60","type":"","value":"nvalid recipient address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4768:6:60"},"nodeType":"YulFunctionCall","src":"4768:54:60"},"nodeType":"YulExpressionStatement","src":"4768:54:60"},{"nodeType":"YulAssignment","src":"4831:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:60"},"nodeType":"YulFunctionCall","src":"4839:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4595:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4609:4:60","type":""}],"src":"4444:420:60"},{"body":{"nodeType":"YulBlock","src":"5043:249:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5060:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5071:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5053:6:60"},"nodeType":"YulFunctionCall","src":"5053:21:60"},"nodeType":"YulExpressionStatement","src":"5053:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5094:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5105:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5090:3:60"},"nodeType":"YulFunctionCall","src":"5090:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5110:2:60","type":"","value":"59"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5083:6:60"},"nodeType":"YulFunctionCall","src":"5083:30:60"},"nodeType":"YulExpressionStatement","src":"5083:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5133:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5144:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5129:3:60"},"nodeType":"YulFunctionCall","src":"5129:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"5149:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5122:6:60"},"nodeType":"YulFunctionCall","src":"5122:62:60"},"nodeType":"YulExpressionStatement","src":"5122:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5204:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5215:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5200:3:60"},"nodeType":"YulFunctionCall","src":"5200:18:60"},{"hexValue":"6e76616c696420726563697069656e7420616c6c6f636174696f6e","kind":"string","nodeType":"YulLiteral","src":"5220:29:60","type":"","value":"nvalid recipient allocation"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:60"},"nodeType":"YulFunctionCall","src":"5193:57:60"},"nodeType":"YulExpressionStatement","src":"5193:57:60"},{"nodeType":"YulAssignment","src":"5259:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5271:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5282:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5267:3:60"},"nodeType":"YulFunctionCall","src":"5267:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5259:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5020:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5034:4:60","type":""}],"src":"4869:423:60"},{"body":{"nodeType":"YulBlock","src":"5329:95:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5346:1:60","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:60","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:60","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:60"},"nodeType":"YulFunctionCall","src":"5349:20:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5339:6:60"},"nodeType":"YulFunctionCall","src":"5339:31:60"},"nodeType":"YulExpressionStatement","src":"5339:31:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5386:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5389:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5379:6:60"},"nodeType":"YulFunctionCall","src":"5379:15:60"},"nodeType":"YulExpressionStatement","src":"5379:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5410:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5413:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5403:6:60"},"nodeType":"YulFunctionCall","src":"5403:15:60"},"nodeType":"YulExpressionStatement","src":"5403:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5297:127:60"},{"body":{"nodeType":"YulBlock","src":"5477:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"5504:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5506:16:60"},"nodeType":"YulFunctionCall","src":"5506:18:60"},"nodeType":"YulExpressionStatement","src":"5506:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5493:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5500:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5496:3:60"},"nodeType":"YulFunctionCall","src":"5496:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5490:2:60"},"nodeType":"YulFunctionCall","src":"5490:13:60"},"nodeType":"YulIf","src":"5487:39:60"},{"nodeType":"YulAssignment","src":"5535:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5546:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"5549:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5542:3:60"},"nodeType":"YulFunctionCall","src":"5542:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5535:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5460:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"5463:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5469:3:60","type":""}],"src":"5429:128:60"},{"body":{"nodeType":"YulBlock","src":"5609:88:60","statements":[{"body":{"nodeType":"YulBlock","src":"5640:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5642:16:60"},"nodeType":"YulFunctionCall","src":"5642:18:60"},"nodeType":"YulExpressionStatement","src":"5642:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5625:5:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5636:1:60","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5632:3:60"},"nodeType":"YulFunctionCall","src":"5632:6:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5622:2:60"},"nodeType":"YulFunctionCall","src":"5622:17:60"},"nodeType":"YulIf","src":"5619:43:60"},{"nodeType":"YulAssignment","src":"5671:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5682:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"5689:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5678:3:60"},"nodeType":"YulFunctionCall","src":"5678:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5671:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5591:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"5601:3:60","type":""}],"src":"5562:135:60"},{"body":{"nodeType":"YulBlock","src":"5876:245:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5893:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5904:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5886:6:60"},"nodeType":"YulFunctionCall","src":"5886:21:60"},"nodeType":"YulExpressionStatement","src":"5886:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5927:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5938:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5923:3:60"},"nodeType":"YulFunctionCall","src":"5923:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5943:2:60","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5916:6:60"},"nodeType":"YulFunctionCall","src":"5916:30:60"},"nodeType":"YulExpressionStatement","src":"5916:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5966:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5977:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5962:3:60"},"nodeType":"YulFunctionCall","src":"5962:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"5982:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5955:6:60"},"nodeType":"YulFunctionCall","src":"5955:62:60"},"nodeType":"YulExpressionStatement","src":"5955:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6037:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6048:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6033:3:60"},"nodeType":"YulFunctionCall","src":"6033:18:60"},{"hexValue":"6e76616c696420746f74616c20616c6c6f636174696f6e","kind":"string","nodeType":"YulLiteral","src":"6053:25:60","type":"","value":"nvalid total allocation"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6026:6:60"},"nodeType":"YulFunctionCall","src":"6026:53:60"},"nodeType":"YulExpressionStatement","src":"6026:53:60"},{"nodeType":"YulAssignment","src":"6088:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6100:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6111:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6096:3:60"},"nodeType":"YulFunctionCall","src":"6096:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6088:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5853:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5867:4:60","type":""}],"src":"5702:419:60"},{"body":{"nodeType":"YulBlock","src":"6333:684:60","statements":[{"nodeType":"YulVariableDeclaration","src":"6343:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6353:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6347:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6364:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6382:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6393:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6378:3:60"},"nodeType":"YulFunctionCall","src":"6378:18:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"6368:6:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6412:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6423:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6405:6:60"},"nodeType":"YulFunctionCall","src":"6405:21:60"},"nodeType":"YulExpressionStatement","src":"6405:21:60"},{"nodeType":"YulVariableDeclaration","src":"6435:17:60","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"6446:6:60"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"6439:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6461:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6481:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6475:5:60"},"nodeType":"YulFunctionCall","src":"6475:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6465:6:60","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"6504:6:60"},{"name":"length","nodeType":"YulIdentifier","src":"6512:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6497:6:60"},"nodeType":"YulFunctionCall","src":"6497:22:60"},"nodeType":"YulExpressionStatement","src":"6497:22:60"},{"nodeType":"YulVariableDeclaration","src":"6528:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6538:2:60","type":"","value":"64"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6532:2:60","type":""}]},{"nodeType":"YulAssignment","src":"6549:25:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6560:9:60"},{"name":"_2","nodeType":"YulIdentifier","src":"6571:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6556:3:60"},"nodeType":"YulFunctionCall","src":"6556:18:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6549:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"6583:29:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6601:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6609:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6597:3:60"},"nodeType":"YulFunctionCall","src":"6597:15:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"6587:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6621:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6630:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6625:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"6689:302:60","statements":[{"nodeType":"YulVariableDeclaration","src":"6703:23:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6719:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6713:5:60"},"nodeType":"YulFunctionCall","src":"6713:13:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"6707:2:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6746:3:60"},{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6761:2:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6755:5:60"},"nodeType":"YulFunctionCall","src":"6755:9:60"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6774:3:60","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6779:1:60","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6770:3:60"},"nodeType":"YulFunctionCall","src":"6770:11:60"},{"kind":"number","nodeType":"YulLiteral","src":"6783:1:60","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6766:3:60"},"nodeType":"YulFunctionCall","src":"6766:19:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6751:3:60"},"nodeType":"YulFunctionCall","src":"6751:35:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6739:6:60"},"nodeType":"YulFunctionCall","src":"6739:48:60"},"nodeType":"YulExpressionStatement","src":"6739:48:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6811:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6816:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6807:3:60"},"nodeType":"YulFunctionCall","src":"6807:12:60"},{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6831:2:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6835:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6827:3:60"},"nodeType":"YulFunctionCall","src":"6827:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6821:5:60"},"nodeType":"YulFunctionCall","src":"6821:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6800:6:60"},"nodeType":"YulFunctionCall","src":"6800:40:60"},"nodeType":"YulExpressionStatement","src":"6800:40:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6864:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"6869:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6860:3:60"},"nodeType":"YulFunctionCall","src":"6860:12:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6898:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"6902:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6894:3:60"},"nodeType":"YulFunctionCall","src":"6894:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6888:5:60"},"nodeType":"YulFunctionCall","src":"6888:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6881:6:60"},"nodeType":"YulFunctionCall","src":"6881:26:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6874:6:60"},"nodeType":"YulFunctionCall","src":"6874:34:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6853:6:60"},"nodeType":"YulFunctionCall","src":"6853:56:60"},"nodeType":"YulExpressionStatement","src":"6853:56:60"},{"nodeType":"YulAssignment","src":"6922:21:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6933:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"6938:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6929:3:60"},"nodeType":"YulFunctionCall","src":"6929:14:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6922:3:60"}]},{"nodeType":"YulAssignment","src":"6956:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6970:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6978:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6966:3:60"},"nodeType":"YulFunctionCall","src":"6966:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"6956:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6651:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"6654:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6648:2:60"},"nodeType":"YulFunctionCall","src":"6648:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6662:18:60","statements":[{"nodeType":"YulAssignment","src":"6664:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6673:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"6676:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6669:3:60"},"nodeType":"YulFunctionCall","src":"6669:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6664:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"6644:3:60","statements":[]},"src":"6640:351:60"},{"nodeType":"YulAssignment","src":"7000:11:60","value":{"name":"pos","nodeType":"YulIdentifier","src":"7008:3:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7000:4:60"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6302:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6313:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6324:4:60","type":""}],"src":"6126:891:60"},{"body":{"nodeType":"YulBlock","src":"7196:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7213:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7224:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7206:6:60"},"nodeType":"YulFunctionCall","src":"7206:21:60"},"nodeType":"YulExpressionStatement","src":"7206:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7247:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7258:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7243:3:60"},"nodeType":"YulFunctionCall","src":"7243:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7263:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7236:6:60"},"nodeType":"YulFunctionCall","src":"7236:30:60"},"nodeType":"YulExpressionStatement","src":"7236:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7286:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7297:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7282:3:60"},"nodeType":"YulFunctionCall","src":"7282:18:60"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"7302:34:60","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7275:6:60"},"nodeType":"YulFunctionCall","src":"7275:62:60"},"nodeType":"YulExpressionStatement","src":"7275:62:60"},{"nodeType":"YulAssignment","src":"7346:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7358:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7369:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7354:3:60"},"nodeType":"YulFunctionCall","src":"7354:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7346:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7173:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7187:4:60","type":""}],"src":"7022:356:60"}]},"contents":"{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_1483() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, sub(shl(64, 1), 1)), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_tuple_t_addresst_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptrt_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        let _1 := 32\n        let offset := mload(add(headStart, _1))\n        let _2 := sub(shl(64, 1), 1)\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := mload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let dst := allocate_memory(add(shl(5, _4), _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let _5 := 0x60\n        let srcEnd := add(add(_3, mul(_4, _5)), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _5) }\n        {\n            if slt(sub(dataEnd, src), _5)\n            {\n                let _6 := 0\n                revert(_6, _6)\n            }\n            let value := allocate_memory_1483()\n            mstore(value, abi_decode_address_fromMemory(src))\n            mstore(add(value, _1), mload(add(src, _1)))\n            let _7 := 64\n            let value_1 := mload(add(src, _7))\n            if iszero(eq(value_1, iszero(iszero(value_1))))\n            {\n                let _8 := 0\n                revert(_8, _8)\n            }\n            mstore(add(value, _7), value_1)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value1 := dst_1\n        value2 := abi_decode_address_fromMemory(add(headStart, 64))\n        value3 := mload(add(headStart, _5))\n    }\n    function abi_encode_tuple_t_stringliteral_fd6da1a76a3c4917dd482549ae7e1bc7a12eef2df6f859ac2425059dfef89282__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"TreasuryVester::Constructor: low\")\n        mstore(add(headStart, 96), \" vesting amount\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0fd2324a2ffeeca26bb5a7899f7b17b617ba13cffb0fa8a49bcc701d67dc6426__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 53)\n        mstore(add(headStart, 64), \"TreasuryVester::Constructor: inv\")\n        mstore(add(headStart, 96), \"alid guardian address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4802f48874e7ccd34416d6409692387aed59c9966d421c77b823e38e339bb797__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"TreasuryVester::Constructor: inv\")\n        mstore(add(headStart, 96), \"alid token address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid recipient number\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid recipient address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid recipient allocation\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid total allocation\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        let _2 := 64\n        pos := add(headStart, _2)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _3 := mload(srcPtr)\n            mstore(pos, and(mload(_3), sub(shl(160, 1), 1)))\n            mstore(add(pos, _1), mload(add(_3, _1)))\n            mstore(add(pos, _2), iszero(iszero(mload(add(_3, _2)))))\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c06040523480156200001157600080fd5b506040516200195a3803806200195a83398101604081905262000034916200067a565b6200003f33620001c0565b6127108111620000ae5760405162461bcd60e51b815260206004820152602f60248201527f54726561737572795665737465723a3a436f6e7374727563746f723a206c6f7760448201526e081d995cdd1a5b99c8185b5bdd5b9d608a1b60648201526084015b60405180910390fd5b6001600160a01b0382166200011b5760405162461bcd60e51b815260206004820152603560248201526000805160206200193a83398151915260448201527f616c696420677561726469616e206164647265737300000000000000000000006064820152608401620000a5565b6000846001600160a01b03163b11620001815760405162461bcd60e51b815260206004820152603260248201526000805160206200193a833981519152604482015271616c696420746f6b656e206164647265737360701b6064820152608401620000a5565b600280546001600160a01b0319166001600160a01b0384811691909117909155841660805260a0819052620001b68362000210565b5050505062000869565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200021a6200052d565b62000228600160006200058b565b805180158015906200023a5750602981105b6200029d5760405162461bcd60e51b815260206004820152603760248201526000805160206200191a83398151915260448201527f6e76616c696420726563697069656e74206e756d6265720000000000000000006064820152608401620000a5565b6000805b8281101562000486576000848281518110620002c157620002c1620007a0565b602090810291909101015180519091506001600160a01b03166200033d5760405162461bcd60e51b815260206004820152603860248201526000805160206200191a83398151915260448201527f6e76616c696420726563697069656e74206164647265737300000000000000006064820152608401620000a5565b8060200151600003620003a85760405162461bcd60e51b815260206004820152603b60248201526000805160206200191a83398151915260448201527f6e76616c696420726563697069656e7420616c6c6f636174696f6e00000000006064820152608401620000a5565b60018054808201825560009190915281517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6600390920291820180546001600160a01b0319166001600160a01b0390921691909117905560208201517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7820181905560408301517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8909201805460ff1916921515929092179091556200046f9084620007cc565b925050806200047e90620007e7565b9050620002a1565b506127108114620004ef5760405162461bcd60e51b815260206004820152603760248201526000805160206200191a83398151915260448201527f6e76616c696420746f74616c20616c6c6f636174696f6e0000000000000000006064820152608401620000a5565b7f460ea22cf0e4fc57af938b5999c20c34746291ba7c678329289ca316290b88f28360405162000520919062000803565b60405180910390a1505050565b6000546001600160a01b03163314620005895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000a5565b565b5080546000825560030290600052602060002090810190620005ae9190620005b1565b50565b5b80821115620005e55780546001600160a01b03191681556000600182015560028101805460ff19169055600301620005b2565b5090565b80516001600160a01b03811681146200060157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171562000641576200064162000606565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000672576200067262000606565b604052919050565b600080600080608085870312156200069157600080fd5b6200069c85620005e9565b602086810151919550906001600160401b0380821115620006bc57600080fd5b818801915088601f830112620006d157600080fd5b815181811115620006e657620006e662000606565b620006f6848260051b0162000647565b8181528481019250606091820284018501918b8311156200071657600080fd5b938501935b828510156200077e5780858d031215620007355760008081fd5b6200073f6200061c565b6200074a86620005e9565b8152868601518782015260408087015180151581146200076a5760008081fd5b90820152845293840193928501926200071b565b8198506200078f60408c01620005e9565b9a0151989b979a5050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115620007e257620007e2620007b6565b500190565b600060018201620007fc57620007fc620007b6565b5060010190565b602080825282518282018190526000919060409081850190868401855b828110156200085c57815180516001600160a01b0316855286810151878601528501511515858501526060909301929085019060010162000820565b5091979650505050505050565b60805160a051611070620008aa6000396000818160de01526108b401526000818161014301528181610924015281816109c70152610afe01526110706000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063deb36e321161005b578063deb36e32146101fa578063e4fc6b6d14610202578063f2fde38b1461020a57600080fd5b80638da5cb5b146101a6578063c0463711146101b7578063d1bc76a1146101c057600080fd5b8063715018a6116100b2578063715018a61461016557806377b872a81461016f5780637f87bbd61461018257600080fd5b80630d8f82fd146100d9578063452a9320146101135780635de297411461013e575b600080fd5b6101007f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b600254610126906001600160a01b031681565b6040516001600160a01b03909116815260200161010a565b6101267f000000000000000000000000000000000000000000000000000000000000000081565b61016d61021d565b005b61016d61017d366004610dfb565b610231565b60025461019690600160a01b900460ff1681565b604051901515815260200161010a565b6000546001600160a01b0316610126565b61010060035481565b6101d36101ce366004610edf565b61058c565b604080516001600160a01b039094168452602084019290925215159082015260600161010a565b61016d6105cc565b61016d61073a565b61016d610218366004610ef8565b610b9d565b610225610c2d565b61022f6000610c87565b565b610239610c2d565b61024560016000610ce4565b805180158015906102565750602981105b6102cd5760405162461bcd60e51b815260206004820152603760248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420726563697069656e74206e756d62657200000000000000000060648201526084015b60405180910390fd5b6000805b828110156104d85760008482815181106102ed576102ed610f1a565b602090810291909101015180519091506001600160a01b03166103785760405162461bcd60e51b815260206004820152603860248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420726563697069656e742061646472657373000000000000000060648201526084016102c4565b80602001516000036103f25760405162461bcd60e51b815260206004820152603b60248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420726563697069656e7420616c6c6f636174696f6e000000000060648201526084016102c4565b60018054808201825560009190915281517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66003909202918201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208201517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7820181905560408301517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8909201805460ff1916921515929092179091556104c49084610f46565b925050806104d190610f5e565b90506102d1565b5061271081146105505760405162461bcd60e51b815260206004820152603760248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420746f74616c20616c6c6f636174696f6e00000000000000000060648201526084016102c4565b7f460ea22cf0e4fc57af938b5999c20c34746291ba7c678329289ca316290b88f28360405161057f9190610f78565b60405180910390a1505050565b6001818154811061059c57600080fd5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925060ff1683565b6002546001600160a01b03163314806105ef57506000546001600160a01b031633145b6106615760405162461bcd60e51b815260206004820152603960248201527f54726561737572795665737465723a3a737461727456657374696e673a20756e60448201527f617574686f72697a6564206d6573736167652073656e6465720000000000000060648201526084016102c4565b600254600160a01b900460ff16156106e15760405162461bcd60e51b815260206004820152603860248201527f54726561737572795665737465723a3a737461727456657374696e673a20766560448201527f7374696e6720697320616c726561647920656e61626c6564000000000000000060648201526084016102c4565b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b600254600160a01b900460ff166107b95760405162461bcd60e51b815260206004820152603260248201527f54726561737572795665737465723a3a646973747269627574653a207665737460448201527f696e67206973206e6f7420656e61626c6564000000000000000000000000000060648201526084016102c4565b620151806003546107ca9190610f46565b42101561083f5760405162461bcd60e51b815260206004820152603960248201527f54726561737572795665737465723a3a646973747269627574653a206974206960448201527f7320746f6f206561726c7920746f20646973747269627574650000000000000060648201526084016102c4565b4260035560015460005b81811015610b705760006001828154811061086657610866610f1a565b6000918252602080832060408051606081018252600390940290910180546001600160a01b0316845260018101549284018390526002015460ff16151590830152909250612710906108d9907f000000000000000000000000000000000000000000000000000000000000000090610fdc565b6108e39190610ffb565b9050816040015115610abd576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f1990604401600060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505083516040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018590527f0000000000000000000000000000000000000000000000000000000000000000909116925063095ea7b391506044016020604051808303816000875af1158015610a14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a38919061101d565b5081516040517f28662551000000000000000000000000000000000000000000000000000000008152600481018390526201518060248201526001600160a01b0390911690632866255190604401600060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b50505050610b5d565b81516040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390527f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b158015610b4457600080fd5b505af1158015610b58573d6000803e3d6000fd5b505050505b505080610b6990610f5e565b9050610849565b506040517f4f4344ade909ddfd3bcfa062e00ca65e85fd886222cb4b0c3689037aa5bd5d6890600090a150565b610ba5610c2d565b6001600160a01b038116610c215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102c4565b610c2a81610c87565b50565b6000546001600160a01b0316331461022f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c4565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546000825560030290600052602060002090810190610c2a91905b80821115610d3f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182015560028101805460ff19169055600301610d01565b5090565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610d7c57610d7c610d43565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610dc957610dc9610d43565b604052919050565b80356001600160a01b0381168114610de857600080fd5b919050565b8015158114610c2a57600080fd5b60006020808385031215610e0e57600080fd5b823567ffffffffffffffff80821115610e2657600080fd5b818501915085601f830112610e3a57600080fd5b813581811115610e4c57610e4c610d43565b610e5a848260051b01610d82565b81815284810192506060918202840185019188831115610e7957600080fd5b938501935b82851015610ed35780858a031215610e965760008081fd5b610e9e610d59565b610ea786610dd1565b81528686013587820152604080870135610ec081610ded565b9082015284529384019392850192610e7e565b50979650505050505050565b600060208284031215610ef157600080fd5b5035919050565b600060208284031215610f0a57600080fd5b610f1382610dd1565b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115610f5957610f59610f30565b500190565b60006000198203610f7157610f71610f30565b5060010190565b602080825282518282018190526000919060409081850190868401855b82811015610fcf57815180516001600160a01b03168552868101518786015285015115158585015260609093019290850190600101610f95565b5091979650505050505050565b6000816000190483118215151615610ff657610ff6610f30565b500290565b60008261101857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561102f57600080fd5b8151610f1381610ded56fea2646970667358221220a1a575e5b4754c2c900c5b148596dbf8a627972b4bfb71e7b0786f0029266cee64736f6c634300080f003354726561737572795665737465723a3a736574526563697069656e74733a206954726561737572795665737465723a3a436f6e7374727563746f723a20696e76","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x195A CODESIZE SUB DUP1 PUSH3 0x195A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x67A JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x1C0 JUMP JUMPDEST PUSH2 0x2710 DUP2 GT PUSH3 0xAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A436F6E7374727563746F723A206C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x81D995CDD1A5B99C8185B5BDD5B9D PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x11B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x193A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x616C696420677561726469616E20616464726573730000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xA5 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH3 0x181 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x193A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x616C696420746F6B656E2061646472657373 PUSH1 0x70 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xA5 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP5 AND PUSH1 0x80 MSTORE PUSH1 0xA0 DUP2 SWAP1 MSTORE PUSH3 0x1B6 DUP4 PUSH3 0x210 JUMP JUMPDEST POP POP POP POP PUSH3 0x869 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH3 0x21A PUSH3 0x52D JUMP JUMPDEST PUSH3 0x228 PUSH1 0x1 PUSH1 0x0 PUSH3 0x58B JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH3 0x23A JUMPI POP PUSH1 0x29 DUP2 LT JUMPDEST PUSH3 0x29D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x191A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E74206E756D626572000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xA5 JUMP JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x486 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x2C1 JUMPI PUSH3 0x2C1 PUSH3 0x7A0 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x33D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x191A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E7420616464726573730000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xA5 JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SUB PUSH3 0x3A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x191A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E7420616C6C6F636174696F6E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xA5 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 PUSH1 0x3 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF7 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF8 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP3 ISZERO ISZERO SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH3 0x46F SWAP1 DUP5 PUSH3 0x7CC JUMP JUMPDEST SWAP3 POP POP DUP1 PUSH3 0x47E SWAP1 PUSH3 0x7E7 JUMP JUMPDEST SWAP1 POP PUSH3 0x2A1 JUMP JUMPDEST POP PUSH2 0x2710 DUP2 EQ PUSH3 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x191A DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420746F74616C20616C6C6F636174696F6E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xA5 JUMP JUMPDEST PUSH32 0x460EA22CF0E4FC57AF938B5999C20C34746291BA7C678329289CA316290B88F2 DUP4 PUSH1 0x40 MLOAD PUSH3 0x520 SWAP2 SWAP1 PUSH3 0x803 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x589 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA5 JUMP JUMPDEST JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x3 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH3 0x5AE SWAP2 SWAP1 PUSH3 0x5B1 JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x5E5 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x3 ADD PUSH3 0x5B2 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x601 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x641 JUMPI PUSH3 0x641 PUSH3 0x606 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x672 JUMPI PUSH3 0x672 PUSH3 0x606 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x691 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x69C DUP6 PUSH3 0x5E9 JUMP JUMPDEST PUSH1 0x20 DUP7 DUP2 ADD MLOAD SWAP2 SWAP6 POP SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x6BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x6E6 JUMPI PUSH3 0x6E6 PUSH3 0x606 JUMP JUMPDEST PUSH3 0x6F6 DUP5 DUP3 PUSH1 0x5 SHL ADD PUSH3 0x647 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP3 POP PUSH1 0x60 SWAP2 DUP3 MUL DUP5 ADD DUP6 ADD SWAP2 DUP12 DUP4 GT ISZERO PUSH3 0x716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH3 0x77E JUMPI DUP1 DUP6 DUP14 SUB SLT ISZERO PUSH3 0x735 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH3 0x73F PUSH3 0x61C JUMP JUMPDEST PUSH3 0x74A DUP7 PUSH3 0x5E9 JUMP JUMPDEST DUP2 MSTORE DUP7 DUP7 ADD MLOAD DUP8 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH3 0x76A JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST SWAP1 DUP3 ADD MSTORE DUP5 MSTORE SWAP4 DUP5 ADD SWAP4 SWAP3 DUP6 ADD SWAP3 PUSH3 0x71B JUMP JUMPDEST DUP2 SWAP9 POP PUSH3 0x78F PUSH1 0x40 DUP13 ADD PUSH3 0x5E9 JUMP JUMPDEST SWAP11 ADD MLOAD SWAP9 SWAP12 SWAP8 SWAP11 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x7E2 JUMPI PUSH3 0x7E2 PUSH3 0x7B6 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x7FC JUMPI PUSH3 0x7FC PUSH3 0x7B6 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x40 SWAP1 DUP2 DUP6 ADD SWAP1 DUP7 DUP5 ADD DUP6 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x85C JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE DUP7 DUP2 ADD MLOAD DUP8 DUP7 ADD MSTORE DUP6 ADD MLOAD ISZERO ISZERO DUP6 DUP6 ADD MSTORE PUSH1 0x60 SWAP1 SWAP4 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH3 0x820 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1070 PUSH3 0x8AA PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0xDE ADD MSTORE PUSH2 0x8B4 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x143 ADD MSTORE DUP2 DUP2 PUSH2 0x924 ADD MSTORE DUP2 DUP2 PUSH2 0x9C7 ADD MSTORE PUSH2 0xAFE ADD MSTORE PUSH2 0x1070 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 0xD4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xDEB36E32 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xDEB36E32 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0xE4FC6B6D EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0xC0463711 EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0xD1BC76A1 EQ PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x77B872A8 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x7F87BBD6 EQ PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD8F82FD EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0x5DE29741 EQ PUSH2 0x13E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x100 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x126 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10A JUMP JUMPDEST PUSH2 0x126 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x16D PUSH2 0x21D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16D PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0xDFB JUMP JUMPDEST PUSH2 0x231 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x196 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x126 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D3 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x58C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x10A JUMP JUMPDEST PUSH2 0x16D PUSH2 0x5CC JUMP JUMPDEST PUSH2 0x16D PUSH2 0x73A JUMP JUMPDEST PUSH2 0x16D PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xB9D JUMP JUMPDEST PUSH2 0x225 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x22F PUSH1 0x0 PUSH2 0xC87 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x239 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x245 PUSH1 0x1 PUSH1 0x0 PUSH2 0xCE4 JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x256 JUMPI POP PUSH1 0x29 DUP2 LT JUMPDEST PUSH2 0x2CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E74206E756D626572000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2ED JUMPI PUSH2 0x2ED PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x378 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E7420616464726573730000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SUB PUSH2 0x3F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E7420616C6C6F636174696F6E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 PUSH1 0x3 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF7 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF8 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP3 ISZERO ISZERO SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH2 0x4C4 SWAP1 DUP5 PUSH2 0xF46 JUMP JUMPDEST SWAP3 POP POP DUP1 PUSH2 0x4D1 SWAP1 PUSH2 0xF5E JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 JUMP JUMPDEST POP PUSH2 0x2710 DUP2 EQ PUSH2 0x550 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420746F74616C20616C6C6F636174696F6E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH32 0x460EA22CF0E4FC57AF938B5999C20C34746291BA7C678329289CA316290B88F2 DUP4 PUSH1 0x40 MLOAD PUSH2 0x57F SWAP2 SWAP1 PUSH2 0xF78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH1 0xFF AND DUP4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x5EF JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x661 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A737461727456657374696E673A20756E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x617574686F72697A6564206D6573736167652073656E64657200000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A737461727456657374696E673A207665 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7374696E6720697320616C726561647920656E61626C65640000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xF78A71DAF05BB8E3A2EF9C526B1BB785285CDB83A6130CD12A3BBD5C99C15FA3 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x7B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A646973747269627574653A2076657374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E67206973206E6F7420656E61626C65640000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH3 0x15180 PUSH1 0x3 SLOAD PUSH2 0x7CA SWAP2 SWAP1 PUSH2 0xF46 JUMP JUMPDEST TIMESTAMP LT ISZERO PUSH2 0x83F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A646973747269627574653A2069742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7320746F6F206561726C7920746F206469737472696275746500000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST TIMESTAMP PUSH1 0x3 SSTORE PUSH1 0x1 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB70 JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x866 JUMPI PUSH2 0x866 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP1 SWAP5 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP5 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO SWAP1 DUP4 ADD MSTORE SWAP1 SWAP3 POP PUSH2 0x2710 SWAP1 PUSH2 0x8D9 SWAP1 PUSH32 0x0 SWAP1 PUSH2 0xFDC JUMP JUMPDEST PUSH2 0x8E3 SWAP2 SWAP1 PUSH2 0xFFB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x40 ADD MLOAD ISZERO PUSH2 0xABD JUMPI PUSH1 0x40 MLOAD PUSH32 0x40C10F1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x95EA7B300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x95EA7B3 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA38 SWAP2 SWAP1 PUSH2 0x101D JUMP JUMPDEST POP DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x2866255100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x15180 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x28662551 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB5D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x40C10F1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB58 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP DUP1 PUSH2 0xB69 SWAP1 PUSH2 0xF5E JUMP JUMPDEST SWAP1 POP PUSH2 0x849 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x4F4344ADE909DDFD3BCFA062E00CA65E85FD886222CB4B0C3689037AA5BD5D68 SWAP1 PUSH1 0x0 SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xBA5 PUSH2 0xC2D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC21 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0xC2A DUP2 PUSH2 0xC87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x3 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xC2A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xD3F JUMPI DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x3 ADD PUSH2 0xD01 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD7C JUMPI PUSH2 0xD7C PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xDC9 JUMPI PUSH2 0xDC9 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xE4C JUMPI PUSH2 0xE4C PUSH2 0xD43 JUMP JUMPDEST PUSH2 0xE5A DUP5 DUP3 PUSH1 0x5 SHL ADD PUSH2 0xD82 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP3 POP PUSH1 0x60 SWAP2 DUP3 MUL DUP5 ADD DUP6 ADD SWAP2 DUP9 DUP4 GT ISZERO PUSH2 0xE79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0xED3 JUMPI DUP1 DUP6 DUP11 SUB SLT ISZERO PUSH2 0xE96 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xE9E PUSH2 0xD59 JUMP JUMPDEST PUSH2 0xEA7 DUP7 PUSH2 0xDD1 JUMP JUMPDEST DUP2 MSTORE DUP7 DUP7 ADD CALLDATALOAD DUP8 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP8 ADD CALLDATALOAD PUSH2 0xEC0 DUP2 PUSH2 0xDED JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP5 MSTORE SWAP4 DUP5 ADD SWAP4 SWAP3 DUP6 ADD SWAP3 PUSH2 0xE7E JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF13 DUP3 PUSH2 0xDD1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF59 JUMPI PUSH2 0xF59 PUSH2 0xF30 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xF71 JUMPI PUSH2 0xF71 PUSH2 0xF30 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x40 SWAP1 DUP2 DUP6 ADD SWAP1 DUP7 DUP5 ADD DUP6 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xFCF JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE DUP7 DUP2 ADD MLOAD DUP8 DUP7 ADD MSTORE DUP6 ADD MLOAD ISZERO ISZERO DUP6 DUP6 ADD MSTORE PUSH1 0x60 SWAP1 SWAP4 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xF95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xFF6 JUMPI PUSH2 0xFF6 PUSH2 0xF30 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1018 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x102F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xF13 DUP2 PUSH2 0xDED JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 0xA5 PUSH22 0xE5B4754C2C900C5B148596DBF8A627972B4BFB71E7B0 PUSH25 0x6F0029266CEE64736F6C634300080F00335472656173757279 JUMP PUSH6 0x737465723A3A PUSH20 0x6574526563697069656E74733A20695472656173 PUSH22 0x72795665737465723A3A436F6E7374727563746F723A KECCAK256 PUSH10 0x6E760000000000000000 ","sourceMap":"507:5571:59:-:0;;;1901:652;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:4;719:10:24;936:18:4;:32::i;:::-;1391:5:59;2082:21;:35;2074:95;;;;-1:-1:-1;;;2074:95:59;;2833:2:60;2074:95:59;;;2815:21:60;2872:2;2852:18;;;2845:30;2911:34;2891:18;;;2884:62;-1:-1:-1;;;2962:18:60;;;2955:45;3017:19;;2074:95:59;;;;;;;;;-1:-1:-1;;;;;2188:25:59;;2180:91;;;;-1:-1:-1;;;2180:91:59;;3249:2:60;2180:91:59;;;3231:21:60;3288:2;3268:18;;;3261:30;-1:-1:-1;;;;;;;;;;;3307:18:60;;;3300:62;3398:23;3378:18;;;3371:51;3439:19;;2180:91:59;3047:417:60;2180:91:59;2319:1;2290:14;-1:-1:-1;;;;;2290:26:59;;:30;2282:93;;;;-1:-1:-1;;;2282:93:59;;3671:2:60;2282:93:59;;;3653:21:60;3710:2;3690:18;;;3683:30;-1:-1:-1;;;;;;;;;;;3729:18:60;;;3722:62;-1:-1:-1;;;3800:18:60;;;3793:48;3858:19;;2282:93:59;3469:414:60;2282:93:59;2386:8;:22;;-1:-1:-1;;;;;;2386:22:59;-1:-1:-1;;;;;2386:22:59;;;;;;;;;;2419:34;;;;2464:42;;;;2517:28;2531:13;2517;:28::i;:::-;1901:652;;;;507:5571;;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;;;;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;4156:1042:59:-;1094:13:4;:11;:13::i;:::-;4241:17:59::1;4248:10;;4241:17;:::i;:::-;4283:20:::0;;4336:11;;;::::1;::::0;:26:::1;;;4360:2;4351:6;:11;4336:26;4314:131;;;::::0;-1:-1:-1;;;4314:131:59;;4090:2:60;4314:131:59::1;::::0;::::1;4072:21:60::0;4129:2;4109:18;;;4102:30;-1:-1:-1;;;;;;;;;;;4148:18:60;;;4141:62;4239:25;4219:18;;;4212:53;4282:19;;4314:131:59::1;3888:419:60::0;4314:131:59::1;4456:16;4488:6:::0;4483:518:::1;4500:6;4496:1;:10;4483:518;;;4528:26;4557:13;4571:1;4557:16;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;4614:17;;4557:16;;-1:-1:-1;;;;;;4614:31:59::1;4588:149;;;::::0;-1:-1:-1;;;4588:149:59;;4646:2:60;4588:149:59::1;::::0;::::1;4628:21:60::0;4685:2;4665:18;;;4658:30;-1:-1:-1;;;;;;;;;;;4704:18:60;;;4697:62;4795:26;4775:18;;;4768:54;4839:19;;4588:149:59::1;4444:420:60::0;4588:149:59::1;4778:9;:20;;;4802:1;4778:25:::0;4752:146:::1;;;::::0;-1:-1:-1;;;4752:146:59;;5071:2:60;4752:146:59::1;::::0;::::1;5053:21:60::0;5110:2;5090:18;;;5083:30;-1:-1:-1;;;;;;;;;;;5129:18:60;;;5122:62;5220:29;5200:18;;;5193:57;5267:19;;4752:146:59::1;4869:423:60::0;4752:146:59::1;4913:10;:26:::0;;;;::::1;::::0;;-1:-1:-1;4913:26:59;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;4913:26:59::1;-1:-1:-1::0;;;;;4913:26:59;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;;;-1:-1:-1;;4913:26:59::1;::::0;::::1;;::::0;;;::::1;::::0;;;4954:35:::1;::::0;;::::1;:::i;:::-;;;4513:488;4508:3;;;;:::i;:::-;;;4483:518;;;;1391:5;5033:11;:26;5011:131;;;::::0;-1:-1:-1;;;5011:131:59;;5904:2:60;5011:131:59::1;::::0;::::1;5886:21:60::0;5943:2;5923:18;;;5916:30;-1:-1:-1;;;;;;;;;;;5962:18:60;;;5955:62;6053:25;6033:18;;;6026:53;6096:19;;5011:131:59::1;5702:419:60::0;5011:131:59::1;5158:32;5176:13;5158:32;;;;;;:::i;:::-;;;;;;;;4230:968;;4156:1042:::0;:::o;1359:130:4:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:24;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;7224:2:60;1414:68:4;;;7206:21:60;;;7243:18;;;7236:30;7302:34;7282:18;;;7275:62;7354:18;;1414:68:4;7022:356:60;1414:68:4;1359:130::o;507:5571:59:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;;507:5571:59;;;;;;;;;;;;;-1:-1:-1;;507:5571:59;;;;;;;;;;:::o;14:177:60:-;93:13;;-1:-1:-1;;;;;135:31:60;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:253;400:2;394:9;442:4;430:17;;-1:-1:-1;;;;;462:34:60;;498:22;;;459:62;456:88;;;524:18;;:::i;:::-;560:2;553:22;328:253;:::o;586:275::-;657:2;651:9;722:2;703:13;;-1:-1:-1;;699:27:60;687:40;;-1:-1:-1;;;;;742:34:60;;778:22;;;739:62;736:88;;;804:18;;:::i;:::-;840:2;833:22;586:275;;-1:-1:-1;586:275:60:o;866:1760::-;1016:6;1024;1032;1040;1093:3;1081:9;1072:7;1068:23;1064:33;1061:53;;;1110:1;1107;1100:12;1061:53;1133:40;1163:9;1133:40;:::i;:::-;1192:2;1223:18;;;1217:25;1123:50;;-1:-1:-1;1192:2:60;-1:-1:-1;;;;;1291:14:60;;;1288:34;;;1318:1;1315;1308:12;1288:34;1356:6;1345:9;1341:22;1331:32;;1401:7;1394:4;1390:2;1386:13;1382:27;1372:55;;1423:1;1420;1413:12;1372:55;1452:2;1446:9;1474:2;1470;1467:10;1464:36;;;1480:18;;:::i;:::-;1520:36;1552:2;1547;1544:1;1540:10;1536:19;1520:36;:::i;:::-;1590:15;;;1621:12;;;;-1:-1:-1;1652:4:60;1691:11;;;1683:20;;1679:29;;;1720:19;;;1717:39;;;1752:1;1749;1742:12;1717:39;1776:11;;;;1796:688;1812:6;1807:3;1804:15;1796:688;;;1892:2;1886:3;1877:7;1873:17;1869:26;1866:116;;;1936:1;1965:2;1961;1954:14;1866:116;2008:22;;:::i;:::-;2057:34;2087:3;2057:34;:::i;:::-;2050:5;2043:49;2143:2;2138:3;2134:12;2128:19;2123:2;2116:5;2112:14;2105:43;2171:2;2216;2211:3;2207:12;2201:19;2269:7;2262:15;2255:23;2246:7;2243:36;2233:134;;2321:1;2350:2;2346;2339:14;2233:134;2387:14;;;2380:31;2424:18;;1829:12;;;;2462;;;;1796:688;;;2503:5;2493:15;;2527:49;2572:2;2561:9;2557:18;2527:49;:::i;:::-;2601:18;;2595:25;866:1760;;;;-1:-1:-1;;;;;;;;866:1760:60:o;4312:127::-;4373:10;4368:3;4364:20;4361:1;4354:31;4404:4;4401:1;4394:15;4428:4;4425:1;4418:15;5297:127;5358:10;5353:3;5349:20;5346:1;5339:31;5389:4;5386:1;5379:15;5413:4;5410:1;5403:15;5429:128;5469:3;5500:1;5496:6;5493:1;5490:13;5487:39;;;5506:18;;:::i;:::-;-1:-1:-1;5542:9:60;;5429:128::o;5562:135::-;5601:3;5622:17;;;5619:43;;5642:18;;:::i;:::-;-1:-1:-1;5689:1:60;5678:13;;5562:135::o;6126:891::-;6353:2;6405:21;;;6475:13;;6378:18;;;6497:22;;;6324:4;;6353:2;6538;;6556:18;;;;6597:15;;;6324:4;6640:351;6654:6;6651:1;6648:13;6640:351;;;6713:13;;6755:9;;-1:-1:-1;;;;;6751:35:60;6739:48;;6827:11;;;6821:18;6807:12;;;6800:40;6894:11;;6888:18;6881:26;6874:34;6860:12;;;6853:56;6938:4;6929:14;;;;6966:15;;;;6783:1;6669:9;6640:351;;;-1:-1:-1;7008:3:60;;6126:891;-1:-1:-1;;;;;;;6126:891:60:o;7022:356::-;507:5571:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_593":{"entryPoint":3117,"id":593,"parameterSlots":0,"returnSlots":0},"@_msgSender_4676":{"entryPoint":null,"id":4676,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_650":{"entryPoint":3207,"id":650,"parameterSlots":1,"returnSlots":0},"@dailyVestingAmount_18207":{"entryPoint":null,"id":18207,"parameterSlots":0,"returnSlots":0},"@distribute_18374":{"entryPoint":1850,"id":18374,"parameterSlots":0,"returnSlots":0},"@guardian_18194":{"entryPoint":null,"id":18194,"parameterSlots":0,"returnSlots":0},"@lastUpdate_18204":{"entryPoint":null,"id":18204,"parameterSlots":0,"returnSlots":0},"@owner_579":{"entryPoint":null,"id":579,"parameterSlots":0,"returnSlots":1},"@recipients_18191":{"entryPoint":1420,"id":18191,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_607":{"entryPoint":541,"id":607,"parameterSlots":0,"returnSlots":0},"@setRecipients_18466":{"entryPoint":561,"id":18466,"parameterSlots":1,"returnSlots":0},"@startVesting_18498":{"entryPoint":1484,"id":18498,"parameterSlots":0,"returnSlots":0},"@transferOwnership_630":{"entryPoint":2973,"id":630,"parameterSlots":1,"returnSlots":0},"@vestedToken_18198":{"entryPoint":null,"id":18198,"parameterSlots":0,"returnSlots":0},"@vestingEnabled_18201":{"entryPoint":null,"id":18201,"parameterSlots":0,"returnSlots":0},"abi_decode_address":{"entryPoint":3537,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3832,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr":{"entryPoint":3579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4125,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3807,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bool__to_t_address_t_uint256_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":3960,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IPng_$18172__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_77243531fc44ff4ed9fca6d2ebd8511252683c1dc604273b03638450ba77e36e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7c7f1e3f4b42f663a710fed54749618152100d9e93a9adf0889dfe09ffa69a24__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bf451b05bbc7a4c3c65549b71d830d4403bf9cb0b5d550951242adaed41ee1a1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d9988717070b3568d7998e686694b9786045d53924bc0958f4c21d04364083b1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":3458,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_1782":{"entryPoint":3417,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":3910,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":4091,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":4060,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":3934,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":3888,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3866,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3395,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":3565,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:11277:60","statements":[{"nodeType":"YulBlock","src":"6:3:60","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:60","statements":[{"nodeType":"YulAssignment","src":"125:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:60"},"nodeType":"YulFunctionCall","src":"133:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:60"},"nodeType":"YulFunctionCall","src":"160:25:60"},"nodeType":"YulExpressionStatement","src":"160:25:60"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:60","type":""}],"src":"14:177:60"},{"body":{"nodeType":"YulBlock","src":"297:125:60","statements":[{"nodeType":"YulAssignment","src":"307:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"319:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"330:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"315:3:60"},"nodeType":"YulFunctionCall","src":"315:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"307:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"364:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"372:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"360:3:60"},"nodeType":"YulFunctionCall","src":"360:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"342:6:60"},"nodeType":"YulFunctionCall","src":"342:74:60"},"nodeType":"YulExpressionStatement","src":"342:74:60"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"266:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"277:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"288:4:60","type":""}],"src":"196:226:60"},{"body":{"nodeType":"YulBlock","src":"542:125:60","statements":[{"nodeType":"YulAssignment","src":"552:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"564:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"575:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"560:3:60"},"nodeType":"YulFunctionCall","src":"560:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"552:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"594:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"609:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"617:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"605:3:60"},"nodeType":"YulFunctionCall","src":"605:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"587:6:60"},"nodeType":"YulFunctionCall","src":"587:74:60"},"nodeType":"YulExpressionStatement","src":"587:74:60"}]},"name":"abi_encode_tuple_t_contract$_IPng_$18172__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"511:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"522:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"533:4:60","type":""}],"src":"427:240:60"},{"body":{"nodeType":"YulBlock","src":"704:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"721:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"724:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"714:6:60"},"nodeType":"YulFunctionCall","src":"714:88:60"},"nodeType":"YulExpressionStatement","src":"714:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"818:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"821:4:60","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"811:6:60"},"nodeType":"YulFunctionCall","src":"811:15:60"},"nodeType":"YulExpressionStatement","src":"811:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"842:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"845:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"835:6:60"},"nodeType":"YulFunctionCall","src":"835:15:60"},"nodeType":"YulExpressionStatement","src":"835:15:60"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"672:184:60"},{"body":{"nodeType":"YulBlock","src":"907:207:60","statements":[{"nodeType":"YulAssignment","src":"917:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"933:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"927:5:60"},"nodeType":"YulFunctionCall","src":"927:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"917:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"945:35:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"967:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"975:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"963:3:60"},"nodeType":"YulFunctionCall","src":"963:17:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"949:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1055:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1057:16:60"},"nodeType":"YulFunctionCall","src":"1057:18:60"},"nodeType":"YulExpressionStatement","src":"1057:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"998:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1010:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"995:2:60"},"nodeType":"YulFunctionCall","src":"995:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1034:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1046:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1031:2:60"},"nodeType":"YulFunctionCall","src":"1031:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"992:2:60"},"nodeType":"YulFunctionCall","src":"992:62:60"},"nodeType":"YulIf","src":"989:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1093:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1097:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1086:6:60"},"nodeType":"YulFunctionCall","src":"1086:22:60"},"nodeType":"YulExpressionStatement","src":"1086:22:60"}]},"name":"allocate_memory_1782","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"896:6:60","type":""}],"src":"861:253:60"},{"body":{"nodeType":"YulBlock","src":"1164:289:60","statements":[{"nodeType":"YulAssignment","src":"1174:19:60","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1190:2:60","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1184:5:60"},"nodeType":"YulFunctionCall","src":"1184:9:60"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1174:6:60"}]},{"nodeType":"YulVariableDeclaration","src":"1202:117:60","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1224:6:60"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1240:4:60"},{"kind":"number","nodeType":"YulLiteral","src":"1246:2:60","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1236:3:60"},"nodeType":"YulFunctionCall","src":"1236:13:60"},{"kind":"number","nodeType":"YulLiteral","src":"1251:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1232:3:60"},"nodeType":"YulFunctionCall","src":"1232:86:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1220:3:60"},"nodeType":"YulFunctionCall","src":"1220:99:60"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1206:10:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1394:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1396:16:60"},"nodeType":"YulFunctionCall","src":"1396:18:60"},"nodeType":"YulExpressionStatement","src":"1396:18:60"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1337:10:60"},{"kind":"number","nodeType":"YulLiteral","src":"1349:18:60","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1334:2:60"},"nodeType":"YulFunctionCall","src":"1334:34:60"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1373:10:60"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1385:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1370:2:60"},"nodeType":"YulFunctionCall","src":"1370:22:60"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1331:2:60"},"nodeType":"YulFunctionCall","src":"1331:62:60"},"nodeType":"YulIf","src":"1328:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1432:2:60","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1436:10:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1425:6:60"},"nodeType":"YulFunctionCall","src":"1425:22:60"},"nodeType":"YulExpressionStatement","src":"1425:22:60"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1144:4:60","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1153:6:60","type":""}],"src":"1119:334:60"},{"body":{"nodeType":"YulBlock","src":"1507:147:60","statements":[{"nodeType":"YulAssignment","src":"1517:29:60","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1539:6:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1526:12:60"},"nodeType":"YulFunctionCall","src":"1526:20:60"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1517:5:60"}]},{"body":{"nodeType":"YulBlock","src":"1632:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1641:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1644:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1634:6:60"},"nodeType":"YulFunctionCall","src":"1634:12:60"},"nodeType":"YulExpressionStatement","src":"1634:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1568:5:60"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1579:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"1586:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1575:3:60"},"nodeType":"YulFunctionCall","src":"1575:54:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1565:2:60"},"nodeType":"YulFunctionCall","src":"1565:65:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1558:6:60"},"nodeType":"YulFunctionCall","src":"1558:73:60"},"nodeType":"YulIf","src":"1555:93:60"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1486:6:60","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1497:5:60","type":""}],"src":"1458:196:60"},{"body":{"nodeType":"YulBlock","src":"1701:76:60","statements":[{"body":{"nodeType":"YulBlock","src":"1755:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1764:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1767:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1757:6:60"},"nodeType":"YulFunctionCall","src":"1757:12:60"},"nodeType":"YulExpressionStatement","src":"1757:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1724:5:60"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1745:5:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1738:6:60"},"nodeType":"YulFunctionCall","src":"1738:13:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1731:6:60"},"nodeType":"YulFunctionCall","src":"1731:21:60"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1721:2:60"},"nodeType":"YulFunctionCall","src":"1721:32:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1714:6:60"},"nodeType":"YulFunctionCall","src":"1714:40:60"},"nodeType":"YulIf","src":"1711:60:60"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1690:5:60","type":""}],"src":"1659:118:60"},{"body":{"nodeType":"YulBlock","src":"1905:1307:60","statements":[{"nodeType":"YulVariableDeclaration","src":"1915:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"1925:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1919:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"1972:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1981:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1984:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1974:6:60"},"nodeType":"YulFunctionCall","src":"1974:12:60"},"nodeType":"YulExpressionStatement","src":"1974:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1947:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"1956:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1943:3:60"},"nodeType":"YulFunctionCall","src":"1943:23:60"},{"name":"_1","nodeType":"YulIdentifier","src":"1968:2:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1939:3:60"},"nodeType":"YulFunctionCall","src":"1939:32:60"},"nodeType":"YulIf","src":"1936:52:60"},{"nodeType":"YulVariableDeclaration","src":"1997:37:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2024:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2011:12:60"},"nodeType":"YulFunctionCall","src":"2011:23:60"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2001:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2043:28:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2053:18:60","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2047:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2098:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2107:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2110:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2100:6:60"},"nodeType":"YulFunctionCall","src":"2100:12:60"},"nodeType":"YulExpressionStatement","src":"2100:12:60"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2086:6:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2094:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2083:2:60"},"nodeType":"YulFunctionCall","src":"2083:14:60"},"nodeType":"YulIf","src":"2080:34:60"},{"nodeType":"YulVariableDeclaration","src":"2123:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2137:9:60"},{"name":"offset","nodeType":"YulIdentifier","src":"2148:6:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2133:3:60"},"nodeType":"YulFunctionCall","src":"2133:22:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2127:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2203:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2212:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2215:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2205:6:60"},"nodeType":"YulFunctionCall","src":"2205:12:60"},"nodeType":"YulExpressionStatement","src":"2205:12:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2182:2:60"},{"kind":"number","nodeType":"YulLiteral","src":"2186:4:60","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2178:3:60"},"nodeType":"YulFunctionCall","src":"2178:13:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2193:7:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2174:3:60"},"nodeType":"YulFunctionCall","src":"2174:27:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2167:6:60"},"nodeType":"YulFunctionCall","src":"2167:35:60"},"nodeType":"YulIf","src":"2164:55:60"},{"nodeType":"YulVariableDeclaration","src":"2228:26:60","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2251:2:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2238:12:60"},"nodeType":"YulFunctionCall","src":"2238:16:60"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2232:2:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2277:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2279:16:60"},"nodeType":"YulFunctionCall","src":"2279:18:60"},"nodeType":"YulExpressionStatement","src":"2279:18:60"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2269:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"2273:2:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2266:2:60"},"nodeType":"YulFunctionCall","src":"2266:10:60"},"nodeType":"YulIf","src":"2263:36:60"},{"nodeType":"YulVariableDeclaration","src":"2308:47:60","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2343:1:60","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"2346:2:60"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2339:3:60"},"nodeType":"YulFunctionCall","src":"2339:10:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2351:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2335:3:60"},"nodeType":"YulFunctionCall","src":"2335:19:60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2319:15:60"},"nodeType":"YulFunctionCall","src":"2319:36:60"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2312:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2364:16:60","value":{"name":"dst","nodeType":"YulIdentifier","src":"2377:3:60"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2368:5:60","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2396:3:60"},{"name":"_4","nodeType":"YulIdentifier","src":"2401:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2389:6:60"},"nodeType":"YulFunctionCall","src":"2389:15:60"},"nodeType":"YulExpressionStatement","src":"2389:15:60"},{"nodeType":"YulAssignment","src":"2413:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2424:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2429:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2420:3:60"},"nodeType":"YulFunctionCall","src":"2420:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2413:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"2441:14:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2451:4:60","type":"","value":"0x60"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2445:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2464:43:60","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2486:2:60"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2494:2:60"},{"name":"_5","nodeType":"YulIdentifier","src":"2498:2:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2490:3:60"},"nodeType":"YulFunctionCall","src":"2490:11:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2482:3:60"},"nodeType":"YulFunctionCall","src":"2482:20:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2504:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2478:3:60"},"nodeType":"YulFunctionCall","src":"2478:29:60"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2468:6:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2539:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2548:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2551:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2541:6:60"},"nodeType":"YulFunctionCall","src":"2541:12:60"},"nodeType":"YulExpressionStatement","src":"2541:12:60"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2522:6:60"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2530:7:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2519:2:60"},"nodeType":"YulFunctionCall","src":"2519:19:60"},"nodeType":"YulIf","src":"2516:39:60"},{"nodeType":"YulVariableDeclaration","src":"2564:22:60","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2579:2:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2583:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2575:3:60"},"nodeType":"YulFunctionCall","src":"2575:11:60"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2568:3:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"2651:531:60","statements":[{"body":{"nodeType":"YulBlock","src":"2707:74:60","statements":[{"nodeType":"YulVariableDeclaration","src":"2725:11:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2735:1:60","type":"","value":"0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"2729:2:60","type":""}]},{"expression":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"2760:2:60"},{"name":"_6","nodeType":"YulIdentifier","src":"2764:2:60"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2753:6:60"},"nodeType":"YulFunctionCall","src":"2753:14:60"},"nodeType":"YulExpressionStatement","src":"2753:14:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2676:7:60"},{"name":"src","nodeType":"YulIdentifier","src":"2685:3:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2672:3:60"},"nodeType":"YulFunctionCall","src":"2672:17:60"},{"name":"_5","nodeType":"YulIdentifier","src":"2691:2:60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2668:3:60"},"nodeType":"YulFunctionCall","src":"2668:26:60"},"nodeType":"YulIf","src":"2665:116:60"},{"nodeType":"YulVariableDeclaration","src":"2794:35:60","value":{"arguments":[],"functionName":{"name":"allocate_memory_1782","nodeType":"YulIdentifier","src":"2807:20:60"},"nodeType":"YulFunctionCall","src":"2807:22:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2798:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2849:5:60"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2875:3:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2856:18:60"},"nodeType":"YulFunctionCall","src":"2856:23:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2842:6:60"},"nodeType":"YulFunctionCall","src":"2842:38:60"},"nodeType":"YulExpressionStatement","src":"2842:38:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2904:5:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2911:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2900:3:60"},"nodeType":"YulFunctionCall","src":"2900:14:60"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2933:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"2938:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2929:3:60"},"nodeType":"YulFunctionCall","src":"2929:12:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2916:12:60"},"nodeType":"YulFunctionCall","src":"2916:26:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2893:6:60"},"nodeType":"YulFunctionCall","src":"2893:50:60"},"nodeType":"YulExpressionStatement","src":"2893:50:60"},{"nodeType":"YulVariableDeclaration","src":"2956:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"2966:2:60","type":"","value":"64"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"2960:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2981:41:60","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3013:3:60"},{"name":"_7","nodeType":"YulIdentifier","src":"3018:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3009:3:60"},"nodeType":"YulFunctionCall","src":"3009:12:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2996:12:60"},"nodeType":"YulFunctionCall","src":"2996:26:60"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2985:7:60","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3057:7:60"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3035:21:60"},"nodeType":"YulFunctionCall","src":"3035:30:60"},"nodeType":"YulExpressionStatement","src":"3035:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3089:5:60"},{"name":"_7","nodeType":"YulIdentifier","src":"3096:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3085:3:60"},"nodeType":"YulFunctionCall","src":"3085:14:60"},{"name":"value_1","nodeType":"YulIdentifier","src":"3101:7:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3078:6:60"},"nodeType":"YulFunctionCall","src":"3078:31:60"},"nodeType":"YulExpressionStatement","src":"3078:31:60"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3129:3:60"},{"name":"value","nodeType":"YulIdentifier","src":"3134:5:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3122:6:60"},"nodeType":"YulFunctionCall","src":"3122:18:60"},"nodeType":"YulExpressionStatement","src":"3122:18:60"},{"nodeType":"YulAssignment","src":"3153:19:60","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3164:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"3169:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3160:3:60"},"nodeType":"YulFunctionCall","src":"3160:12:60"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3153:3:60"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2606:3:60"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2611:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2603:2:60"},"nodeType":"YulFunctionCall","src":"2603:15:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2619:23:60","statements":[{"nodeType":"YulAssignment","src":"2621:19:60","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2632:3:60"},{"name":"_5","nodeType":"YulIdentifier","src":"2637:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2628:3:60"},"nodeType":"YulFunctionCall","src":"2628:12:60"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2621:3:60"}]}]},"pre":{"nodeType":"YulBlock","src":"2599:3:60","statements":[]},"src":"2595:587:60"},{"nodeType":"YulAssignment","src":"3191:15:60","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"3201:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3191:6:60"}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1871:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1882:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1894:6:60","type":""}],"src":"1782:1430:60"},{"body":{"nodeType":"YulBlock","src":"3312:92:60","statements":[{"nodeType":"YulAssignment","src":"3322:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3334:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3345:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3330:3:60"},"nodeType":"YulFunctionCall","src":"3330:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3322:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3364:9:60"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3389:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3382:6:60"},"nodeType":"YulFunctionCall","src":"3382:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3375:6:60"},"nodeType":"YulFunctionCall","src":"3375:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3357:6:60"},"nodeType":"YulFunctionCall","src":"3357:41:60"},"nodeType":"YulExpressionStatement","src":"3357:41:60"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3281:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3292:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3303:4:60","type":""}],"src":"3217:187:60"},{"body":{"nodeType":"YulBlock","src":"3479:110:60","statements":[{"body":{"nodeType":"YulBlock","src":"3525:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3534:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3537:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3527:6:60"},"nodeType":"YulFunctionCall","src":"3527:12:60"},"nodeType":"YulExpressionStatement","src":"3527:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3500:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3496:3:60"},"nodeType":"YulFunctionCall","src":"3496:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"3521:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3492:3:60"},"nodeType":"YulFunctionCall","src":"3492:32:60"},"nodeType":"YulIf","src":"3489:52:60"},{"nodeType":"YulAssignment","src":"3550:33:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3573:9:60"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3560:12:60"},"nodeType":"YulFunctionCall","src":"3560:23:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3550:6:60"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3445:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3456:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3468:6:60","type":""}],"src":"3409:180:60"},{"body":{"nodeType":"YulBlock","src":"3745:227:60","statements":[{"nodeType":"YulAssignment","src":"3755:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3767:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3778:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3763:3:60"},"nodeType":"YulFunctionCall","src":"3763:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3755:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3797:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3812:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"3820:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3808:3:60"},"nodeType":"YulFunctionCall","src":"3808:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3790:6:60"},"nodeType":"YulFunctionCall","src":"3790:74:60"},"nodeType":"YulExpressionStatement","src":"3790:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3884:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3895:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3880:3:60"},"nodeType":"YulFunctionCall","src":"3880:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"3900:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3873:6:60"},"nodeType":"YulFunctionCall","src":"3873:34:60"},"nodeType":"YulExpressionStatement","src":"3873:34:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3927:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"3938:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3923:3:60"},"nodeType":"YulFunctionCall","src":"3923:18:60"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3957:6:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3950:6:60"},"nodeType":"YulFunctionCall","src":"3950:14:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3943:6:60"},"nodeType":"YulFunctionCall","src":"3943:22:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3916:6:60"},"nodeType":"YulFunctionCall","src":"3916:50:60"},"nodeType":"YulExpressionStatement","src":"3916:50:60"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bool__to_t_address_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3698:9:60","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3709:6:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3717:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3725:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3736:4:60","type":""}],"src":"3594:378:60"},{"body":{"nodeType":"YulBlock","src":"4047:116:60","statements":[{"body":{"nodeType":"YulBlock","src":"4093:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4102:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4105:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4095:6:60"},"nodeType":"YulFunctionCall","src":"4095:12:60"},"nodeType":"YulExpressionStatement","src":"4095:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4068:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"4077:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4064:3:60"},"nodeType":"YulFunctionCall","src":"4064:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"4089:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4060:3:60"},"nodeType":"YulFunctionCall","src":"4060:32:60"},"nodeType":"YulIf","src":"4057:52:60"},{"nodeType":"YulAssignment","src":"4118:39:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4147:9:60"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4128:18:60"},"nodeType":"YulFunctionCall","src":"4128:29:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4118:6:60"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4013:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4024:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4036:6:60","type":""}],"src":"3977:186:60"},{"body":{"nodeType":"YulBlock","src":"4342:245:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4359:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4370:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4352:6:60"},"nodeType":"YulFunctionCall","src":"4352:21:60"},"nodeType":"YulExpressionStatement","src":"4352:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:60"},"nodeType":"YulFunctionCall","src":"4389:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"4409:2:60","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:60"},"nodeType":"YulFunctionCall","src":"4382:30:60"},"nodeType":"YulExpressionStatement","src":"4382:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4432:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4443:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4428:3:60"},"nodeType":"YulFunctionCall","src":"4428:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"4448:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4421:6:60"},"nodeType":"YulFunctionCall","src":"4421:62:60"},"nodeType":"YulExpressionStatement","src":"4421:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4503:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4514:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4499:3:60"},"nodeType":"YulFunctionCall","src":"4499:18:60"},{"hexValue":"6e76616c696420726563697069656e74206e756d626572","kind":"string","nodeType":"YulLiteral","src":"4519:25:60","type":"","value":"nvalid recipient number"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4492:6:60"},"nodeType":"YulFunctionCall","src":"4492:53:60"},"nodeType":"YulExpressionStatement","src":"4492:53:60"},{"nodeType":"YulAssignment","src":"4554:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4566:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4577:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4562:3:60"},"nodeType":"YulFunctionCall","src":"4562:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4554:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4319:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4333:4:60","type":""}],"src":"4168:419:60"},{"body":{"nodeType":"YulBlock","src":"4624:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4641:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4644:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4634:6:60"},"nodeType":"YulFunctionCall","src":"4634:88:60"},"nodeType":"YulExpressionStatement","src":"4634:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4738:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4741:4:60","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4731:6:60"},"nodeType":"YulFunctionCall","src":"4731:15:60"},"nodeType":"YulExpressionStatement","src":"4731:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4762:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4765:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4755:6:60"},"nodeType":"YulFunctionCall","src":"4755:15:60"},"nodeType":"YulExpressionStatement","src":"4755:15:60"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"4592:184:60"},{"body":{"nodeType":"YulBlock","src":"4955:246:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"4983:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4965:6:60"},"nodeType":"YulFunctionCall","src":"4965:21:60"},"nodeType":"YulExpressionStatement","src":"4965:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5006:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5017:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5002:3:60"},"nodeType":"YulFunctionCall","src":"5002:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5022:2:60","type":"","value":"56"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4995:6:60"},"nodeType":"YulFunctionCall","src":"4995:30:60"},"nodeType":"YulExpressionStatement","src":"4995:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5045:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5056:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5041:3:60"},"nodeType":"YulFunctionCall","src":"5041:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"5061:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5034:6:60"},"nodeType":"YulFunctionCall","src":"5034:62:60"},"nodeType":"YulExpressionStatement","src":"5034:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5116:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5127:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5112:3:60"},"nodeType":"YulFunctionCall","src":"5112:18:60"},{"hexValue":"6e76616c696420726563697069656e742061646472657373","kind":"string","nodeType":"YulLiteral","src":"5132:26:60","type":"","value":"nvalid recipient address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5105:6:60"},"nodeType":"YulFunctionCall","src":"5105:54:60"},"nodeType":"YulExpressionStatement","src":"5105:54:60"},{"nodeType":"YulAssignment","src":"5168:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5180:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5191:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5176:3:60"},"nodeType":"YulFunctionCall","src":"5176:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5168:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4932:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4946:4:60","type":""}],"src":"4781:420:60"},{"body":{"nodeType":"YulBlock","src":"5380:249:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5397:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5408:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5390:6:60"},"nodeType":"YulFunctionCall","src":"5390:21:60"},"nodeType":"YulExpressionStatement","src":"5390:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5431:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5442:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5427:3:60"},"nodeType":"YulFunctionCall","src":"5427:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"5447:2:60","type":"","value":"59"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5420:6:60"},"nodeType":"YulFunctionCall","src":"5420:30:60"},"nodeType":"YulExpressionStatement","src":"5420:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5470:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5481:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5466:3:60"},"nodeType":"YulFunctionCall","src":"5466:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"5486:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5459:6:60"},"nodeType":"YulFunctionCall","src":"5459:62:60"},"nodeType":"YulExpressionStatement","src":"5459:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5541:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5552:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5537:3:60"},"nodeType":"YulFunctionCall","src":"5537:18:60"},{"hexValue":"6e76616c696420726563697069656e7420616c6c6f636174696f6e","kind":"string","nodeType":"YulLiteral","src":"5557:29:60","type":"","value":"nvalid recipient allocation"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5530:6:60"},"nodeType":"YulFunctionCall","src":"5530:57:60"},"nodeType":"YulExpressionStatement","src":"5530:57:60"},{"nodeType":"YulAssignment","src":"5596:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5608:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"5619:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5604:3:60"},"nodeType":"YulFunctionCall","src":"5604:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5596:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5357:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5371:4:60","type":""}],"src":"5206:423:60"},{"body":{"nodeType":"YulBlock","src":"5666:152:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5683:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5686:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5676:6:60"},"nodeType":"YulFunctionCall","src":"5676:88:60"},"nodeType":"YulExpressionStatement","src":"5676:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5780:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5783:4:60","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5773:6:60"},"nodeType":"YulFunctionCall","src":"5773:15:60"},"nodeType":"YulExpressionStatement","src":"5773:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5804:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5807:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5797:6:60"},"nodeType":"YulFunctionCall","src":"5797:15:60"},"nodeType":"YulExpressionStatement","src":"5797:15:60"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5634:184:60"},{"body":{"nodeType":"YulBlock","src":"5871:80:60","statements":[{"body":{"nodeType":"YulBlock","src":"5898:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5900:16:60"},"nodeType":"YulFunctionCall","src":"5900:18:60"},"nodeType":"YulExpressionStatement","src":"5900:18:60"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5887:1:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5894:1:60"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5890:3:60"},"nodeType":"YulFunctionCall","src":"5890:6:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5884:2:60"},"nodeType":"YulFunctionCall","src":"5884:13:60"},"nodeType":"YulIf","src":"5881:39:60"},{"nodeType":"YulAssignment","src":"5929:16:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5940:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"5943:1:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5936:3:60"},"nodeType":"YulFunctionCall","src":"5936:9:60"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5929:3:60"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5854:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"5857:1:60","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5863:3:60","type":""}],"src":"5823:128:60"},{"body":{"nodeType":"YulBlock","src":"6003:148:60","statements":[{"body":{"nodeType":"YulBlock","src":"6094:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6096:16:60"},"nodeType":"YulFunctionCall","src":"6096:18:60"},"nodeType":"YulExpressionStatement","src":"6096:18:60"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6019:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"6026:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6016:2:60"},"nodeType":"YulFunctionCall","src":"6016:77:60"},"nodeType":"YulIf","src":"6013:103:60"},{"nodeType":"YulAssignment","src":"6125:20:60","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6136:5:60"},{"kind":"number","nodeType":"YulLiteral","src":"6143:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6132:3:60"},"nodeType":"YulFunctionCall","src":"6132:13:60"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"6125:3:60"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5985:5:60","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"5995:3:60","type":""}],"src":"5956:195:60"},{"body":{"nodeType":"YulBlock","src":"6330:245:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6347:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6358:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6340:6:60"},"nodeType":"YulFunctionCall","src":"6340:21:60"},"nodeType":"YulExpressionStatement","src":"6340:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6381:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6392:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6377:3:60"},"nodeType":"YulFunctionCall","src":"6377:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"6397:2:60","type":"","value":"55"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6370:6:60"},"nodeType":"YulFunctionCall","src":"6370:30:60"},"nodeType":"YulExpressionStatement","src":"6370:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6420:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6431:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6416:3:60"},"nodeType":"YulFunctionCall","src":"6416:18:60"},{"hexValue":"54726561737572795665737465723a3a736574526563697069656e74733a2069","kind":"string","nodeType":"YulLiteral","src":"6436:34:60","type":"","value":"TreasuryVester::setRecipients: i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6409:6:60"},"nodeType":"YulFunctionCall","src":"6409:62:60"},"nodeType":"YulExpressionStatement","src":"6409:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6491:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6502:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6487:3:60"},"nodeType":"YulFunctionCall","src":"6487:18:60"},{"hexValue":"6e76616c696420746f74616c20616c6c6f636174696f6e","kind":"string","nodeType":"YulLiteral","src":"6507:25:60","type":"","value":"nvalid total allocation"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6480:6:60"},"nodeType":"YulFunctionCall","src":"6480:53:60"},"nodeType":"YulExpressionStatement","src":"6480:53:60"},{"nodeType":"YulAssignment","src":"6542:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6554:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"6565:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6550:3:60"},"nodeType":"YulFunctionCall","src":"6550:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6542:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6307:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6321:4:60","type":""}],"src":"6156:419:60"},{"body":{"nodeType":"YulBlock","src":"6787:707:60","statements":[{"nodeType":"YulVariableDeclaration","src":"6797:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6807:2:60","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6801:2:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6818:32:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6836:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6847:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6832:3:60"},"nodeType":"YulFunctionCall","src":"6832:18:60"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"6822:6:60","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6866:9:60"},{"name":"_1","nodeType":"YulIdentifier","src":"6877:2:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6859:6:60"},"nodeType":"YulFunctionCall","src":"6859:21:60"},"nodeType":"YulExpressionStatement","src":"6859:21:60"},{"nodeType":"YulVariableDeclaration","src":"6889:17:60","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"6900:6:60"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"6893:3:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6915:27:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6935:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6929:5:60"},"nodeType":"YulFunctionCall","src":"6929:13:60"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6919:6:60","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"6958:6:60"},{"name":"length","nodeType":"YulIdentifier","src":"6966:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6951:6:60"},"nodeType":"YulFunctionCall","src":"6951:22:60"},"nodeType":"YulExpressionStatement","src":"6951:22:60"},{"nodeType":"YulVariableDeclaration","src":"6982:12:60","value":{"kind":"number","nodeType":"YulLiteral","src":"6992:2:60","type":"","value":"64"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6986:2:60","type":""}]},{"nodeType":"YulAssignment","src":"7003:25:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7014:9:60"},{"name":"_2","nodeType":"YulIdentifier","src":"7025:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7010:3:60"},"nodeType":"YulFunctionCall","src":"7010:18:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7003:3:60"}]},{"nodeType":"YulVariableDeclaration","src":"7037:29:60","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7055:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"7063:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7051:3:60"},"nodeType":"YulFunctionCall","src":"7051:15:60"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"7041:6:60","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7075:10:60","value":{"kind":"number","nodeType":"YulLiteral","src":"7084:1:60","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7079:1:60","type":""}]},{"body":{"nodeType":"YulBlock","src":"7143:325:60","statements":[{"nodeType":"YulVariableDeclaration","src":"7157:23:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7173:6:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7167:5:60"},"nodeType":"YulFunctionCall","src":"7167:13:60"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7161:2:60","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7200:3:60"},{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7215:2:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7209:5:60"},"nodeType":"YulFunctionCall","src":"7209:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7220:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7205:3:60"},"nodeType":"YulFunctionCall","src":"7205:58:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7193:6:60"},"nodeType":"YulFunctionCall","src":"7193:71:60"},"nodeType":"YulExpressionStatement","src":"7193:71:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7288:3:60"},{"name":"_1","nodeType":"YulIdentifier","src":"7293:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7284:3:60"},"nodeType":"YulFunctionCall","src":"7284:12:60"},{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7308:2:60"},{"name":"_1","nodeType":"YulIdentifier","src":"7312:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7304:3:60"},"nodeType":"YulFunctionCall","src":"7304:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7298:5:60"},"nodeType":"YulFunctionCall","src":"7298:18:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7277:6:60"},"nodeType":"YulFunctionCall","src":"7277:40:60"},"nodeType":"YulExpressionStatement","src":"7277:40:60"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7341:3:60"},{"name":"_2","nodeType":"YulIdentifier","src":"7346:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7337:3:60"},"nodeType":"YulFunctionCall","src":"7337:12:60"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7375:2:60"},{"name":"_2","nodeType":"YulIdentifier","src":"7379:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7371:3:60"},"nodeType":"YulFunctionCall","src":"7371:11:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7365:5:60"},"nodeType":"YulFunctionCall","src":"7365:18:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7358:6:60"},"nodeType":"YulFunctionCall","src":"7358:26:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7351:6:60"},"nodeType":"YulFunctionCall","src":"7351:34:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7330:6:60"},"nodeType":"YulFunctionCall","src":"7330:56:60"},"nodeType":"YulExpressionStatement","src":"7330:56:60"},{"nodeType":"YulAssignment","src":"7399:21:60","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7410:3:60"},{"kind":"number","nodeType":"YulLiteral","src":"7415:4:60","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7406:3:60"},"nodeType":"YulFunctionCall","src":"7406:14:60"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7399:3:60"}]},{"nodeType":"YulAssignment","src":"7433:25:60","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7447:6:60"},{"name":"_1","nodeType":"YulIdentifier","src":"7455:2:60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7443:3:60"},"nodeType":"YulFunctionCall","src":"7443:15:60"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7433:6:60"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7105:1:60"},{"name":"length","nodeType":"YulIdentifier","src":"7108:6:60"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7102:2:60"},"nodeType":"YulFunctionCall","src":"7102:13:60"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7116:18:60","statements":[{"nodeType":"YulAssignment","src":"7118:14:60","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7127:1:60"},{"kind":"number","nodeType":"YulLiteral","src":"7130:1:60","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7123:3:60"},"nodeType":"YulFunctionCall","src":"7123:9:60"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7118:1:60"}]}]},"pre":{"nodeType":"YulBlock","src":"7098:3:60","statements":[]},"src":"7094:374:60"},{"nodeType":"YulAssignment","src":"7477:11:60","value":{"name":"pos","nodeType":"YulIdentifier","src":"7485:3:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7477:4:60"}]}]},"name":"abi_encode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6756:9:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6767:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6778:4:60","type":""}],"src":"6580:914:60"},{"body":{"nodeType":"YulBlock","src":"7673:247:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7690:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7701:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7683:6:60"},"nodeType":"YulFunctionCall","src":"7683:21:60"},"nodeType":"YulExpressionStatement","src":"7683:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7724:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7735:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7720:3:60"},"nodeType":"YulFunctionCall","src":"7720:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"7740:2:60","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7713:6:60"},"nodeType":"YulFunctionCall","src":"7713:30:60"},"nodeType":"YulExpressionStatement","src":"7713:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7763:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7774:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7759:3:60"},"nodeType":"YulFunctionCall","src":"7759:18:60"},{"hexValue":"54726561737572795665737465723a3a737461727456657374696e673a20756e","kind":"string","nodeType":"YulLiteral","src":"7779:34:60","type":"","value":"TreasuryVester::startVesting: un"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7752:6:60"},"nodeType":"YulFunctionCall","src":"7752:62:60"},"nodeType":"YulExpressionStatement","src":"7752:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7834:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7845:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7830:3:60"},"nodeType":"YulFunctionCall","src":"7830:18:60"},{"hexValue":"617574686f72697a6564206d6573736167652073656e646572","kind":"string","nodeType":"YulLiteral","src":"7850:27:60","type":"","value":"authorized message sender"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7823:6:60"},"nodeType":"YulFunctionCall","src":"7823:55:60"},"nodeType":"YulExpressionStatement","src":"7823:55:60"},{"nodeType":"YulAssignment","src":"7887:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7899:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"7910:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7895:3:60"},"nodeType":"YulFunctionCall","src":"7895:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7887:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_7c7f1e3f4b42f663a710fed54749618152100d9e93a9adf0889dfe09ffa69a24__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7650:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7664:4:60","type":""}],"src":"7499:421:60"},{"body":{"nodeType":"YulBlock","src":"8099:246:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8116:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8127:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8109:6:60"},"nodeType":"YulFunctionCall","src":"8109:21:60"},"nodeType":"YulExpressionStatement","src":"8109:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8150:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8161:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8146:3:60"},"nodeType":"YulFunctionCall","src":"8146:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8166:2:60","type":"","value":"56"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8139:6:60"},"nodeType":"YulFunctionCall","src":"8139:30:60"},"nodeType":"YulExpressionStatement","src":"8139:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8189:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8200:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8185:3:60"},"nodeType":"YulFunctionCall","src":"8185:18:60"},{"hexValue":"54726561737572795665737465723a3a737461727456657374696e673a207665","kind":"string","nodeType":"YulLiteral","src":"8205:34:60","type":"","value":"TreasuryVester::startVesting: ve"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8178:6:60"},"nodeType":"YulFunctionCall","src":"8178:62:60"},"nodeType":"YulExpressionStatement","src":"8178:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8260:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8271:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8256:3:60"},"nodeType":"YulFunctionCall","src":"8256:18:60"},{"hexValue":"7374696e6720697320616c726561647920656e61626c6564","kind":"string","nodeType":"YulLiteral","src":"8276:26:60","type":"","value":"sting is already enabled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8249:6:60"},"nodeType":"YulFunctionCall","src":"8249:54:60"},"nodeType":"YulExpressionStatement","src":"8249:54:60"},{"nodeType":"YulAssignment","src":"8312:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8324:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8335:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8320:3:60"},"nodeType":"YulFunctionCall","src":"8320:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8312:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_bf451b05bbc7a4c3c65549b71d830d4403bf9cb0b5d550951242adaed41ee1a1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8076:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8090:4:60","type":""}],"src":"7925:420:60"},{"body":{"nodeType":"YulBlock","src":"8524:240:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8541:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8552:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8534:6:60"},"nodeType":"YulFunctionCall","src":"8534:21:60"},"nodeType":"YulExpressionStatement","src":"8534:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8575:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8586:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8571:3:60"},"nodeType":"YulFunctionCall","src":"8571:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"8591:2:60","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8564:6:60"},"nodeType":"YulFunctionCall","src":"8564:30:60"},"nodeType":"YulExpressionStatement","src":"8564:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8614:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8625:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8610:3:60"},"nodeType":"YulFunctionCall","src":"8610:18:60"},{"hexValue":"54726561737572795665737465723a3a646973747269627574653a2076657374","kind":"string","nodeType":"YulLiteral","src":"8630:34:60","type":"","value":"TreasuryVester::distribute: vest"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8603:6:60"},"nodeType":"YulFunctionCall","src":"8603:62:60"},"nodeType":"YulExpressionStatement","src":"8603:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8685:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8696:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8681:3:60"},"nodeType":"YulFunctionCall","src":"8681:18:60"},{"hexValue":"696e67206973206e6f7420656e61626c6564","kind":"string","nodeType":"YulLiteral","src":"8701:20:60","type":"","value":"ing is not enabled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8674:6:60"},"nodeType":"YulFunctionCall","src":"8674:48:60"},"nodeType":"YulExpressionStatement","src":"8674:48:60"},{"nodeType":"YulAssignment","src":"8731:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8743:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8754:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8739:3:60"},"nodeType":"YulFunctionCall","src":"8739:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8731:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_77243531fc44ff4ed9fca6d2ebd8511252683c1dc604273b03638450ba77e36e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8501:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8515:4:60","type":""}],"src":"8350:414:60"},{"body":{"nodeType":"YulBlock","src":"8943:247:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8960:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"8971:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8953:6:60"},"nodeType":"YulFunctionCall","src":"8953:21:60"},"nodeType":"YulExpressionStatement","src":"8953:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8994:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9005:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8990:3:60"},"nodeType":"YulFunctionCall","src":"8990:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"9010:2:60","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8983:6:60"},"nodeType":"YulFunctionCall","src":"8983:30:60"},"nodeType":"YulExpressionStatement","src":"8983:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9033:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9044:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9029:3:60"},"nodeType":"YulFunctionCall","src":"9029:18:60"},{"hexValue":"54726561737572795665737465723a3a646973747269627574653a2069742069","kind":"string","nodeType":"YulLiteral","src":"9049:34:60","type":"","value":"TreasuryVester::distribute: it i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9022:6:60"},"nodeType":"YulFunctionCall","src":"9022:62:60"},"nodeType":"YulExpressionStatement","src":"9022:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9104:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9115:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9100:3:60"},"nodeType":"YulFunctionCall","src":"9100:18:60"},{"hexValue":"7320746f6f206561726c7920746f2064697374726962757465","kind":"string","nodeType":"YulLiteral","src":"9120:27:60","type":"","value":"s too early to distribute"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9093:6:60"},"nodeType":"YulFunctionCall","src":"9093:55:60"},"nodeType":"YulExpressionStatement","src":"9093:55:60"},{"nodeType":"YulAssignment","src":"9157:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9169:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9180:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9165:3:60"},"nodeType":"YulFunctionCall","src":"9165:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9157:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_d9988717070b3568d7998e686694b9786045d53924bc0958f4c21d04364083b1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8920:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8934:4:60","type":""}],"src":"8769:421:60"},{"body":{"nodeType":"YulBlock","src":"9247:176:60","statements":[{"body":{"nodeType":"YulBlock","src":"9366:22:60","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9368:16:60"},"nodeType":"YulFunctionCall","src":"9368:18:60"},"nodeType":"YulExpressionStatement","src":"9368:18:60"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9278:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9271:6:60"},"nodeType":"YulFunctionCall","src":"9271:9:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9264:6:60"},"nodeType":"YulFunctionCall","src":"9264:17:60"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9286:1:60"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9293:66:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},{"name":"x","nodeType":"YulIdentifier","src":"9361:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9289:3:60"},"nodeType":"YulFunctionCall","src":"9289:74:60"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9283:2:60"},"nodeType":"YulFunctionCall","src":"9283:81:60"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9260:3:60"},"nodeType":"YulFunctionCall","src":"9260:105:60"},"nodeType":"YulIf","src":"9257:131:60"},{"nodeType":"YulAssignment","src":"9397:20:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9412:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"9415:1:60"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9408:3:60"},"nodeType":"YulFunctionCall","src":"9408:9:60"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"9397:7:60"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9226:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"9229:1:60","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"9235:7:60","type":""}],"src":"9195:228:60"},{"body":{"nodeType":"YulBlock","src":"9474:228:60","statements":[{"body":{"nodeType":"YulBlock","src":"9505:168:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9526:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9529:77:60","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9519:6:60"},"nodeType":"YulFunctionCall","src":"9519:88:60"},"nodeType":"YulExpressionStatement","src":"9519:88:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9627:1:60","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9630:4:60","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9620:6:60"},"nodeType":"YulFunctionCall","src":"9620:15:60"},"nodeType":"YulExpressionStatement","src":"9620:15:60"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9655:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9658:4:60","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9648:6:60"},"nodeType":"YulFunctionCall","src":"9648:15:60"},"nodeType":"YulExpressionStatement","src":"9648:15:60"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9494:1:60"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9487:6:60"},"nodeType":"YulFunctionCall","src":"9487:9:60"},"nodeType":"YulIf","src":"9484:189:60"},{"nodeType":"YulAssignment","src":"9682:14:60","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9691:1:60"},{"name":"y","nodeType":"YulIdentifier","src":"9694:1:60"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9687:3:60"},"nodeType":"YulFunctionCall","src":"9687:9:60"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"9682:1:60"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9459:1:60","type":""},{"name":"y","nodeType":"YulTypedName","src":"9462:1:60","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"9468:1:60","type":""}],"src":"9428:274:60"},{"body":{"nodeType":"YulBlock","src":"9836:168:60","statements":[{"nodeType":"YulAssignment","src":"9846:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9858:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9869:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9854:3:60"},"nodeType":"YulFunctionCall","src":"9854:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9846:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9888:9:60"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9903:6:60"},{"kind":"number","nodeType":"YulLiteral","src":"9911:42:60","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9899:3:60"},"nodeType":"YulFunctionCall","src":"9899:55:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9881:6:60"},"nodeType":"YulFunctionCall","src":"9881:74:60"},"nodeType":"YulExpressionStatement","src":"9881:74:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9975:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"9986:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9971:3:60"},"nodeType":"YulFunctionCall","src":"9971:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"9991:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9964:6:60"},"nodeType":"YulFunctionCall","src":"9964:34:60"},"nodeType":"YulExpressionStatement","src":"9964:34:60"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9797:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9808:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9816:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9827:4:60","type":""}],"src":"9707:297:60"},{"body":{"nodeType":"YulBlock","src":"10087:167:60","statements":[{"body":{"nodeType":"YulBlock","src":"10133:16:60","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10142:1:60","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10145:1:60","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10135:6:60"},"nodeType":"YulFunctionCall","src":"10135:12:60"},"nodeType":"YulExpressionStatement","src":"10135:12:60"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10108:7:60"},{"name":"headStart","nodeType":"YulIdentifier","src":"10117:9:60"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10104:3:60"},"nodeType":"YulFunctionCall","src":"10104:23:60"},{"kind":"number","nodeType":"YulLiteral","src":"10129:2:60","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10100:3:60"},"nodeType":"YulFunctionCall","src":"10100:32:60"},"nodeType":"YulIf","src":"10097:52:60"},{"nodeType":"YulVariableDeclaration","src":"10158:29:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10177:9:60"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10171:5:60"},"nodeType":"YulFunctionCall","src":"10171:16:60"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10162:5:60","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10218:5:60"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"10196:21:60"},"nodeType":"YulFunctionCall","src":"10196:28:60"},"nodeType":"YulExpressionStatement","src":"10196:28:60"},{"nodeType":"YulAssignment","src":"10233:15:60","value":{"name":"value","nodeType":"YulIdentifier","src":"10243:5:60"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10233:6:60"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10053:9:60","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10064:7:60","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10076:6:60","type":""}],"src":"10009:245:60"},{"body":{"nodeType":"YulBlock","src":"10388:119:60","statements":[{"nodeType":"YulAssignment","src":"10398:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10410:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10421:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10406:3:60"},"nodeType":"YulFunctionCall","src":"10406:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10398:4:60"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10440:9:60"},{"name":"value0","nodeType":"YulIdentifier","src":"10451:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10433:6:60"},"nodeType":"YulFunctionCall","src":"10433:25:60"},"nodeType":"YulExpressionStatement","src":"10433:25:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10478:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10489:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10474:3:60"},"nodeType":"YulFunctionCall","src":"10474:18:60"},{"name":"value1","nodeType":"YulIdentifier","src":"10494:6:60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10467:6:60"},"nodeType":"YulFunctionCall","src":"10467:34:60"},"nodeType":"YulExpressionStatement","src":"10467:34:60"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10349:9:60","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10360:6:60","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10368:6:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10379:4:60","type":""}],"src":"10259:248:60"},{"body":{"nodeType":"YulBlock","src":"10686:228:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10703:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10714:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10696:6:60"},"nodeType":"YulFunctionCall","src":"10696:21:60"},"nodeType":"YulExpressionStatement","src":"10696:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10737:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10748:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10733:3:60"},"nodeType":"YulFunctionCall","src":"10733:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"10753:2:60","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10726:6:60"},"nodeType":"YulFunctionCall","src":"10726:30:60"},"nodeType":"YulExpressionStatement","src":"10726:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10776:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10787:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10772:3:60"},"nodeType":"YulFunctionCall","src":"10772:18:60"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"10792:34:60","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10765:6:60"},"nodeType":"YulFunctionCall","src":"10765:62:60"},"nodeType":"YulExpressionStatement","src":"10765:62:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10847:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10858:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10843:3:60"},"nodeType":"YulFunctionCall","src":"10843:18:60"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"10863:8:60","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10836:6:60"},"nodeType":"YulFunctionCall","src":"10836:36:60"},"nodeType":"YulExpressionStatement","src":"10836:36:60"},{"nodeType":"YulAssignment","src":"10881:27:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10893:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"10904:3:60","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10889:3:60"},"nodeType":"YulFunctionCall","src":"10889:19:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10881:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10663:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10677:4:60","type":""}],"src":"10512:402:60"},{"body":{"nodeType":"YulBlock","src":"11093:182:60","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11110:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11121:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11103:6:60"},"nodeType":"YulFunctionCall","src":"11103:21:60"},"nodeType":"YulExpressionStatement","src":"11103:21:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11144:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11155:2:60","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11140:3:60"},"nodeType":"YulFunctionCall","src":"11140:18:60"},{"kind":"number","nodeType":"YulLiteral","src":"11160:2:60","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11133:6:60"},"nodeType":"YulFunctionCall","src":"11133:30:60"},"nodeType":"YulExpressionStatement","src":"11133:30:60"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11183:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11194:2:60","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11179:3:60"},"nodeType":"YulFunctionCall","src":"11179:18:60"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"11199:34:60","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11172:6:60"},"nodeType":"YulFunctionCall","src":"11172:62:60"},"nodeType":"YulExpressionStatement","src":"11172:62:60"},{"nodeType":"YulAssignment","src":"11243:26:60","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11255:9:60"},{"kind":"number","nodeType":"YulLiteral","src":"11266:2:60","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11251:3:60"},"nodeType":"YulFunctionCall","src":"11251:18:60"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11243:4:60"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11070:9:60","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11084:4:60","type":""}],"src":"10919:356:60"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_contract$_IPng_$18172__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory_1782() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x60)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := calldataload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let dst := allocate_memory(add(shl(5, _4), _1))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let _5 := 0x60\n        let srcEnd := add(add(_3, mul(_4, _5)), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _5) }\n        {\n            if slt(sub(dataEnd, src), _5)\n            {\n                let _6 := 0\n                revert(_6, _6)\n            }\n            let value := allocate_memory_1782()\n            mstore(value, abi_decode_address(src))\n            mstore(add(value, _1), calldataload(add(src, _1)))\n            let _7 := 64\n            let value_1 := calldataload(add(src, _7))\n            validator_revert_bool(value_1)\n            mstore(add(value, _7), value_1)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value0 := dst_1\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bool__to_t_address_t_uint256_t_bool__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), iszero(iszero(value2)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_4a63165475183b555fe5699d44efd1de9872046e54f949371a85da1aa08dd10e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid recipient number\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_c91649897c91898dc3bf0515b9889b8e4d60e482cd7a9317ce0abc23e82ceb6c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid recipient address\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_1166cb842096ede3ba62f56e34fe2d8bf57e77d376ddfc47ef4ce19c2467fcec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 59)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid recipient allocation\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_33d22feca6291941868a802aae72fa7804e36dd8baed505c8db330a0f3f769b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 55)\n        mstore(add(headStart, 64), \"TreasuryVester::setRecipients: i\")\n        mstore(add(headStart, 96), \"nvalid total allocation\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Recipient_$18186_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        let _2 := 64\n        pos := add(headStart, _2)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            let _3 := mload(srcPtr)\n            mstore(pos, and(mload(_3), 0xffffffffffffffffffffffffffffffffffffffff))\n            mstore(add(pos, _1), mload(add(_3, _1)))\n            mstore(add(pos, _2), iszero(iszero(mload(add(_3, _2)))))\n            pos := add(pos, 0x60)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_stringliteral_7c7f1e3f4b42f663a710fed54749618152100d9e93a9adf0889dfe09ffa69a24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"TreasuryVester::startVesting: un\")\n        mstore(add(headStart, 96), \"authorized message sender\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_bf451b05bbc7a4c3c65549b71d830d4403bf9cb0b5d550951242adaed41ee1a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 56)\n        mstore(add(headStart, 64), \"TreasuryVester::startVesting: ve\")\n        mstore(add(headStart, 96), \"sting is already enabled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_77243531fc44ff4ed9fca6d2ebd8511252683c1dc604273b03638450ba77e36e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"TreasuryVester::distribute: vest\")\n        mstore(add(headStart, 96), \"ing is not enabled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d9988717070b3568d7998e686694b9786045d53924bc0958f4c21d04364083b1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 57)\n        mstore(add(headStart, 64), \"TreasuryVester::distribute: it i\")\n        mstore(add(headStart, 96), \"s too early to distribute\")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n        product := mul(x, y)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n}","id":60,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"18198":[{"length":32,"start":323},{"length":32,"start":2340},{"length":32,"start":2503},{"length":32,"start":2814}],"18207":[{"length":32,"start":222},{"length":32,"start":2228}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063deb36e321161005b578063deb36e32146101fa578063e4fc6b6d14610202578063f2fde38b1461020a57600080fd5b80638da5cb5b146101a6578063c0463711146101b7578063d1bc76a1146101c057600080fd5b8063715018a6116100b2578063715018a61461016557806377b872a81461016f5780637f87bbd61461018257600080fd5b80630d8f82fd146100d9578063452a9320146101135780635de297411461013e575b600080fd5b6101007f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b600254610126906001600160a01b031681565b6040516001600160a01b03909116815260200161010a565b6101267f000000000000000000000000000000000000000000000000000000000000000081565b61016d61021d565b005b61016d61017d366004610dfb565b610231565b60025461019690600160a01b900460ff1681565b604051901515815260200161010a565b6000546001600160a01b0316610126565b61010060035481565b6101d36101ce366004610edf565b61058c565b604080516001600160a01b039094168452602084019290925215159082015260600161010a565b61016d6105cc565b61016d61073a565b61016d610218366004610ef8565b610b9d565b610225610c2d565b61022f6000610c87565b565b610239610c2d565b61024560016000610ce4565b805180158015906102565750602981105b6102cd5760405162461bcd60e51b815260206004820152603760248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420726563697069656e74206e756d62657200000000000000000060648201526084015b60405180910390fd5b6000805b828110156104d85760008482815181106102ed576102ed610f1a565b602090810291909101015180519091506001600160a01b03166103785760405162461bcd60e51b815260206004820152603860248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420726563697069656e742061646472657373000000000000000060648201526084016102c4565b80602001516000036103f25760405162461bcd60e51b815260206004820152603b60248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420726563697069656e7420616c6c6f636174696f6e000000000060648201526084016102c4565b60018054808201825560009190915281517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66003909202918201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208201517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7820181905560408301517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8909201805460ff1916921515929092179091556104c49084610f46565b925050806104d190610f5e565b90506102d1565b5061271081146105505760405162461bcd60e51b815260206004820152603760248201527f54726561737572795665737465723a3a736574526563697069656e74733a206960448201527f6e76616c696420746f74616c20616c6c6f636174696f6e00000000000000000060648201526084016102c4565b7f460ea22cf0e4fc57af938b5999c20c34746291ba7c678329289ca316290b88f28360405161057f9190610f78565b60405180910390a1505050565b6001818154811061059c57600080fd5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925060ff1683565b6002546001600160a01b03163314806105ef57506000546001600160a01b031633145b6106615760405162461bcd60e51b815260206004820152603960248201527f54726561737572795665737465723a3a737461727456657374696e673a20756e60448201527f617574686f72697a6564206d6573736167652073656e6465720000000000000060648201526084016102c4565b600254600160a01b900460ff16156106e15760405162461bcd60e51b815260206004820152603860248201527f54726561737572795665737465723a3a737461727456657374696e673a20766560448201527f7374696e6720697320616c726561647920656e61626c6564000000000000000060648201526084016102c4565b600280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790556040517ff78a71daf05bb8e3a2ef9c526b1bb785285cdb83a6130cd12a3bbd5c99c15fa390600090a1565b600254600160a01b900460ff166107b95760405162461bcd60e51b815260206004820152603260248201527f54726561737572795665737465723a3a646973747269627574653a207665737460448201527f696e67206973206e6f7420656e61626c6564000000000000000000000000000060648201526084016102c4565b620151806003546107ca9190610f46565b42101561083f5760405162461bcd60e51b815260206004820152603960248201527f54726561737572795665737465723a3a646973747269627574653a206974206960448201527f7320746f6f206561726c7920746f20646973747269627574650000000000000060648201526084016102c4565b4260035560015460005b81811015610b705760006001828154811061086657610866610f1a565b6000918252602080832060408051606081018252600390940290910180546001600160a01b0316845260018101549284018390526002015460ff16151590830152909250612710906108d9907f000000000000000000000000000000000000000000000000000000000000000090610fdc565b6108e39190610ffb565b9050816040015115610abd576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906340c10f1990604401600060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505083516040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018590527f0000000000000000000000000000000000000000000000000000000000000000909116925063095ea7b391506044016020604051808303816000875af1158015610a14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a38919061101d565b5081516040517f28662551000000000000000000000000000000000000000000000000000000008152600481018390526201518060248201526001600160a01b0390911690632866255190604401600060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b50505050610b5d565b81516040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390527f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b158015610b4457600080fd5b505af1158015610b58573d6000803e3d6000fd5b505050505b505080610b6990610f5e565b9050610849565b506040517f4f4344ade909ddfd3bcfa062e00ca65e85fd886222cb4b0c3689037aa5bd5d6890600090a150565b610ba5610c2d565b6001600160a01b038116610c215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102c4565b610c2a81610c87565b50565b6000546001600160a01b0316331461022f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102c4565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5080546000825560030290600052602060002090810190610c2a91905b80821115610d3f57805473ffffffffffffffffffffffffffffffffffffffff191681556000600182015560028101805460ff19169055600301610d01565b5090565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610d7c57610d7c610d43565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610dc957610dc9610d43565b604052919050565b80356001600160a01b0381168114610de857600080fd5b919050565b8015158114610c2a57600080fd5b60006020808385031215610e0e57600080fd5b823567ffffffffffffffff80821115610e2657600080fd5b818501915085601f830112610e3a57600080fd5b813581811115610e4c57610e4c610d43565b610e5a848260051b01610d82565b81815284810192506060918202840185019188831115610e7957600080fd5b938501935b82851015610ed35780858a031215610e965760008081fd5b610e9e610d59565b610ea786610dd1565b81528686013587820152604080870135610ec081610ded565b9082015284529384019392850192610e7e565b50979650505050505050565b600060208284031215610ef157600080fd5b5035919050565b600060208284031215610f0a57600080fd5b610f1382610dd1565b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115610f5957610f59610f30565b500190565b60006000198203610f7157610f71610f30565b5060010190565b602080825282518282018190526000919060409081850190868401855b82811015610fcf57815180516001600160a01b03168552868101518786015285015115158585015260609093019290850190600101610f95565b5091979650505050505050565b6000816000190483118215151615610ff657610ff6610f30565b500290565b60008261101857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561102f57600080fd5b8151610f1381610ded56fea2646970667358221220a1a575e5b4754c2c900c5b148596dbf8a627972b4bfb71e7b0786f0029266cee64736f6c634300080f0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xD4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xDEB36E32 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xDEB36E32 EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0xE4FC6B6D EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0xC0463711 EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0xD1BC76A1 EQ PUSH2 0x1C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x77B872A8 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x7F87BBD6 EQ PUSH2 0x182 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD8F82FD EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x113 JUMPI DUP1 PUSH4 0x5DE29741 EQ PUSH2 0x13E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x100 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x126 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10A JUMP JUMPDEST PUSH2 0x126 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x16D PUSH2 0x21D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16D PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0xDFB JUMP JUMPDEST PUSH2 0x231 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x196 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x10A JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x126 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1D3 PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x58C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE ISZERO ISZERO SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x10A JUMP JUMPDEST PUSH2 0x16D PUSH2 0x5CC JUMP JUMPDEST PUSH2 0x16D PUSH2 0x73A JUMP JUMPDEST PUSH2 0x16D PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0xEF8 JUMP JUMPDEST PUSH2 0xB9D JUMP JUMPDEST PUSH2 0x225 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x22F PUSH1 0x0 PUSH2 0xC87 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x239 PUSH2 0xC2D JUMP JUMPDEST PUSH2 0x245 PUSH1 0x1 PUSH1 0x0 PUSH2 0xCE4 JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x256 JUMPI POP PUSH1 0x29 DUP2 LT JUMPDEST PUSH2 0x2CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E74206E756D626572000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x4D8 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2ED JUMPI PUSH2 0x2ED PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x378 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E7420616464726573730000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SUB PUSH2 0x3F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420726563697069656E7420616C6C6F636174696F6E0000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 DUP3 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF6 PUSH1 0x3 SWAP1 SWAP3 MUL SWAP2 DUP3 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF7 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH32 0xB10E2D527612073B26EECDFD717E6A320CF44B4AFAC2B0732D9FCBE2B7FA0CF8 SWAP1 SWAP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP3 ISZERO ISZERO SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE PUSH2 0x4C4 SWAP1 DUP5 PUSH2 0xF46 JUMP JUMPDEST SWAP3 POP POP DUP1 PUSH2 0x4D1 SWAP1 PUSH2 0xF5E JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 JUMP JUMPDEST POP PUSH2 0x2710 DUP2 EQ PUSH2 0x550 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x37 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A736574526563697069656E74733A2069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E76616C696420746F74616C20616C6C6F636174696F6E000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH32 0x460EA22CF0E4FC57AF938B5999C20C34746291BA7C678329289CA316290B88F2 DUP4 PUSH1 0x40 MLOAD PUSH2 0x57F SWAP2 SWAP1 PUSH2 0xF78 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x59C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH1 0xFF AND DUP4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x5EF JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x661 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A737461727456657374696E673A20756E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x617574686F72697A6564206D6573736167652073656E64657200000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x38 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A737461727456657374696E673A207665 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7374696E6720697320616C726561647920656E61626C65640000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xF78A71DAF05BB8E3A2EF9C526B1BB785285CDB83A6130CD12A3BBD5C99C15FA3 SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x7B9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A646973747269627574653A2076657374 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x696E67206973206E6F7420656E61626C65640000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH3 0x15180 PUSH1 0x3 SLOAD PUSH2 0x7CA SWAP2 SWAP1 PUSH2 0xF46 JUMP JUMPDEST TIMESTAMP LT ISZERO PUSH2 0x83F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54726561737572795665737465723A3A646973747269627574653A2069742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7320746F6F206561726C7920746F206469737472696275746500000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST TIMESTAMP PUSH1 0x3 SSTORE PUSH1 0x1 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB70 JUMPI PUSH1 0x0 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x866 JUMPI PUSH2 0x866 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x3 SWAP1 SWAP5 MUL SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP5 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO SWAP1 DUP4 ADD MSTORE SWAP1 SWAP3 POP PUSH2 0x2710 SWAP1 PUSH2 0x8D9 SWAP1 PUSH32 0x0 SWAP1 PUSH2 0xFDC JUMP JUMPDEST PUSH2 0x8E3 SWAP2 SWAP1 PUSH2 0xFFB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x40 ADD MLOAD ISZERO PUSH2 0xABD JUMPI PUSH1 0x40 MLOAD PUSH32 0x40C10F1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x984 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x95EA7B300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x95EA7B3 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA38 SWAP2 SWAP1 PUSH2 0x101D JUMP JUMPDEST POP DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x2866255100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x15180 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x28662551 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xB5D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x40C10F1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x40C10F19 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB58 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP DUP1 PUSH2 0xB69 SWAP1 PUSH2 0xF5E JUMP JUMPDEST SWAP1 POP PUSH2 0x849 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x4F4344ADE909DDFD3BCFA062E00CA65E85FD886222CB4B0C3689037AA5BD5D68 SWAP1 PUSH1 0x0 SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xBA5 PUSH2 0xC2D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC21 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH2 0xC2A DUP2 PUSH2 0xC87 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE PUSH1 0x3 MUL SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xC2A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xD3F JUMPI DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 SSTORE PUSH1 0x0 PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x3 ADD PUSH2 0xD01 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xD7C JUMPI PUSH2 0xD7C PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xDC9 JUMPI PUSH2 0xDC9 PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xE26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xE3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xE4C JUMPI PUSH2 0xE4C PUSH2 0xD43 JUMP JUMPDEST PUSH2 0xE5A DUP5 DUP3 PUSH1 0x5 SHL ADD PUSH2 0xD82 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP3 POP PUSH1 0x60 SWAP2 DUP3 MUL DUP5 ADD DUP6 ADD SWAP2 DUP9 DUP4 GT ISZERO PUSH2 0xE79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0xED3 JUMPI DUP1 DUP6 DUP11 SUB SLT ISZERO PUSH2 0xE96 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xE9E PUSH2 0xD59 JUMP JUMPDEST PUSH2 0xEA7 DUP7 PUSH2 0xDD1 JUMP JUMPDEST DUP2 MSTORE DUP7 DUP7 ADD CALLDATALOAD DUP8 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP8 ADD CALLDATALOAD PUSH2 0xEC0 DUP2 PUSH2 0xDED JUMP JUMPDEST SWAP1 DUP3 ADD MSTORE DUP5 MSTORE SWAP4 DUP5 ADD SWAP4 SWAP3 DUP6 ADD SWAP3 PUSH2 0xE7E JUMP JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF13 DUP3 PUSH2 0xDD1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF59 JUMPI PUSH2 0xF59 PUSH2 0xF30 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0xF71 JUMPI PUSH2 0xF71 PUSH2 0xF30 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x40 SWAP1 DUP2 DUP6 ADD SWAP1 DUP7 DUP5 ADD DUP6 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xFCF JUMPI DUP2 MLOAD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE DUP7 DUP2 ADD MLOAD DUP8 DUP7 ADD MSTORE DUP6 ADD MLOAD ISZERO ISZERO DUP6 DUP6 ADD MSTORE PUSH1 0x60 SWAP1 SWAP4 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xF95 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xFF6 JUMPI PUSH2 0xFF6 PUSH2 0xF30 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1018 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x102F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xF13 DUP2 PUSH2 0xDED JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 0xA5 PUSH22 0xE5B4754C2C900C5B148596DBF8A627972B4BFB71E7B0 PUSH25 0x6F0029266CEE64736F6C634300080F00330000000000000000 ","sourceMap":"507:5571:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:40;;;;;;;;160:25:60;;;148:2;133:18;1220:40:59;;;;;;;;860:23;;;;;-1:-1:-1;;;;;860:23:59;;;;;;-1:-1:-1;;;;;360:55:60;;;342:74;;330:2;315:18;860:23:59;196:226:60;939:33:59;;;;;1831:101:4;;;:::i;:::-;;4156:1042:59;;;;;;:::i;:::-;;:::i;1036:26::-;;;;;-1:-1:-1;;;1036:26:59;;;;;;;;;3382:14:60;;3375:22;3357:41;;3345:2;3330:18;1036:26:59;3217:187:60;1201:85:4;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;1201:85;;1123:22:59;;;;;;761:29;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;3808:55:60;;;3790:74;;3895:2;3880:18;;3873:34;;;;3950:14;3943:22;3923:18;;;3916:50;3778:2;3763:18;761:29:59;3594:378:60;5348:402:59;;;:::i;2749:1185::-;;;:::i;2081:198:4:-;;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;4156:1042:59:-;1094:13:4;:11;:13::i;:::-;4241:17:59::1;4248:10;;4241:17;:::i;:::-;4283:20:::0;;4336:11;;;::::1;::::0;:26:::1;;;4360:2;4351:6;:11;4336:26;4314:131;;;::::0;-1:-1:-1;;;4314:131:59;;4370:2:60;4314:131:59::1;::::0;::::1;4352:21:60::0;4409:2;4389:18;;;4382:30;4448:34;4428:18;;;4421:62;4519:25;4499:18;;;4492:53;4562:19;;4314:131:59::1;;;;;;;;;4456:16;4488:6:::0;4483:518:::1;4500:6;4496:1;:10;4483:518;;;4528:26;4557:13;4571:1;4557:16;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;4614:17;;4557:16;;-1:-1:-1;;;;;;4614:31:59::1;4588:149;;;::::0;-1:-1:-1;;;4588:149:59;;4983:2:60;4588:149:59::1;::::0;::::1;4965:21:60::0;5022:2;5002:18;;;4995:30;5061:34;5041:18;;;5034:62;5132:26;5112:18;;;5105:54;5176:19;;4588:149:59::1;4781:420:60::0;4588:149:59::1;4778:9;:20;;;4802:1;4778:25:::0;4752:146:::1;;;::::0;-1:-1:-1;;;4752:146:59;;5408:2:60;4752:146:59::1;::::0;::::1;5390:21:60::0;5447:2;5427:18;;;5420:30;5486:34;5466:18;;;5459:62;5557:29;5537:18;;;5530:57;5604:19;;4752:146:59::1;5206:423:60::0;4752:146:59::1;4913:10;:26:::0;;;;::::1;::::0;;-1:-1:-1;4913:26:59;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;4913:26:59::1;-1:-1:-1::0;;;;;4913:26:59;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;;;-1:-1:-1;;4913:26:59::1;::::0;::::1;;::::0;;;::::1;::::0;;;4954:35:::1;::::0;;::::1;:::i;:::-;;;4513:488;4508:3;;;;:::i;:::-;;;4483:518;;;;1391:5;5033:11;:26;5011:131;;;::::0;-1:-1:-1;;;5011:131:59;;6358:2:60;5011:131:59::1;::::0;::::1;6340:21:60::0;6397:2;6377:18;;;6370:30;6436:34;6416:18;;;6409:62;6507:25;6487:18;;;6480:53;6550:19;;5011:131:59::1;6156:419:60::0;5011:131:59::1;5158:32;5176:13;5158:32;;;;;;:::i;:::-;;;;;;;;4230:968;;4156:1042:::0;:::o;761:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;761:29:59;;;;-1:-1:-1;761:29:59;;;:::o;5348:402::-;5428:8;;-1:-1:-1;;;;;5428:8:59;5414:10;:22;;:47;;-1:-1:-1;1247:7:4;1273:6;-1:-1:-1;;;;;1273:6:4;5440:10:59;:21;5414:47;5392:154;;;;-1:-1:-1;;;5392:154:59;;7701:2:60;5392:154:59;;;7683:21:60;7740:2;7720:18;;;7713:30;7779:34;7759:18;;;7752:62;7850:27;7830:18;;;7823:55;7895:19;;5392:154:59;7499:421:60;5392:154:59;5580:14;;-1:-1:-1;;;5580:14:59;;;;5579:15;5557:121;;;;-1:-1:-1;;;5557:121:59;;8127:2:60;5557:121:59;;;8109:21:60;8166:2;8146:18;;;8139:30;8205:34;8185:18;;;8178:62;8276:26;8256:18;;;8249:54;8320:19;;5557:121:59;7925:420:60;5557:121:59;5689:14;:21;;;;-1:-1:-1;;;5689:21:59;;;5726:16;;;;5689:21;;5726:16;5348:402::o;2749:1185::-;2799:14;;-1:-1:-1;;;2799:14:59;;;;2791:77;;;;-1:-1:-1;;;2791:77:59;;8552:2:60;2791:77:59;;;8534:21:60;8591:2;8571:18;;;8564:30;8630:34;8610:18;;;8603:62;8701:20;8681:18;;;8674:48;8739:19;;2791:77:59;8350:414:60;2791:77:59;1516:5;2920:10;;:26;;;;:::i;:::-;2901:15;:45;;2879:152;;;;-1:-1:-1;;;2879:152:59;;8971:2:60;2879:152:59;;;8953:21:60;9010:2;8990:18;;;8983:30;9049:34;9029:18;;;9022:62;9120:27;9100:18;;;9093:55;9165:19;;2879:152:59;8769:421:60;2879:152:59;3055:15;3042:10;:28;3185:10;:17;3171:11;3213:684;3230:6;3226:1;:10;3213:684;;;3258:26;3287:10;3298:1;3287:13;;;;;;;;:::i;:::-;;;;;;;;;3258:42;;;;;;;;3287:13;;;;;;;3258:42;;-1:-1:-1;;;;;3258:42:59;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1391:5:59;;3329:41;;3352:18;;3329:41;:::i;:::-;:55;;;;:::i;:::-;3315:69;;3403:9;:20;;;3399:487;;;3524:39;;;;;3549:4;3524:39;;;9881:74:60;9971:18;;;9964:34;;;3524:11:59;-1:-1:-1;;;;;3524:16:59;;;;9854:18:60;;3524:39:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3602:17:59;;3582:46;;;;;-1:-1:-1;;;;;9899:55:60;;;3582:46:59;;;9881:74:60;9971:18;;;9964:34;;;3582:11:59;:19;;;;-1:-1:-1;3582:19:59;;-1:-1:-1;9854:18:60;;3582:46:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3659:17:59;;3647:65;;;;;;;;10433:25:60;;;1516:5:59;10474:18:60;;;10467:34;-1:-1:-1;;;;;3647:42:59;;;;;;10406:18:60;;3647:65:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3399:487;;;3844:17;;3827:43;;;;;-1:-1:-1;;;;;9899:55:60;;;3827:43:59;;;9881:74:60;9971:18;;;9964:34;;;3827:11:59;:16;;;;;;9854:18:60;;3827:43:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3399:487;3243:654;;3238:3;;;;:::i;:::-;;;3213:684;;;-1:-1:-1;3912:14:59;;;;;;;2780:1154;2749:1185::o;2081:198:4:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:4;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:4;;10714:2:60;2161:73:4::1;::::0;::::1;10696:21:60::0;10753:2;10733:18;;;10726:30;10792:34;10772:18;;;10765:62;10863:8;10843:18;;;10836:36;10889:19;;2161:73:4::1;10512:402:60::0;2161:73:4::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:4;719:10:24;1422:23:4;1414:68;;;;-1:-1:-1;;;1414:68:4;;11121:2:60;1414:68:4;;;11103:21:60;;;11140:18;;;11133:30;11199:34;11179:18;;;11172:62;11251:18;;1414:68:4;10919:356:60;2433:187:4;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:4;;;-1:-1:-1;;2541:17:4;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;672:184:60:-;-1:-1:-1;;;721:1:60;714:88;821:4;818:1;811:15;845:4;842:1;835:15;861:253;933:2;927:9;975:4;963:17;;1010:18;995:34;;1031:22;;;992:62;989:88;;;1057:18;;:::i;:::-;1093:2;1086:22;861:253;:::o;1119:334::-;1190:2;1184:9;1246:2;1236:13;;1251:66;1232:86;1220:99;;1349:18;1334:34;;1370:22;;;1331:62;1328:88;;;1396:18;;:::i;:::-;1432:2;1425:22;1119:334;;-1:-1:-1;1119:334:60:o;1458:196::-;1526:20;;-1:-1:-1;;;;;1575:54:60;;1565:65;;1555:93;;1644:1;1641;1634:12;1555:93;1458:196;;;:::o;1659:118::-;1745:5;1738:13;1731:21;1724:5;1721:32;1711:60;;1767:1;1764;1757:12;1782:1430;1894:6;1925:2;1968;1956:9;1947:7;1943:23;1939:32;1936:52;;;1984:1;1981;1974:12;1936:52;2024:9;2011:23;2053:18;2094:2;2086:6;2083:14;2080:34;;;2110:1;2107;2100:12;2080:34;2148:6;2137:9;2133:22;2123:32;;2193:7;2186:4;2182:2;2178:13;2174:27;2164:55;;2215:1;2212;2205:12;2164:55;2251:2;2238:16;2273:2;2269;2266:10;2263:36;;;2279:18;;:::i;:::-;2319:36;2351:2;2346;2343:1;2339:10;2335:19;2319:36;:::i;:::-;2389:15;;;2420:12;;;;-1:-1:-1;2451:4:60;2490:11;;;2482:20;;2478:29;;;2519:19;;;2516:39;;;2551:1;2548;2541:12;2516:39;2575:11;;;;2595:587;2611:6;2606:3;2603:15;2595:587;;;2691:2;2685:3;2676:7;2672:17;2668:26;2665:116;;;2735:1;2764:2;2760;2753:14;2665:116;2807:22;;:::i;:::-;2856:23;2875:3;2856:23;:::i;:::-;2849:5;2842:38;2938:2;2933:3;2929:12;2916:26;2911:2;2904:5;2900:14;2893:50;2966:2;3018;3013:3;3009:12;2996:26;3035:30;3057:7;3035:30;:::i;:::-;3085:14;;;3078:31;3122:18;;2628:12;;;;3160;;;;2595:587;;;-1:-1:-1;3201:5:60;1782:1430;-1:-1:-1;;;;;;;1782:1430:60:o;3409:180::-;3468:6;3521:2;3509:9;3500:7;3496:23;3492:32;3489:52;;;3537:1;3534;3527:12;3489:52;-1:-1:-1;3560:23:60;;3409:180;-1:-1:-1;3409:180:60:o;3977:186::-;4036:6;4089:2;4077:9;4068:7;4064:23;4060:32;4057:52;;;4105:1;4102;4095:12;4057:52;4128:29;4147:9;4128:29;:::i;:::-;4118:39;3977:186;-1:-1:-1;;;3977:186:60:o;4592:184::-;-1:-1:-1;;;4641:1:60;4634:88;4741:4;4738:1;4731:15;4765:4;4762:1;4755:15;5634:184;-1:-1:-1;;;5683:1:60;5676:88;5783:4;5780:1;5773:15;5807:4;5804:1;5797:15;5823:128;5863:3;5894:1;5890:6;5887:1;5884:13;5881:39;;;5900:18;;:::i;:::-;-1:-1:-1;5936:9:60;;5823:128::o;5956:195::-;5995:3;-1:-1:-1;;6019:5:60;6016:77;6013:103;;6096:18;;:::i;:::-;-1:-1:-1;6143:1:60;6132:13;;5956:195::o;6580:914::-;6807:2;6859:21;;;6929:13;;6832:18;;;6951:22;;;6778:4;;6807:2;6992;;7010:18;;;;7051:15;;;6778:4;7094:374;7108:6;7105:1;7102:13;7094:374;;;7167:13;;7209:9;;-1:-1:-1;;;;;7205:58:60;7193:71;;7304:11;;;7298:18;7284:12;;;7277:40;7371:11;;7365:18;7358:26;7351:34;7337:12;;;7330:56;7415:4;7406:14;;;;7443:15;;;;7130:1;7123:9;7094:374;;;-1:-1:-1;7485:3:60;;6580:914;-1:-1:-1;;;;;;;6580:914:60:o;9195:228::-;9235:7;9361:1;-1:-1:-1;;9289:74:60;9286:1;9283:81;9278:1;9271:9;9264:17;9260:105;9257:131;;;9368:18;;:::i;:::-;-1:-1:-1;9408:9:60;;9195:228::o;9428:274::-;9468:1;9494;9484:189;;-1:-1:-1;;;9526:1:60;9519:88;9630:4;9627:1;9620:15;9658:4;9655:1;9648:15;9484:189;-1:-1:-1;9687:9:60;;9428:274::o;10009:245::-;10076:6;10129:2;10117:9;10108:7;10104:23;10100:32;10097:52;;;10145:1;10142;10135:12;10097:52;10177:9;10171:16;10196:28;10218:5;10196:28;:::i"},"methodIdentifiers":{"dailyVestingAmount()":"0d8f82fd","distribute()":"e4fc6b6d","guardian()":"452a9320","lastUpdate()":"c0463711","owner()":"8da5cb5b","recipients(uint256)":"d1bc76a1","renounceOwnership()":"715018a6","setRecipients((address,uint256,bool)[])":"77b872a8","startVesting()":"deb36e32","transferOwnership(address)":"f2fde38b","vestedToken()":"5de29741","vestingEnabled()":"7f87bbd6"}},"metadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newVestedToken\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isMiniChef\",\"type\":\"bool\"}],\"internalType\":\"struct TreasuryVesterLinear.Recipient[]\",\"name\":\"newRecipients\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newDailyVestingAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isMiniChef\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct TreasuryVesterLinear.Recipient[]\",\"name\":\"newRecipients\",\"type\":\"tuple[]\"}],\"name\":\"RecipientsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"TokensVested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"VestingEnabled\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"dailyVestingAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"recipients\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isMiniChef\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isMiniChef\",\"type\":\"bool\"}],\"internalType\":\"struct TreasuryVesterLinear.Recipient[]\",\"name\":\"newRecipients\",\"type\":\"tuple[]\"}],\"name\":\"setRecipients\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startVesting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vestedToken\",\"outputs\":[{\"internalType\":\"contract IPng\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vestingEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"newDailyVestingAmount\":\"The total number of tokens to be distributed\",\"newGuardian\":\"An authorized address that can initialize the vesting\",\"newRecipients\":\"Recipients with an allocation\",\"newVestedToken\":\"The token that is being vested & distributed\"}},\"distribute()\":{\"details\":\"If the vesting is enabled, anyone can call this function with 1 day intervals\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setRecipients((address,uint256,bool)[])\":{\"details\":\"Only callable by the owner (i.e.: governance)\",\"params\":{\"newRecipients\":\"An array of new recipients with allocation\"}},\"startVesting()\":{\"details\":\"Callable by either the owner (i.e.: governance) or guardian\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"events\":{\"RecipientsChanged((address,uint256,bool)[])\":{\"notice\":\"An event that is emitted when recipients are changed\"},\"TokensVested()\":{\"notice\":\"An event that is emitted when tokens are distributed\"},\"VestingEnabled()\":{\"notice\":\"An event that is emitted when vesting is enabled\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Construct a new TreasuryVester contract\"},\"dailyVestingAmount()\":{\"notice\":\"The amount of tokens distributed on each vesting\"},\"distribute()\":{\"notice\":\"Distributes the tokens to recipients based on their allocation\"},\"guardian()\":{\"notice\":\"The multisig who can initialize the vesting\"},\"lastUpdate()\":{\"notice\":\"The time stamp of the last vesting\"},\"recipients(uint256)\":{\"notice\":\"The list of recipients who have an allocation\"},\"setRecipients((address,uint256,bool)[])\":{\"notice\":\"Adds new recipients by overriding old recipients\"},\"startVesting()\":{\"notice\":\"Enables distribution of the tokens\"},\"vestedToken()\":{\"notice\":\"The token to be vested/minted\"},\"vestingEnabled()\":{\"notice\":\"Whether the vesting is enabled or not\"}},\"notice\":\"A contract that vests & distributes tokens. It only distributes a single token with a `mint` function.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/treasury-vester/TreasuryVesterLinear.sol\":\"TreasuryVesterLinear\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x9b72f93be69ca894d8492c244259615c4a742afc8d63720dbc8bb81087d9b238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5a7b96e511be78d5cdf635c784e6ab8cdd38625bb8cafb8a80914a1c89cf0f6\",\"dweb:/ipfs/QmVzTCwJxQAkjRQHboT5QrvsVJGWQHgfEjeTbvyxoKBrds\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/treasury-vester/TreasuryVesterLinear.sol\":{\"keccak256\":\"0x804845818abd2b56c6dca3b96f408069e6c51882b9fd21de190aa896f979e2ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ffbb59a04cd27601cd926769335dd16b14bc140f82652a26f3778f54fa5e84d\",\"dweb:/ipfs/QmeCDkwFSYebQZv7SJJ9KJF1vnRnVgM7JQF1hw17qVZmpz\"]}},\"version\":1}"}}}}}